Skip to content

Java kernel v1.0 (Denali) release

Compare
Choose a tag to compare
@AionJayT AionJayT released this 05 Nov 20:40
· 580 commits to master since this release

This release is a mandatory update.

This release is a milestone release and the network consensus is changing from a pure PoW consensus to Unity, a hybrid (PoW + PoS) consensus. New features such as AVM upgrade to v2.0, meta-transaction, beacon hash, and runtime multi-AVM version support are also part of the release. Please note that this release requires database migration and network configuration update, please read the migration guide carefully before the upgrading process.

Features:

Migration guide:

To update your node, you must:

Move/Backup old network data folder

  • Shut down the kernel (old version).
  • decompress the 1.0 kernel package by tar -xvf <package file name>, an oan folder will be created, and it is the kernel default executing folder.
  • Move the network folder, e.g. mainnet, to the new kernel executing path.

Re-import blocks or Sync blocks from scratch.

  • Overwrite the genesis.json file in the <new aion executing path>/<network>/config/ folder. This can be done by copying the genesis.json file in <new aion executing path>/config/<network>/ from the new release.
  • Update your local database (If you are running a node prior to version 0.4.2) to the new database structure by executing ./aion.sh -n <network> --redo-import

If you are running a node on the Mainnet ./aion.sh --redo-import
If you are running a node on the Amity testnet ./aion.sh -amity --redo-import
It will take around a few hours, depending on your hardware specs, to reconstruct your current database to the new structure, after which you can launch the kernel to sync with the network. The best practice is to backup your current database first and then execute the re-import command mentioned above.

  • Or sync the database from scratch

Remove database folder in the folder
relaunch the kernel
It will take around 4 hours, depending on your network environment.

Overwrite the hardfork settings (if running mainnet)

  • Overwrite the fork.properties file in the <aion executing path>/mainnet/config/ folder. This can be done either by overwriting this file with the following properties or by copying the fork.properties file in <aion executing path>/config/mainnet/ from the new release.

  • Fork.properties before 1.0:

fork0.3.2=1920000
fork0.4.0=3346000
  • Fork.properties after 1.0:
fork0.3.2=1920000
fork0.4.0=3346000
fork1.0=4721900

Overwrite the genesis file (if running mainnet)

  • Overwrite genesis.json in the <aion executing path>/mainnet/config/ folder. This can be done either by overwriting this file with the following properties or by copying the genesis.json in <aion executing path>/config/mainnet/ from the new release.
  • genesis.json before 1.0:
{
"alloc": {
"0xa0eeaeabdbc92953b072afbd21f3e3fd8a4a4f5e6a6e22200db746ab75e9a99a": {
"balance": "465934586660000000000000000"
}
},
"networkBalanceAlloc": {
"0": {
"balance": "465934586660000000000000000"
}
},
"energyLimit": "15000000",
"nonce": "0x00",
"difficulty": "0x4000",
"coinbase": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "1524528000",
"parentHash": "0x6a6d99a2ef14ab3b835dfc92fb918d76c37f6578a69825fbe19cd366485604b1",
"chainId": "256",
}

  • genesis.json after 1.0 (extra stakingContractAddress field):
{
"alloc": {
"0xa0eeaeabdbc92953b072afbd21f3e3fd8a4a4f5e6a6e22200db746ab75e9a99a": {
"balance": "465934586660000000000000000"
}
},
"networkBalanceAlloc": {
"0": {
"balance": "465934586660000000000000000"
}
},
"energyLimit": "15000000",
"nonce": "0x00",
"difficulty": "0x4000",
"coinbase": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "1524528000",
"parentHash": "0x6a6d99a2ef14ab3b835dfc92fb918d76c37f6578a69825fbe19cd366485604b1",
"chainId": "256",
"stakingContractAddress": "a0733306c2ee0c60224b0e59efeae8eee558c0ca1b39e7e5a14a575124549416"
}

Notes:

The mastery testnet will be deprecated in the near future. This release is NOT compatible with the current testnet (Mastery). Please migrate your test to the amity as your blockchain testnet.

Bug fixes:

  • Energy rule check within kernel and FVM #1046
  • Avoided to store negative balances #1041 #1047
  • Fixed transformed code #1027
  • Fixed gradle build library dependency #1026
  • Fixed block encoding/decoding inconsistency #1064

Enhancements:

  • Removed implementation of DatabaseWithCache #1010
  • Implemented a static factory method for creating blocks #1011
  • Made ByteArrayWrapper immutable #1012
  • Modularity: modVm, modPrecompiled, and modMcf #1014
  • Refactoring ContractDetails #1019
  • Enhanced Transaction store #1017
  • Simplified AionRepositoryCache locking #1037
  • Removed unused code #1036 #1038 #1039
  • Predefined stakerRegistry contract #1030
  • Improved CLI blockchain revert speed #1042
  • Updated Peer connect status #1052 #1053
  • Improved CI environment #1060

Miscellaneous:

  • Rebranded from Aion to The OAN #1059 #1061
  • PR instruction as comments #1020