-
Notifications
You must be signed in to change notification settings - Fork 207
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
Migrating from Python-based ag-solo provisioning and setup #1238
Comments
@warner, would you PTAL at this plan? |
That sounds reasonable to me. "migrating the egresses" sounds accurate but weird, so let me write down what I think it means from an E-era vat-centric perspective (I'm imagining @erights as my audience here):
Of course in the old world we talked about Vats, and in the new world we talk about swingsets (which contain multiple vats). So from a vat/cap-tp point of view, this provisioning/export step is a small shortcut: the only thing it does is let us avoid re-gathering pubkeys from all the participants each time we replace the testnet with a new one. They're still starting new machines each time, it's just that they're not starting it entirely from scratch. |
The original purpose of this issue is satisfied. The plan is incomplete, but I am closing the issue now that our emphasis has shifted to a more decentralized network (its operation won't require the deployment package). |
What is the Problem Being Solved?
We want to have the entire Agoric provisioning process use idiomatic blockchain transactions (rather than Magic Wormhole) to provision new ag-solos, and migrate provisioning state to the successor chain via automated export and upgrade.
In the process, we will remove all of the Python
provisioning-server
, the "controller" ag-solo vat, and theag-setup-solo
Python setup script.Description of the Design
Provisioning (swingset egress) state is already kept in the chain's Merkle tree (#1183), as are (trivially) the token balances of all cosmos accounts.
To migrate smoothly to the new implementation, we will (in order):
ag-cosmos-helper tx swingset provision-one ...
ag-setup-cosmos play export-genesis
to explicitly export the chain state (as in Cosmos state export and restart #1231) from all nodes--import-from=node3
is givenag-setup-cosmos add-egress <nickname> <my-address>
to contact the chain and add an egressag-setup-cosmos add-delegate <nickname> <address>
to contact the chain and send staking tokens to the addressag-solo add-chain
to:ag-cosmos-helper
address/keypair if not present or--reset
is givenag-cosmos-helper
to the chainag-cosmos-helper query swingset egress <my-address>
fails, then prompt the user to join Keybase and request provisioning for the addressag-solo start
to check egress if a chain is configured, prompting toadd-chain
again if failedagoric_faucet
bot to allow Agoric admins easily to:provision-one
packages/cosmic-swingset/provisioning-server
packages/cosmic-swingset/setup-solo
Security Considerations
We introduce a new static
https://testnet.agoric.com
site, which we should verify has a reliable and secure default configuration while still allowing straightforward content changes from the bootstrap script.Test Plan
ag-setup-solo
works as beforeadd-chain
is created, check that provisioning works withag-solo add-chain <docker-static-web-address>
ag-setup-cosmos add-egress me agoric1926eb97ec...
add-chain
to work without needing to add the egress address a second timeThe text was updated successfully, but these errors were encountered: