Aptos Genesis Tool

The aptos-genesis-tool provides a tool for the genesis ceremony of the Aptos blockchain. The functionality of the tool is dictated by the organization of nodes within the system:

The process for starting organization of the planned and current functionality includes:

Notes: * This describes a process for instantiating organization that has yet to be specified but extends from the current state of the Aptos Testnet. * The implementation as described has yet to be fully implemented in Move, hence, this tool maps to the current state. * A new OP / OW onboarding to an existing blockchain follow the same process and delegate the initial creation of accounts and setting of configuration to the association.

Requirements

Each individual instance, OW or OP, should have access to a secure storage solution. Those leveraging Aptos Secure Storage can directly use this tool, those that do not will need to provide their own tooling.

The Tools

aptos-genesis-tool offers several facilities:

The Process

The end-to-end process assumes that each participant has their own secure storage solution, e.g., Vault, and a token stored locally on their disk in a file accessible to the management tool.

In addition, the association will provide an entry point into a shared storage, e.g., GitHub repository (and repository owner) along with a distinct namespace for each participant. GitHub namespaces equate to directories within the repository.

Each participant must retrieve an appropriate GitHub token for their account that allows access to the repo scope. This token must be stored locally on their disk in a file accessible to the management tool.

Finally, each participant should initialize their respective key: aptos_root, owner, or operator in a secure storage solution. How this is done is outside the scope of this document.

The remainder of this section specifies distinct behaviors for each role.

Build a Configuration File

While aptos-genesis-tool supports setting the backends on each command, doing so is cumbersome and fraught with error. Instead, all participants, should first construct a configuration file for use in genesis and later use via the operational tool. Below is an example configuration file in yaml format:

```

config.yaml

chainid: "MAINNET" jsonserver: "http://127.0.0.1:8080" sharedbackend: type: "github" repositoryowner: "REPOSITORYOWNER" repository: "REPOSITORY" namespace: "REPOSITORFOLDER" token: fromconfig: "test" validatorbackend: type: "vault" server: "127.0.0.1:8200" namespace: "VIRTUALNAMESPACE" token: fromconfig: "test" ```

Overview of fields:

The Association

The layout is a toml configuration file of the following format: [operator] = ["alice", "bob"] [owner] = ["carol", "dave"] aptos_root = "erin" where each field maps to a role as described in this document.

Validator Owners

Validator Operators

Important Notes