Skip to content

Instantly share code, notes, and snippets.

@zmanian
Last active August 2, 2018 15:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zmanian/88fdd41421d363d11adbcf98d3367a4c to your computer and use it in GitHub Desktop.
Save zmanian/88fdd41421d363d11adbcf98d3367a4c to your computer and use it in GitHub Desktop.

Starfish: Collecting Genesis bonding transactions

Initializing a proof of stake blockchain is a high risk moment in the chain life cycle.

The purpose of the StarFish tool is to allow Cosmos community members who control an address in the recommended genesis allocation to declare and bond validators.

The finally genesis state of the network should include all valid candidacy with. 2/3 +1 of the top 100 validators sorted by bond need to come online to start the network. We ask that any community member who wants to participate be available to start their equipment within 12 hours of publication of the genesis state.

We also ask that community members who participate optionally broadcast their intentions and the tx id of their genesis bonding via twitter or some other broadcast to provide additional accountability to the ICF.

StarFish should be a deployed as interactive workflow based command line tool.

The StartFish tool takes the following inputs

  1. A bitcoin or Ethereum full node or the ICF recommended allocation
  2. The number of atoms a user wish to bond
  3. The cosmosvalpub bech32 encoded key of the users validator
  4. Moniker, website, key base id of the validator
  5. This will generate a json encoded message that be put in genesis.json, a signature and pubkey for the account.

When we init state we need to require the signatures be verified.

I would expect 3-5% of stake be bonded during this process. No delegation will be accepted via starfish just self bonds.

@jackzampolin
Copy link

Could this be implemented in gaiacli or gaiad? Would remove an input and could be placed in already existing commands like gaiad init starfish.

@cwgoes
Copy link

cwgoes commented Jul 25, 2018

Could this be implemented in gaiacli or gaiad? Would remove an input and could be placed in already existing commands like gaiad init starfish.

I second this; reading the list of requirements the SDK can already do most of this anyways.

Unless we have a strong reason for a separate tool integrating into the existing CLI would be faster.

@zmanian
Copy link
Author

zmanian commented Aug 1, 2018

I am mostly on board with using gaiacli for this but I'd some sort of tooling that can verify if the tx is valid given the genesis state account balances.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment