justrossthings feel free to ping me anytime
StellarID.io - stellar federation server as a service
so cool!
Awesome. I will be using https://stellarid.io to bootstrap the federation server for https://hodldeck.com , so I can postpone writing my own federation server for HODLDeck.
Thank you!
Stefan
Hello, are there limitations if using Federated address with the toml file on my own domain but using the fed server of third party service?
Because i’m using your service and it works for 2-3 wallets I tried but for example not with Stellar account viewer:
“Stellar address cannot be found or is invalid.”
Any idea what the issue could be? Thanks!
- Edited
cryptobrant So I checked it out after @cryptobrant contacted me directly and he redirects all traffic from his naked domain to www with a 301. It seems Stellar Account Viewer is super strict and won't follow redirects.
The browser gives a CORS error on redirects
Cross-origin redirection to https://www.hiddenforprivacy.com/.well-known/stellar.toml denied by Cross-Origin Resource Sharing policy: Origin https://www.stellar.org is not allowed by Access-Control-Allow-Origin.
Probably if he would send the Access-Control-Allow-Origin: *
header within the 301 redirect response, the browser would follow it and it would work out fine.
frejete yeah thank you for your precious help by email.
Working on it. Dreamhost have been very responsive and they made me remove a line in my htaccess but I’m still having the issue. I need to check this in a console to see if there is still a 301 redirect.
cryptobrant I just checked it from my side and your website does not redirect anymore for the stellar.toml file.
frejete yes issue solved and working perfectly.
I was using an old messy website, it needed some cleaning.
Your service is simple and flawless.
Little Update
I added an API endpoint to integrate address and domain creation with customer apps if need be.
- Edited
This is fantastic. Ive been wondering. How secure is using these federated addresses? Should we be wary of hackers potentially gaining access and pointing federated addresses to their own stellar public addresses?
Id love to see federated addresses totally decentralized if that is even possible.
lumenlessons I've described in the FAQ the security implications of using a federation service. In the current state of things, it is possible that a hacker take over the service and redirect all addresses to his own account. I've tried to make sure this does not happen by running the latest version of all libraries, using reputable providers for hosting and DNS with 2FA enabled everywhere and scrupulously monitoring the service with canary accounts to catch any tampering with accounts.
Now if a hacking were to happen, the impact would be much lower than for services like webwallets which have access to secret keys and can siphon funds away. Monitoring would catch the changes and I would alert users asap. Then either I gain back control of the service and shut it down or you remove the stellar.toml
from your website which disables your addresses straight away (in the case of stellarid.io this give you more control than with other federation services which do not use your own domain). You could also monitor the federation response for your addresses yourself if you do not trust my response time.
Only incoming transactions made during the takeover would be at risk, not your existing funds. I do not recommend using any kind of federation address, even one you fully control, when transferring very large amounts, such as when you offload from an exchange.
As of now there are no federation systems more secure. There is however a proposal for a signing protocol similar to DKIM for email which would make a 3 factor security, a hacker needing to compromise 2 out of 3 to takeover an address. I plan on implementing it as soon as a complete specification is published. It will however be contingent on support being built into the various wallets in the future.
frejete thanks. frejete. Appreciate the explanation :-)
lumenlessons just don’t use this for important transactions. If it’s for some friends restaurant bill reimbursement, if the service were to be hacked you wouldn’t lose much.
If you are sending a big amount, triple check your real key.
- Edited
Hi try to do small tracation it getting error
node index1.js
Something went wrong! { Error: Request failed with status code 400
at createError (E:\mito\node_modules\axios\lib\core\createError.js:16:15)
at settle (E:\mito\node_modules\axios\lib\core\settle.js:18:12)
at IncomingMessage.handleStreamEnd (E:\mito\node_modules\axios\lib\adapters\http.js:201:11)
at IncomingMessage.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1094:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
config:
{ adapter: [Function: httpAdapter],
transformRequest: { '0': [Function: transformRequest] },
transformResponse: { '0': [Function: transformResponse] },
timeout: 60000,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
headers:
{ Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'axios/0.18.0',
'Content-Length': 383 },
method: 'post',
url: 'https://horizon-testnet.stellar.org/transactions',
data:
'tx=AAAAAM%2FtxvAYxX6060QKTPVYSV2DTB0itz4F7hAbMFX1KjGTAAAAZAAAKiAAABACAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAiukqdON457rlMDn910M2%2FQCI7Xnu5dOW0HK%2BzyfhhZkAAAAAAAAAAAvrwgAAAAAAAAAAAvUqMZMAAABACKNax4wnaQ%2BcGch3bhplVQzLTe4KYPoLbeBonOSPbY6peG%2FIx%2BNmHnb5izcCQwmm35pkThR65KlVSrXgdtw6AuGJ2NcAAABA2ihAyS1VjKC6%2FOfbGikwploSy3NSq4Zvn5ofHKlMLd%2FY6B5cuzW5Vi8KHmbvdq3FPJc3X9dcSgTUdMOgnF9NBg%3D%3D' },
request:
ClientRequest {
_events:
{
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket:
TLSSocket {},
connection:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: 'horizon-testnet.stellar.org',
alpnProtocol: false,
authorized: true,
_host: 'horizon-testnet.stellar.org',
_readableState: [ReadableState],
readable: true,
_maxListeners: undefined,
_writableState: [WritableState],
writable: false,
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: [TLSWrap],
_requestCert: true,
_rejectUnauthorized: true, },
_header:
'POST /transactions HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nContent-Type: application/x-www-form-urlencoded\r\nUser-Agent: axios/0.18.0\r\nContent-Length: 383\r\nHost: horizon-testnet.stellar.org\r\nConnection: close\r\n\r\n',
_onPendingData: [Function: noopPendingOutput],
agent:
Agent {
_events: [Object],
_eventsCount: 1,
_maxListeners: undefined,
defaultPort: 443,
protocol: 'https:',
options: [Object],
requests: {},
sockets: [Object],
freeSockets: {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
maxCachedSessions: 100,
_sessionCache: [Object] },
socketPath: undefined,
timeout: undefined,
method: 'POST',
path: '/transactions',
_ended: true,
res:
IncomingMessage {
req: [Circular],
responseUrl: 'https://horizon-testnet.stellar.org/transactions',
redirects: [] },
response:
{ status: 400,
statusText: 'Bad Request',
headers:
{ 'cache-control': 'no-cache, no-store, max-age=0',
'content-type': 'application/problem+json; charset=utf-8',
date: 'Wed, 12 Dec 2018 16:27:31 GMT',
vary: 'Origin',
'x-ratelimit-limit': '101',
'x-ratelimit-remaining': '100',
'x-ratelimit-reset': '1',
'content-length': '900',
connection: 'Close' },
config:
{ adapter: [Function: httpAdapter],
transformRequest: [Object],
transformResponse: [Object],
timeout: 60000,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
headers: [Object],
method: 'post',
url: 'https://horizon-testnet.stellar.org/transactions',
data:
'tx=AAAAAM%2FtxvAYxX6060QKTPVYSV2DTB0itz4F7hAbMFX1KjGTAAAAZAAAKiAAABACAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAiukqdON457rlMDn910M2%2FQCI7Xnu5dOW0HK%2BzyfhhZkAAAAAAAAAAAvrwgAAAAAAAAAAAvUqMZMAAABACKNax4wnaQ%2BcGch3bhplVQzLTe4KYPoLbeBonOSPbY6peG%2FIx%2BNmHnb5izcCQwmm35pkThR65KlVSrXgdtw6AuGJ2NcAAABA2ihAyS1VjKC6%2FOfbGikwploSy3NSq4Zvn5ofHKlMLd%2FY6B5cuzW5Vi8KHmbvdq3FPJc3X9dcSgTUdMOgnF9NBg%3D%3D' },
request:
ClientRequest {
_header:
'POST /transactions HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nContent-Type: application/x-www-form-urlencoded\r\nUser-Agent: axios/0.18.0\r\nContent-Length: 383\r\nHost: horizon-testnet.stellar.org\r\nConnection: close\r\n\r\n',
socketPath: undefined,
timeout: undefined,
method: 'POST',
path: '/transactions',
_ended: true,
res: [IncomingMessage],
data:
{ type: 'https://stellar.org/horizon-errors/transaction_failed',
title: 'Transaction Failed',
status: 400,
detail:
'The transaction failed when submitted to the stellar network. The `extras.result_codes` field on this response contains further details. Descriptions of each code can be found at: https://www.stellar.org/developers/learn/concepts/list-of-operations.html',
extras: [Object] } } }
umashankar Hello, this looks like an error with your transaction, not with the federation service.