HyperChains 0.2

A complete guide how to join the network:

This is the setup for joining the HyperChain2 network. It has a network ID hyper_chain2, 3 different online validators and 1 offline. It attaches to the aeternity mainnet.

Step 1 - get the node

Fetch the v6.6.0 release and untar it. In the example we would be installing it on a Ubuntu 18.04.5 LTS system, so the package used was https://github.com/aeternity/aeternity/releases/download/v6.6.0/aeternity-v6.6.0-ubuntu-x86_64.tar.gz

Step 2 - setup custom accounts

Set up the seed accounts

cat data/aecore/.ceres/hyper_chain2_accounts.json
{
  "ak_22Hf8gDLTGgq92Kppr3i8sz9j12ZVUosuNDAom7wzeZ5LEoMnB": 1000000000000000000000000000000000000000000000000,
  "ak_2evAxTKozswMyw9kXkvjJt3MbomCR1nLrf91BduXKdJLrvaaZt": 1000000000000000000000000000000000000000000000000,
  "ak_2KAcA2Pp1nrR8Wkt3FtCkReGzAi8vJ9Snxa4PcmrthVx8AhPe8": 3100000000000000000000000000,
  "ak_9WxeQ3aJFVJvVkWrJQFyqMipYaBMWJexEmUK2TLtKjLYp2Ssb": 3100000000000000000000000000,
  "ak_2k9KPk4as3RiJJwzkXvaS6VkduidCRfAZsdxkKNoJEcucKwY7j": 3100000000000000000000000000,
  "ak_irnHka6YqQmLgQmjJ8GUVAqwNqXs7sLm4U9DTG72j23Vy39gD": 3100000000000000000000000000
}

Out of those the first one is a big spender in case we need it, the second one is the faucet and the following 4 are the validators. We need those accounts in order to set up the initial contracts and feed them initial data.

Step 3 - setup custom contracts

Set the following contract creates and calls:

 cat data/aecore/.ceres/hyper_chain2_contracts.json 
{
  "contracts": [
    {
      "abi_version": 3,
      "vm_version": 8,
      "amount": 0,
      "nonce": 1,
      "call_data": "cb_KxFE1kQfK58AoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqADl6ZnU=",
      "code": "cb_+QXhRgOgnDB+VpcIbO4QCQE/Y0fj2YyEyC6iyams963aUQI7SxTAuQWzuQPw/g3YEMwENwA3AAIDEbTVYSIPAm+CJs8BAz/+GNwlLQA3ADcAAgMRtNVhIg8Cb4Imz1kCAi8oiAIHDAYBAz8aCgiIDAMrEW9MN6k/KygIAgIDEcPyLzwPAm+CJs8uKoiIAgEDP/4k0towADcBdzcAAgMRtNVhIg8Cb4ImzxoGigABAz/+MeNBoQI3ATcCRwAHNwAoHAIAKBwAAGUAKBwCABUKhoYBAz/+PR6JaAA3ADcJRwAHB2cHJzcCRwAHd3d3Z0cABwcCAxG01WEiDwJvgibPDAKCDAKEDAKGDAKIDAKKDAKMDAKODAKQDAKSJwwSAP5E1kQfADcCRwAHNwAaDogvABoOkC8AGgaCABoGhAIaDoYAGg6KXxoOjF8aDo5fGg6SAAEDP/5GWismADcABwIDEbTVYSIPAm+CJs8BApL+TTVCYgA3AUcABwIDEbTVYSIPAm+CJs8s2JAAAAD+Wts43gQ3AUcANwACAxG01WEiDwJvgibPCwAfMAAHDAb7A0VTdGFrZSBtdXN0IGJlID4gMAsAAgMRWxQHuQ8CBgwCBgwBAAIDEdTNKfgPAm+CJs8UKpKSBgEDP/5bFAe5AjcBBwcgOJIABwwGGgoEkgwBAAIDEbV7aRAVABYkAAQXAAABAQD+b0w3qQI3Avf39wwBAgQDETHjQaH+chUgOAA3AXc3AAIDEbTVYSIPAm+CJs8aBowAAQM//oI2SQEANwJHAAcHAgMRtNVhIg8Cb4ImzxoKApAs2gQCAAAiGAQCBwwG+wNFTm90IGVub3VnaCBzaGFyZXMMAQICAxH+rdkXDwIKIDiEAAcMHAYDDBoKDoRZABQiEA4MAQAMAgonDAQPAhIvKIgQBwwYDAMDBgMQDwIYNCgSGC0qiIgQFCqGhgoMAz8GAxIPAm+CJs8VGhAEAiA4EAAHDBoVGpKSAi2akJAAEAwDPwYDFg8Cb4ImzwECCisoiBAGAxAVGpKSAi4akJAADAM/BgMWZQkACgwDPwYDEv6zLfPcADcBdzcAAgMRtNVhIg8Cb4ImzxoGjgABAz/+tIwWhAA3AUcABwIDEbTVYSIPAm+CJs8aCgKQLNgCAAAEAxH+rdkX/rTVYSICNwA3AFUAICCCBwwE+wOBT25seSBhbGxvd2VkIHRocm91Z2ggTWFpblN0YWtpbmcBAz/+tXtpEAI3AAdTABUghgD+w/IvPAI3AifnADcCd/c3ADMEAAcMBjUEACgcAgIoHAACAgAPAm+CJs82BQAABgMAAQM//tTNKfgCNwJHAAc3ACzaEpAAABQYEgItGpCQAAEDP/7+rdkXAjcBBwcMApICAxG1e2kQFgQAFwAAuQG6LxQRDdgQzBlwcm9maXQRGNwlLUlkaXN0cmlidXRlX3Vuc3Rha2URJNLaMCFzZXRfbmFtZREx40GhjS5TdGFraW5nVmFsaWRhdG9yLmRpc3RyaWJ1dGVfcGF5b3V0ET0eiWglZ2V0X3N0YXRlEUTWRB8RaW5pdBFGWismKWFsbF9zaGFyZXMRTTVCYhlzaGFyZXMRWts43hVzdGFrZRFbFAe5iS5TdGFraW5nVmFsaWRhdG9yLmNhbGN1bGF0ZV9zaGFyZXMRb0w3qRkuXjEyNjERchUgOD1zZXRfZGVzY3JpcHRpb24RgjZJAR11bnN0YWtlEbMt89w5c2V0X2F2YXRhcl91cmwRtIwWhB1iYWxhbmNlEbTVYSJ9LlN0YWtpbmdWYWxpZGF0b3IuYXNzZXJ0X2NhbGxlchG1e2kQiS5TdGFraW5nVmFsaWRhdG9yLmNvbnRyYWN0X2JhbGFuY2URw/IvPDUuTGlzdC5mb3JlYWNoEdTNKfhxLlN0YWtpbmdWYWxpZGF0b3IuYWRkX3NoYXJlcxH+rdkXeS5TdGFraW5nVmFsaWRhdG9yLnNoYXJlc190b19hZYIvAIU2LjEuMAC9o39S",
      "owner_pubkey": "ak_11111111111111111111111111111115rHyByZ",
      "pubkey": "ct_KJgjAXMtRF68AbT5A2aC9fTk8PA4WFv26cFSY27fXs6FtYQHK"
    },
    {
      "abi_version": 3,
      "vm_version": 8,
      "amount": 0,
      "nonce": 2,
      "call_data": "cb_KxFE1kQfe58CoCmQRGuzLDSzySG/5UcFOdoQ1iYy6a6fhJXVahjufrESb4rTwhvOzO2g///AQm+IDeC2s6dj/8AAAAAY4w8Y",
      "code": "cb_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rYkuTWFpblN0YWtpbmcubWF5YmVfc2V0X3N0YWtlX2xpbWl0ET0eiWglZ2V0X3N0YXRlEUJDMSWJLk1haW5TdGFraW5nLmNhbGN1bGF0ZV9zdGFrZV9saW1pdBFDDIOYhS5NYWluU3Rha2luZy5hc3NlcnRfcHJvdG9jb2xfY2FsbBFDI9eBZXNldF92YWxpZGF0b3JfZGVzY3JpcHRpb24RRNZEHxFpbml0EUbkss0lLkxpc3QuYXNjEU4HX+d9Lk1haW5TdGFraW5nLmFzc2VydF9zdGFrZV9saW1pdBFV+KUQRS5MaXN0Lm1lcmdlX3BhaXJzEVrbON4Vc3Rha2URaHbW31kuTGlzdEludGVybmFsLmZsYXRfbWFwEWnGpIGZLk1haW5TdGFraW5nLmRpc3RyaWJ1dGVfdW5zdGFrZV9wYXlvdXQRbhptSTVuZXdfdmFsaWRhdG9yEXO4haWFLk1haW5TdGFraW5nLmdldF92YWxpZGF0b3Jfc3RhdGVfEXcCNSSZLk1haW5TdGFraW5nLmFzc2VydF9hbGxvd2VkX3RvX3Vuc3Rha2URfaF7bBkuXjM2ODgRgjZJAR11bnN0YWtlEYKFJ0AZLl4zNjg2EYP5J3mVLk1haW5TdGFraW5nLmFzc2VydF9taW5fcGVyY2VudF9zdGFrZRGJZnSFNXN0YWtpbmdfcG93ZXIRidwMP1EuTGlzdC5tb25vdG9uaWNfc3VicxGM4/jzkS5NYWluU3Rha2luZy5kaXN0cmlidXRlX3N0YWtlX3BheW91dBGN7MvfPS5MaXN0Lm1lcmdlX2FsbBGRL7hgWWdldF92YWxpZGF0b3JfY29udHJhY3QRlyifYUlvZmZsaW5lX3ZhbGlkYXRvcnMRnvUxMBkuXjM2ODcRpRqxwhlyZXdhcmQRtVzUfaUuTWFpblN0YWtpbmcuYXNzZXJ0X2FsbG93ZWRfdG9fc2V0X29ubGluZRG37iMwYXNldF92YWxpZGF0b3JfYXZhdGFyX3VybBG4xFyoGS5eMzY4ORHD8i88NS5MaXN0LmZvcmVhY2gRyo+fSBkuXjM2ODQR1mGl6JEuTWFpblN0YWtpbmcuYXNzZXJ0X3Vrbm93bl92YWxpZGF0b3IR2efX1U1nZXRfdmFsaWRhdG9yX3N0YXRlEdt3dqJNaXNfdmFsaWRhdG9yX29ubGluZRHb+BxsLS5MaXN0Lm1lcmdlEeOzccNpLk1haW5TdGFraW5nLnZhbGlkYXRvcl9jbXAR5b3qti1zZXRfb2ZmbGluZRHmHW7hhS5NYWluU3Rha2luZy5tYXBfdmFsaWRhdG9yc19zdGF0ZRHmZidJKXNldF9vbmxpbmUR7uAJiCkuTGlzdC5kZXNjEfD+PXwpcG9zdF9lbGVjdBH3XcI8cS5NYWluU3Rha2luZy5zZXRfc3Rha2VfbGltaXQR/AgNHSkuTGlzdC5zb3J0Ef72LKwtdG90YWxfc3Rha2WCLwCFNi4xLjAAkdUpKw==",
      "owner_pubkey": "ak_11111111111111111111111111111115rHyByZ",
      "pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ"
    },
    {
      "abi_version": 3,
      "vm_version": 8,
      "amount": 0,
      "nonce": 3,
      "call_data": "cb_KxFE1kQfK58CoCwa1XR0IGCPLLSke5feeoiyjmk1qS7sGM/WHuFMzrFoKUhDX0VOVFJPUFki6CEa",
      "code": "cb_+QJFRgOg9YCG3/eOkZdwDPtnQl8y97A4kpwyv8QFjNoh7auJV4TAuQIXuQGC/iGkaj8CNwInNwLnAAcHhwI3ADcB5wAzBAAHDAg1BgAANgYCACguBAAAKC4GAgAfGAYCBwwGGgkAAhUlAgIGBgMADAIERPwjAAICAgABA6+CAAEAP/49HoloADcANwNHAndHAAwCggwChAwChicMBgD+RNZEHwA3AkcCdzcAXgKGGgaCABoGhAIBAz/+gHWgxwA3Agd3RwAcBgACDAMADAKCAwD8ETiOBG83ACc3AkcABw8CAgwDAAwCggMA/BH+9iysNwAHPwgAFhAAGAAMAgICAxEhpGo/DwIGCD4GCAr7AzFOTyBDQU5ESURBVEVGOAYAAP6kPMxUADcARwABAob+zT1auAA3AXc3AAIDEefR0MAPAm+CJs8MAQBZAAIDEYB1oMcPAgIMAwAMAoIDAPwR8P49fDcANwAPAm+CJs8aBoQAGgqGAgEDP/7n0dDAAjcANwB9AFUAIAAHDAT7A3lNdXN0IGJlIGNhbGxlZCBieSB0aGUgcHJvdG9jb2wBAz+4jS8HESGkaj9pLkhDRWxlY3Rpb24uZmluZF92YWxpZGF0b3IRPR6JaCVnZXRfc3RhdGURRNZEHxFpbml0EYB1oMc9ZWxlY3RfYXRfaGVpZ2h0EaQ8zFQZbGVhZGVyEc09WrgVZWxlY3QR59HQwIEuSENFbGVjdGlvbi5hc3NlcnRfcHJvdG9jb2xfY2FsbIIvAIU2LjEuMAAQeqcj",
      "owner_pubkey": "ak_11111111111111111111111111111115rHyByZ",
      "pubkey": "ct_t7ESuRFvGdYHwM6KJhKbSnFUJQhnB9aCFed1RWR89ShNDgwWA"
    }
  ],
  "calls": [
    {
      "abi_version": 3,
      "amount": 1000000000000000000000000,
      "call_data": "cb_KxFuGm1JPyDWziI=",
      "caller": "ak_9WxeQ3aJFVJvVkWrJQFyqMipYaBMWJexEmUK2TLtKjLYp2Ssb",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 1,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 0,
      "call_data": "cb_KxHmZidJP7W4jFY=",
      "caller": "ak_9WxeQ3aJFVJvVkWrJQFyqMipYaBMWJexEmUK2TLtKjLYp2Ssb",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 2,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 0,
      "call_data": "cb_KxEy4TFQGzlIb3JyaWJsZSBTcXVpZMbmDtk=",
      "caller": "ak_9WxeQ3aJFVJvVkWrJQFyqMipYaBMWJexEmUK2TLtKjLYp2Ssb",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 3,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 1000000000000000000000000,
      "call_data": "cb_KxFuGm1JPyDWziI=",
      "caller": "ak_2k9KPk4as3RiJJwzkXvaS6VkduidCRfAZsdxkKNoJEcucKwY7j",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 1,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 0,
      "call_data": "cb_KxHmZidJP7W4jFY=",
      "caller": "ak_2k9KPk4as3RiJJwzkXvaS6VkduidCRfAZsdxkKNoJEcucKwY7j",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 2,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 0,
      "call_data": "cb_KxEy4TFQG0FUZXJyaWJsZSBPc3RyaWNoUPGRWQ==",
      "caller": "ak_2k9KPk4as3RiJJwzkXvaS6VkduidCRfAZsdxkKNoJEcucKwY7j",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 3,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 1000000000000000000000000,
      "call_data": "cb_KxFuGm1JPyDWziI=",
      "caller": "ak_irnHka6YqQmLgQmjJ8GUVAqwNqXs7sLm4U9DTG72j23Vy39gD",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 1,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 0,
      "call_data": "cb_KxHmZidJP7W4jFY=",
      "caller": "ak_irnHka6YqQmLgQmjJ8GUVAqwNqXs7sLm4U9DTG72j23Vy39gD",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 2,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 0,
      "call_data": "cb_KxEy4TFQG1lVbmludGVyZXN0ZWQgUm91bmR3b3Jt+lLBnw==",
      "caller": "ak_irnHka6YqQmLgQmjJ8GUVAqwNqXs7sLm4U9DTG72j23Vy39gD",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 3,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 1000000000000000000000000,
      "call_data": "cb_KxFuGm1JPyDWziI=",
      "caller": "ak_2KAcA2Pp1nrR8Wkt3FtCkReGzAi8vJ9Snxa4PcmrthVx8AhPe8",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 1,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 0,
      "call_data": "cb_KxEy4TFQG1VBZXRlcm5pdHkgQlJJIEFjY291bnTYY3Ho",
      "caller": "ak_2KAcA2Pp1nrR8Wkt3FtCkReGzAi8vJ9Snxa4PcmrthVx8AhPe8",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 2,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    },
    {
      "abi_version": 3,
      "amount": 0,
      "call_data": "cb_KxG37iMwG+lodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjE5ODkyMzQ/cz0yMDAmdj00gb6p5A==",
      "caller": "ak_2KAcA2Pp1nrR8Wkt3FtCkReGzAi8vJ9Snxa4PcmrthVx8AhPe8",
      "contract_pubkey": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
      "nonce": 3,
      "fee": 1000000000000000,
      "gas": 1000000,
      "gas_price": 1000000000
    }
  ]
}

This feeds the genesis block with the appropriate 3 different consensus contracts:

It also creates the 4 validators, sets 3 of them online, sets them names and so on. I order for the first block to be created we need a leader for the first generation :slight_smile:

Step 4 - node configuration

This is an example configuration:

cat aeternity.json                                                       
{
  "chain": {
    "consensus": {
      "0": {
        "config": {
          "contract_owner": "ak_11111111111111111111111111111115rHyByZ",
          "election_contract": "ct_t7ESuRFvGdYHwM6KJhKbSnFUJQhnB9aCFed1RWR89ShNDgwWA",
          "expected_key_block_rate": 2000,
          "parent_chain": {
            "confirmations": 101,
            "fetch_interval": 1000,
            "nodes": [
              {
                "host": "mainnet.aeternity.io",
                "password": "Pass",
                "port": 80,
                "user": "test"
              }
            ],
            "start_height": 649000,
            "type": "AE"
          },
          "rewards_contract": "ct_LRbi65kmLtE7YMkG6mvG5TxAXTsPJDZjAtsPuaXtRyPA7gnfJ",
          "stakers": []
        },
        "name": "hyper_chain"
      }
    },
    "db_direct_access": true,
    "hard_forks": {
      "6": 0
    },
    "persist": true
  },
  "fork_management": {
    "network_id": "hyper_chain2"
  },
  "include_default_peers": false,
  "mining": {
    "autostart": true,
    "beneficiary": "ak_2evAxTKozswMyw9kXkvjJt3MbomCR1nLrf91BduXKdJLrvaaZt"
  },
  "peers": [
  ],
  "logging":
  {
      "level": "info"
  }
}

Feel free modifying it but do no change the chain section as it has impact on the actual consensus. If you modify it - your node will not sync with the rest of the network.

Known limitations

Our nodes are deployed in AWS. Since the node eagerly tries caching all parent chain blocks it would need soon, we have a cache to store those. Apparently sending a lot of requests triggers some defences and requests start dropping. This corrupts the cache (tracked as an issue in GH) which leaves the node simply waiting and unable to sync. This will be fixed in a future release. If you want to sync with the HyperChain2, you would need to do one of the following:

  • host it on AWS
  • spawn your own Aeternity node fully synced with mainnet and point your HyperChain2 node to it instead
4 Likes