-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: testnet faucet is broken #504
Comments
I don't think the faucet account is currently set to be public, so syncing wouldn't solve it (unless we want to make it so). Another quick fix could be to persist the account state as a binary file and pick it up on startup instead of creating a new account each time. |
Ah you're right. I thought the faucet was using the faucet account deployed as part of genesis - which is public according to the default configuration. Yeah if we keep it private then one has to persist to disk. Its a pity; having less state to worry about would have been nice :) Also means the current faucet is completely dead. |
Where is the faucet account actually sent to the node? |
For new accounts, the account seed is part of the transaction inputs and gets validated. Once the account is not new (ie, |
As a part of the proper fix, we can:
Looking at the above, the second option is probably the "path of least resistance". We could try the first option too - but it'll probably be quite a bit more of work. |
How is the first point different to what occurs nowadays? If I understood correctly, only the account's public key would be public, right? The
I think this could be as simple as saving the account's storage state (or maybe even just the first slot) in a file on each request and then loading it up on startup, right? |
Ah - correct! I forgot that the faucet uses signature authentication (I thought it didn't have any authentication at all).
I'd also store the nonce - but yeah, these are the only things that are needed. |
Resolved by #517 |
Requesting tokens from the testnet faucet no longer works.
This is due to the faucet code not persisting state, which caused the faucet to reset to initial state when the instance was restarted for maintenance. This causes the faucet's transactions to be rejected by the node which in turn means no tokens can be minted.
The best (imo) solution is for the faucet to sync its state on startup. This is possible because the faucet account is public. The convenient way to do this is blocked by #485. Until that is implemented our options are:
The text was updated successfully, but these errors were encountered: