EIP-27 Mainnet Activation Voting and Final Details

After successful testnet activation of EIP-27 ( discussed at Emission Soft-Fork Proposal , and before at Ergo Emission: details, retargeting via a soft-fork ), which was done with the help of few miners, now mainnet setup is done.

Full details can be found in text of the upcoming EIP: EIP-0027: Emission Soft-Fork by kushti · Pull Request #52 · ergoplatform/eips · GitHub . Most important details and information for mining pools and solo miners are in this post below.

EIP-27 activation height: 777,217 .

EIP-27 will be activated at that height if enough support from mining power will be expressed before the height. Enough support here means at least 888 blocks out of 1024 blocks in a voting epoch to vote for EIP-27 before the EIP-27 activation height. For voting, we’re using parameter 8 now, which is used for output cost (so how costly for a transaction to have one output).

So to vote for EIP-27, please put the following setting into node config:

ergo {
  voting {
    8 = 1000
  }
}

Voting can be done with any node version.

If support for EIP-27 expressed before the activation height, and EIP locks in, /info API request will return eip27Supported: false in its output.

To check EIP-27 rules after successful activation, the following setting is needed, which is off by default but needed for mining nodes (to be on proper chain in case of chain-split where old nodes can generate blocks not compatible with EIP-27):

ergo {
  chain {
    reemission {
      checkReemissionRules = true
    }
  }
}

To make proper EIP-27 compatible transactions in the presence of re-emission tokens in the node wallet, another setting is needed:

ergo {
  wallet {
    checkEIP27 = true
  }
}

So combined setting could be like:

ergo {
  networkType = "mainnet"
  node {
    mining = true
  }
  voting {
    8 = 1000
  }
  chain {
    reemission {
      checkReemissionRules = true
    }
  }
  wallet {
    checkEIP27 = true
  }
}

the node will do emission contract box modification (tokens injection) automatically on activation height, and will do block candidates generation, blocks validation and payments correctly with those settings.

Please use EIP27-RC2 version of the node to test things on the testnet Release EIP-27 Experimental Release Candidate 2 (RC2) · ergoplatform/ergo · GitHub , it can be used on the mainnet as well, but still under review.

You can get emission for a block via /emission/at API method, or just use original emission with subtracting 12 ERG when emission 15 ERG or more, or X - 3, where X is original emission, when 3 < X < 15.

8 Likes