Releases: aionnetwork/aion
Java kernel v1.0 (Denali) 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:
- Implemented Unity consensus protocol #1013 #1015 #1021 #1016 #1018 #1023 #1024 #1025 #1031 #1033 #1035 #1040 #1049 #1056 #1057 #1058 #1063
- Integrated with AVM 2.0 #1044 to support meta-transaction, bug fixing, and diagnostic utilities
- Implemented BeaconHash AIP-010 #984
- Supported multiversion AVM #995 #1050 #1051
- Added meta transaction #1001 #1009
- Added system resources log #1028
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>
, anoan
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 thegenesis.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:
v1.0-rc2
amity-2019Oct22: Switched transaction storage to an overwrite policy:
- the ability to overwrite previously stored transaction information is necessary to apply config updates to store internal transactions or not to store them; - removed caching optimization: not particularly useful; - removed unused return value for putTxInfoToBatch method.
Aion Java Kernel v0.4.2.0
This release is a recommended update.
The release includes enhanced network syncing performance, kernel memory usage, and kernel data-store performance. The AVM has been updated to version 1.5, and supports Amity testnet for the hybrid Unity consensus protocol. Also added is a CLI edit mode.
Features:
- Integrated with [AVM 1.5] for improved AVM tooling and user library, along with other enhancements to the AVM
- Added CLI tooling edit mode #949 #953;
- Supports Amity testnet (unity consensus protocol) #975 #981 #986 #987 #989 #1006 #1008 #994
- Configurable pending transaction timeout settings in the transaction pool #998
- RPC call support for getBlockdDetails #974
- Added option for storing internal transactions #955
Migration guide:
To update your node, you must do the following after shutting down the kernel
-
Overwrite the genesis.json file in the
<aion executing path>/<network>/config/
folder. This can be done by copying the genesis.json file in<aion executing path>/config/<network>/
from the new release. -
Update your local database 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 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.
Bug fixes:
- CLI bug fixes #938 #929
- A sidechain block can overwrite the correct VM type #957 #934
- FVM external state return type #963
- BlockStore resource locks #969
- FVM contract deploy minimum energy consumption #997
- Account manager locking/unlocking issue #983
Enhancements:
- Improved p2p syncing #1000
- Introduced kernel modularity #930 #931 #940 #941 #943 #952 #953 #959 #960 #965 #966 #972 #973 #976 #978 #982
- Removed removed heap cache setting #1007
- Removed misuse of thrown exceptions when decoding transaction information #1003
- Predefined exit codes #942
- Added analysis log category #970
Security fix - Aion Java Kernel v0.4.1.1
This is a highly recommended update release.
This release is a FastVM/AVM security fix release for v0.4.1. It's a highly recommended release and all node operators should update to this version.
Migration guide:
Please see the v0.4.0.1 release note.
Aion Java Kernel v0.4.1
This is a recommended update release.
The release mainly enhanced kernel memory usage, AVM performance, and security patches. It is highly recommended to update to this version.
Features:
- Integrated with [AVM 1.4.1] for improving the AVM caching performance and fixed some security concern.
- Added CLI tooling for querying block/transaction/account #909;
Bug fixes:
- TransactionPendingPool exception in the Seednode mode #903
- eth_call energy limit and sender issue #905
- The total difficulty issue when the kernel loads a corrupt database #902
Enhancements:
Security fix - Aion Java Kernel v0.4.0.2
This is a highly recommended update release.
This release is a security fix release for v0.4.0.1. It's a highly recommended release and all node operators should update to this version.
Migration guide:
Please see the v0.4.0.1 release note.
Aion Java Kernel v0.4.0.1
This is a mandatory update release.
This release mainly allows the user to use the Aion Java contract to interact with the Aion blockchain network after the hard fork (block# 3346000 on Mainnet). It is one of the biggest milestones for the Aion ecosystem. Additionally, we have modified the monetary policy to align with the Aion whitepaper.
Migration guide:
To upgrade your current running node, you must overwrite the fork.properties file in the <aion executing path>/<network>/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/<network>/
from the new release.
- Fork.properties before 0.4.0 (Mainnet):
fork0.3.2=1920000
- Fork.properties since 0.4.0 (Mainnet):
fork0.3.2=1920000
fork0.4.0=3346000
- Fork.properties before 0.4.0 (Mastery):
fork0.3.2=1132000
- Fork.properties since 0.4.0 (Mastery):
fork0.3.2=1132000
fork0.4.0=2393000
Seed node settings changes:
- config.xml before 0.4.0 (Mainnet):
<nodes>
<node>p2p://c33d2207-729a-4584-86f1-e19ab97cf9ce@51.144.42.220:30303</node>
<node>p2p://c33d302f-216b-47d4-ac44-5d8181b56e7e@52.231.187.227:30303</node>
<node>p2p://c33d4c07-6a29-4ca6-8b06-b2781ba7f9bf@191.232.164.119:30303</node>
<node>p2p://741b979e-6a06-493a-a1f2-693cafd37083@66.207.217.190:30303</node>
<node>p2p://c39d0a10-20d8-49d9-97d6-284f88da5c25@13.92.157.19:30303</node>
<node>p2p://c38d2a32-20d8-49d9-97d6-284f88da5c83@40.78.84.78:30303</node>
<node>p2p://c37d6b45-20d8-49d9-97d6-284f88da5c51@104.40.182.54:30303</node>
</nodes>
- config.xml since 0.4.0 (Mainnet):
<nodes>
<node>p2p://c33d2207-729a-4584-86f1-e19ab97cf9ce@51.144.42.220:30303</node>
<node>p2p://c33d302f-216b-47d4-ac44-5d8181b56e7e@52.231.187.227:30303</node>
<node>p2p://c33d4c07-6a29-4ca6-8b06-b2781ba7f9bf@191.232.164.119:30303</node>
<node>p2p://c39d0a10-20d8-49d9-97d6-284f88da5c25@13.92.157.19:30303</node>
<node>p2p://c38d2a32-20d8-49d9-97d6-284f88da5c83@40.78.84.78:30303</node>
<node>p2p://c37d6b45-20d8-49d9-97d6-284f88da5c51@104.40.182.54:30303</node>
<node>p2p://c36d4208-fe4b-41fa-989b-c7eeafdffe72@35.208.215.219:30303</node>
</nodes>
Features:
- Kernel is able to execute both AVM and FastVM contract transactions #860 #873 #879 #883 #890 #891
- Integrated with AVM 1.3
- Implemented FastVM opcode extend #853
- Added block reward querying capability in the Aion JAVA API #882
- Can retrieve block, state, and contract data from CLI #884
Changes:
Bug fixes:
- Consensus bug fixes found during the AVM integration #876 #885
- P2p task status hanging issue #881
- Smart contracts could not deploy to existing accounts #889
- TransactionPool timestamp issue #899
- P2p outgoing IP check issue #900
- DetailsDataStore memory leak issue b8f41ab
- AVMKernelInface removeStorage issue 46e0cb3
Enhancements:
Hotfix - Aion Java Kernel v0.3.4.1
This release is a hotfix for the v0.3.4 release and it fixed the build issue of the v0.3.4.
The features in v0.3.4.1 are the same as the v0.3.4 and for the detail of the v0.3.4 features, you can find in the release note of the v0.3.4.
Aion Java Kernel v0.3.4 - Mont Blanc
This release mainly has shown a milestone the AVM integration with the Aion Java Kernel, improved some kernel repository efficiency. We highly recommend the user to upgrade your node with this release, but it is not a mandatory update.
Migration guide:
Seed node config changes, we deleted a few java kernels and added a few rust kernels as the new seed node group, you can still use the current config settings, but it might lose some connection capabilities to the network. The simple way to do is just add/copy the new seed node information into your currently running config.
The 0.3.2 config is compatible with this release. See [Migratiing from v032 to v033].(https://github.com/aionnetwork/aion/wiki/Installation#41-migrating-from-v032-to-v033)
Notice:
- The released binary has no client JAVA API and the GUI module package included!
- We provide the pre-built docker image, see Docker Images in the Aion Docs.
Features:
Changes:
- AVM Testnet config update #860
Enhancements:
- Sync statistics expanded #844
- Sync manager enhancement #859
- Kernel repository enhancement #842 #846 #854 #859
- Transaction case handling #843
Bugs fixes:
- Contract type encoding update #867