@aeonix aeonix released this May 24, 2018 · 189 commits to master since this release

Assets 6

This is a mandatory software upgrade due to the rebase of the Aeon codebase to the latest master branch of Monero. Since the main purpose was to upgrade the codebase while keeping the changes to the network rules relatively small, the following in the Monero network rules have been removed:

  • Dynamic per-kb fees: PR-1276
  • Activation of RingCT: PR-961
  • Enforcement of RingCT & minimum mixin 4: PR-1869
  • Increase of penalty-free full reward zone: PR-490 & PR-1869

On the other hand, some rule changes are considered beneficial and thus have been adopted. The network version gets bumped from v1 to v7 at once which is aligned with Monero, such that potential glitches in third party software (pools and miners in particular) due to version mismatch could be avoided.

*** The mainnet fork date is scheduled on June 3rd, 2018 (height 963500) ***

The following changes have been adopted:

  • Per-kb fees: PR-184
  • Allow miners to claim less money than allowed: PR-410
  • Claim a quantized reward in coinbase & all outputs must be decomposed: PR-425
  • Require miner tx to have well behaved outs: PR-763
  • Reject invalid pubkeys: PR-1386
  • Use new block filling algorithm: PR-1902
  • Forbid duplicate ring members: PR-2188
  • Checks for top block hard fork version: PR-2269
  • Reject unsorted ins and outs: PR-2440
  • CryptoNight variant 1: PR-3253
    • This is adapted to CryptoNight-Lite, making it CryptoNight-Lite-variant1
  • Difficulty will be reset to 2 billion following the mainnet fork at height 963500

The following are Aeon's own changes deviating from Monero:

  • Transactions of ring size 1 (i.e. with no decoy outputs, called non-private txes henceforth) are allowed to occupy up to ~10% of all transactions in each block. Specifically, for a block containing N txes (excluding coinbase), M non-private txes are allowed to exist as long as 10*(M-1) does not exceed N.
    • The implication of non-private txes is the same as before: you can use them wisely to make transactions smaller and thus save in fees, but if you do so when there's a backlog of non-private txes in the transaction pool, your non-private txes will likely take very long time to confirm. You're advised to use normal transactions if you want timely confirmation.
  • Normal transactions must have at least ring size 3. In other words, transactions with ring size 2 are entirely forbidden.
  • Multisig is disabled (but will be enabled again once Aeon adopts RingCT with Bulletproofs).

How to upgrade the daemon

The blockchain database format has been changed from raw memory to LMDB, and the new daemon cannot read the old file format. The simplest way would be to just redo the synchronization from scratch. If you really want to avoid downloading the blockchain again, you can let the new daemon connect to the old daemon running concurrently (with the default settings assumed below):

/path/to/new/release/aeond --data-dir /some/path/ --p2p-bind-port 11190 --rpc-bind-port 11191 --add-exclusive-node 127.0.0.1:11180

After the new daemon is fully synced, move the data directory content /some/path/* to the default data directory path ~/.aeon/.

How to upgrade the wallet

The wallet file format has been changed, and the new aeon-wallet-cli can read the old format of the keys file and convert it to the new format. The new wallet can not read the old cache file, so you will need to rename or move the old cache file.

In addition, if reading from the old keys file, the wallet must scan the entire blockchain since the previous format did not contain a 'restore height'. As an alternative you may consider restoring using the mnemonic seed words, which will offer an opportunity to specify a restore height and may reduce scanning time.