Mainnet Launch Plan

AMO Labs Official Blog
AMO Labs Official
Published in
11 min readMar 27, 2020

Finally, it is scheduled to launch the Mainnet on 31 March, next Tuesday. The exact launch time is not decided, but it would be around noon. So, here I will explain what will be done in the course of the preparation, the launch, and the initial monitoring period. We will complete the preparation in this week, and there will be the final rehearsal for the launch in next Monday. And Tuesday is the D-Day.

Preparation

We have some configuration parameters to be finalized before the launch, which includes:

  • initial tendermint node configuration (config.toml)
  • initial blockchain configuration (genesis.json)
  • initial AMO configuration (genesis.json)
  • amount of initial coins (genesis.json)
  • vault account key pair
  • genesis validator key pair

Notable options in the tendermint node configuration are the tx indexing and mempool settings. We will disable any tx indexing except some essential tags to reduce the burden of validator nodes. So, these nodes are not adequate to be an RPC node. This is intentional. We will also reduce the max tx bytes to a moderately small value in the mempool setting. Although the blockchain protocol and AMO protocol does not impose any limit in the tx size, there is no reason to allow several mega bytes for a single tx.

In the blockchain configuration, we will tweak the max block size to be a relatively small value. In the early stages of the mainnet, it is not likely to process, say, million txs per second. For comparison, the Cosmos network shows very low average number of txs per block. This limit can be lifted off in the future.

The initial AMO configuration will follow the numbers mentioned in the notice from the AMO planning team, including stake lock-up period, reward distribution ratio, tx reward rate, and etc.

In order to run the initial blockchain nodes, we prepared a network of machines. There will be 6 validator nodes, 1 seed node, and an additional RPC node to feed the data to the blockchain explorer server. The exact addresses of the nodes will be announced on the launch day.

The actual binary for the node software and a few of control scripts are released already.

The launch

We will execute the launch process twice. One for the rehearsal in next Monday, and the other for the real launch in Tuesday.

First of all, there shall be a initial genesis node having no staked coins at first. This node is the designated validator written in the genesis.json file, so it can produce new blocks even if it has no stake. Just after the first block, the initial vault account will transfer the pre-determined amount of coins to the initial staker address. The staker account will stake these coins and the initial genesis node can act as a proper validator node.

Once the initial genesis node is up and running with the proper stakes, we launch a seed node, which is the helper node to construct a P2P network of upcoming nodes. This node is not a validator node. Every node coming after this node will designate this seed node as a persistent peer.

To serve RPC requests from AMO blockchain explorer and other clients, a monitoring node will be launched next. This node is not a validator node either. Once this monitoring node is up and running, AMO blockchain explorer becomes functioning (we made a new version of the explorer, with much cleaner look and more added features). We will monitor the blockchain from the explorer.

The rest of the validator nodes will come up via a similar process. Run a node; receive pre-determined amount of coins from the vault account; and stake those coins. Note that there will be a lot of empty blocks, due to the stake lock-up feature. That is normal in terms of the AMO protocol.

Stabilization

We will monitor the chain for a while to check if there is any problem. We would perform test-purpose data parcel trade after the default AMO storage service is up.

At this step, the launch is complete and we are ready to announce the node addresses to the public. The announcement may come after several hours from the genesis time. It depends how fast we are.

See you next Tuesday.

메인넷 실행 계획

드디어 메인넷이 다음주 화요일인 3월 31일에 실행될 예정입니다. 정확한 실행 시간은 아직 정해지지 않았지만 정오 근처가 될 것입니다. 이에 사전 준비, 실행, 초기 관찰 기간에 어떤 일들이 일어나게 될 지 설명해 보겠습니다. 사전 준비는 이번주에 완료될 것이고 다음주 월요일에 마지막 예행 연습이 있을 예정입니다. 그리고 화요일이 D-Day입니다.

사전 준비

메인넷 실행 전에 다음과 같은 몇가지 설정값들을 확정해야 합니다:

  • 초기 tendermint 노드 설정 (config.toml)
  • 초기 블록체인 설정 (genesis.json)
  • 초기 AMO 설정 (genesis.json)
  • 초기 코인양 (genesis.json)
  • 금고 계정 키쌍
  • 최초 validator 키쌍

Tendermint 노드 설정 중 주목할 것들은 tx 색인과 mempool 설정들입니다. 우선Validator node들에 대해서는 부담을 줄이기 위해 필수적인 태그들을 제외한 tx 색인을 비활성화할 예정입니다. 따라서 이 노드들은 RPC 노드로 사용하기에는 적당하지 않게 됩니다. 이것은 의도된 것입니다. 또한 mempool 설정에서 tx의 최대 크기를 적당히 작은 값으로 줄일 예정입니다. 블록체인 프로토콜과 AMO 프로토콜에서 tx 크기에 대한 제한은 특별히 하고 있지 않지만, 하나의 tx에 수 MB를 허용할 필요까지는 없기 때문입니다.

블록체인 설정에서는 블록 최대 크기도 비교적 작은 값으로 변경할 것입니다. 메인넷의 초기 단계에서는 초당 엄청난 수, 예를 들어 백만개의 tx를 처리하게 될 가능성은 희박합니다. 참고로, Cosmos 네트웍의 경우에도 블록당 평균 tx의 수는 아주 낮은 값을 보이고 있습니다. 이 제한은 미래에 풀어 버릴 수 있습니다.

초기 AMO 설정은 기획팀에서 공지한 글에 언급된 숫자들을 따라갈 것인데, stake 잠금 기간, 보상 분배 비율, tx 보상 비율 등등입니다.

최초 블록체인 노드들을 실행하려면 네트워크로 연결된 서버들을 준비해야 합니다. 6개의 validator 노드와 1개의 seed 노드, 그리고 블록체인 탐색서비스에 데이터를 공급한 추가 RPC 노드가 준비됩니다. 이 노드들의 정확한 주소는 메인넷 실행일에 공지될 예정입니다.

노드의 소프트웨어를 위한 바이너리 파일과 몇가지 제어용 스크립트들은 이미 릴리즈되어 있습니다.

실행

실행 과정은 두번 수행하게 됩니다. 한 번은 다음주 월요일 최종 리허설을 위해서이고, 나머지는 화요일의 출시를 위해서입니다.

우선, 최초의 genesis 노드가 실행되는데 처음에는 스테이킹된 코인은 없는 채입니다. 이 노드는 genesis.json 파일에 최초 validator로 지정되어 있기 때문에 스테이크가 없어도 새로운 블록들을 생성할 수 있습니다. 최초 블록 이후에 금고 계정으로부터 최초 스테이킹용 계정으로 미리 정해진 수량의 코인이 전송됩니다. 이 스테이킹용 계정은 최초 genesis 노드를 위해서 코인들을 스테이킹하게 되고 이제부터 이 노드는 비로소 정당한 validator 노드로 동작하게 됩니다.

일단 최초 genesis 노드가 실행되고 정당한 스테이크를 갖게 되면, 이제 seed 노드를 실행합니다. 이 노드는 이후에 실행되는 노드들을 위한 P2P 네트워크를 구성하는 것을 돕게 됩니다. 이 노드는 validator 노드는 아닙니다. 이 노드 이후에 실행되는 모든 노드는 이 seed 노드를 지정된 peer로 설정합니다.

그 다음에는 AMO 블록체인 탐색기나 또는 다른 클라이언트로부터의 RPC 요청을 처리하기 위해서 모니터용 노드가 실행됩니다. 이 노드 역시 validator 노드는 아닙니다. 이 노드가 실행되고 나면 AMO 블록체인 탐색기가 동작합니다(탐색기는 새 버전이 제작되었고, 훨씬 깔끔한 외형과 추가 기능들을 포함하고 있습니다.) 이제부터는 탐색기를 통해서 블록체인을 감시합니다.

나머지 validator 노드들도 비슷한 방식으로 실행됩니다. 노드를 실행하고, 미리 정해진 양의 코인을 금고 계정으로부터 수신하고, 이 코인들을 스테이킹합니다. 한가지 주목할 것은 이 시기에 아주 많은 빈 블록들이 생겨나는데, 이것은 스테이크 잠금 기능 때문이고 AMO 프로토콜에 근거한 정상적인 현상입니다.

안정화

여기까지 수행되고 나면 한동안 체인을 관찰하면서 문제가 없는지 확인합니다. 기본 AMO 저장소 서비스가 정상 동작한 이후에는 시험용으로 데이터 거래를 수행할 수도 있습니다.

이 단계에 이르고 나면 메인넷 실행 과정은 완료되고 노드들의 주소를 일반에 공개할 수 있게 됩니다. 공지는 genesis 시간 이후 몇시간 이후가 될 것인데, 정확한 시간은 우리가 얼마나 작업을 빨리 하는가에 따라 달라질 수 있습니다.

다음주 화요일을 기대합니다.

--

--