Releases: aeternity/aeternity
Releases · aeternity/aeternity
v7.2.0
What's Changed
Exciting New Features 🎉
Bugfixes 🐞
- Improve HC sync stability by @hanssv in #4377
- Fix rollback and direct access issue by @hanssv in #4378
Other Changes
- Remove deprecated swagger stuff by @ThomasArts in #4354
- aens_update_tx - assert the right version is used by @hanssv in #4368
- Switch macOS builds and packages to M1/arm64 by @dincho in #4380
Full Changelog: v7.1.0...v7.2.0
v7.1.0
What's Changed
This release reduces the default network finality to 20 blocks. I.e., unless otherwise configured, after an upgrade it will reduce the node finality on testnet and mainnet to 20 blocks.
Exciting New Features 🎉
- Implement ad_hoc_listen_ports functionality by @mitchelli in #4337
- Improve startup error when keys_dir is not available by @hanssv in #4347
- Beacon v1: towards lower network finality time by @hanssv in #4353
- Add GetNameEntryByNameHash to HTTP (v3) API by @hanssv in #4348
- Add (bytearray) encoded key to pointers in HTTP API by @hanssv in #4349
- Make db_direct_access the default by @uwiger in #4129
Bugfixes 🐞
Other Changes
- Avoid overlapping block timestamps in eunit tests by @hanssv in #4340
- Update test that checks whether tx has openAPI schema by @ThomasArts in #4339
- Update sdk in sdk_smoke_test to 13.3.2 by @davidyuk in #4350
Full Changelog: v7.0.0...v7.1.0
v7.0.0
Ceres Release
- Testnet protocol upgrade has been scheduled for block 939750 estimated to Wed Apr 24 08:30:00 UTC 2024.
- Mainnet protocol upgrade has been scheduled for block 941700 estimated to Tue May 7 09:00:00 UTC 2024.
What's Changed
Ceres Protocol Changes
- Only allow GAAttachTx for nonce 1 - i.e. an account cannot later be transformed into a generalized account.
- Adjust the AENS auction mechanism;
- make auctions initially shorter
- new bids only extend auctions with a short period,
and it is only extended if the new bid comes near the end of the auction (within the extension period).
- Make NamePreclaimTx optional. Since the introduction of auctions, the front-running protection offered by the 'PreClaim -> Claim' flow is no longer as important. To simplify name registrations (or the start of a name auction) we now allow NameClaimTx without a previous NamePreclaimTx. In this case we set the
NameSalt
to0
. - Adds new operations to the FATE VM (version 3)
- bitwise operations on integers (
band
,bor
,bxor
,bnot
,<<
and>>
) - Address.to_bytes - converting an address to its binary representation
- Int.mulmod - a combined multiplication and modulus operation for efficiency
- Crypto.poseidon - a ZK/SNARK friendly hash function
- Introduce arbitrary sized binary arrays (type
bytes()
); addingBytes.split_any
,Bytes.to_fixed_size
,Bytes.to_any_size
,Bytes.size
,String.to_bytes
, andInt.to_bytes
; and adjustBytes.concat
, andCrypto.verify_sig
to allow both fixed and arbitrary sized byte arrays. - Chain.network_id - the network id of the chain
- bitwise operations on integers (
- Change the micro block gas limit to use actual used gas instead of upper gas limit.
This makes the network work better when contract calls are overestimated and allow for more transactions to fit in each block. - Allow contracts to be called by name. The key
contract_pubkey
of the name is resolved while running the transaction.
This has consequences for the contract call structure (aect_call
) that gets a new field with the contract call identifier.
In order to be able to find the call result without doing name resolution calls are stored relative to the id rather than the contract pubkey.
NOTE: Names can change at any time (frontrunning is possible!) so only call
contracts by name when you trust the owner of the name! - Introduce a new type of pointer for AENS names. The raw data pointer/value is
an arbitrary sized byte array (max 1024 bytes). And since before there is a
maximum of 32 key-pointer pairs. FATE VM and Sophia are updated to allow full
access to the new pointer type (See
https://github.com/aeternity/aesophia/blob/master/docs/sophia_stdlib.md#aensv2). - Add generic/wildcard AENS delegation signatures. I.e. instead of delegating
authority for a contract to operate with a specific name (name hash), by
signing just the stringAENS
(+ network id, public key and contract address
as usual) you can delegate the authority for a contract to handle all your
names with one signature. See Issue #4080 for details.
BEWARE: This gives the contract authority to handle all current and future
names on your behalf, so it should be used with extreme care and only for
well-known (and well understood!!) contracts. - Include fields
fee
andgas_price
in GAMetaTx when computing the TX-hash
of the inner transaction. This way a malicious miner can't change them before
inserting the transaction in a micro block. Note: The authentication logic
still needs to actually use the Auth.TxHash during authentication for this
to take effect! - Set Protocol Upgrade heights for CERES by @hanssv in #4333
- More structured delegation signatures by @hanssv in #4219
- AENSv2.DataPt should have type bytes() not string by @hanssv in #4233
- Restrict GAAttachTx - only allowed for fresh accounts by @hanssv in #4237
- Adjust cost for reading stored value by @hanssv in #4249
- FATE: AENSv2.DataPt should contain FATE_BYTES by @hanssv in #4255
- HC/FATE: fix issue when calling Chain.blockhash on a competing key-block by @hanssv in #4263
- Arbitrary sized signed message in Crypto.verify_sig by @hanssv in #4193
- Make NamePreclaim optional by @hanssv in #4201
- Extend FATE with arbitrary size byte arrays by @hanssv in #4142
- Add Chain.network_id as FATE operation by @hanssv in #4167
- prepare AENS auction changes by @hanssv in #4113
Breaking Changes 🛠
- Add note that swagger is deprecated and little release note placeholder by @ThomasArts in #4334
Exciting New Features 🎉
- Change debug tx in mempool endpoint to use dry run by @mitchelli in #4318
- Reject Txs spending to non-payable accounts in mempool by @hanssv in #4321
- Sort paths and components in OpenApi by @davidyuk in #4330
Bugfixes 🐞
- Load contracts from default directories by @mitchelli in #4322
- Fix function clause so attempts are checked by @mitchelli in #4323
- Fix typo in "block not found" message by @davidyuk in #4324
- Don't allow BRI to be set for mainnet or testnet by @mitchelli in #4342
Other Changes
- Update email address in openAPI specs by @ThomasArts in #4332
- Fix typos in aeternity config schema by @davidyuk in #4336
Full Changelog: v6.13.0...v7.0.0
v7.0.0-rc1
First Ceres Release Candidate
- Testnet protocol upgrade has been scheduled for block 939750 estimated to Wed Apr 24 08:30:00 UTC 2024.
- Mainnet protocol upgrade has been scheduled for block 941700 estimated to Tue May 7 09:00:00 UTC 2024.
What's Changed
Ceres Protocol Changes
- Only allow GAAttachTx for nonce 1 - i.e. an account cannot later be transformed into a generalized account.
- Adjust the AENS auction mechanism;
- make auctions initially shorter
- new bids only extend auctions with a short period,
and it is only extended if the new bid comes near the end of the auction (within the extension period).
- Make NamePreclaimTx optional. Since the introduction of auctions, the front-running protection offered by the 'PreClaim -> Claim' flow is no longer as important. To simplify name registrations (or the start of a name auction) we now allow NameClaimTx without a previous NamePreclaimTx. In this case we set the
NameSalt
to0
. - Adds new operations to the FATE VM (version 3)
- bitwise operations on integers (
band
,bor
,bxor
,bnot
,<<
and>>
) - Address.to_bytes - converting an address to its binary representation
- Int.mulmod - a combined multiplication and modulus operation for efficiency
- Crypto.poseidon - a ZK/SNARK friendly hash function
- Introduce arbitrary sized binary arrays (type
bytes()
); addingBytes.split_any
,Bytes.to_fixed_size
,Bytes.to_any_size
,Bytes.size
,String.to_bytes
, andInt.to_bytes
; and adjustBytes.concat
, andCrypto.verify_sig
to allow both fixed and arbitrary sized byte arrays. - Chain.network_id - the network id of the chain
- bitwise operations on integers (
- Change the micro block gas limit to use actual used gas instead of upper gas limit.
This makes the network work better when contract calls are overestimated and allow for more transactions to fit in each block. - Allow contracts to be called by name. The key
contract_pubkey
of the name is resolved while running the transaction.
This has consequences for the contract call structure (aect_call
) that gets a new field with the contract call identifier.
In order to be able to find the call result without doing name resolution calls are stored relative to the id rather than the contract pubkey.
NOTE: Names can change at any time (frontrunning is possible!) so only call
contracts by name when you trust the owner of the name! - Introduce a new type of pointer for AENS names. The raw data pointer/value is
an arbitrary sized byte array (max 1024 bytes). And since before there is a
maximum of 32 key-pointer pairs. FATE VM and Sophia are updated to allow full
access to the new pointer type (See
https://github.com/aeternity/aesophia/blob/master/docs/sophia_stdlib.md#aensv2). - Add generic/wildcard AENS delegation signatures. I.e. instead of delegating
authority for a contract to operate with a specific name (name hash), by
signing just the stringAENS
(+ network id, public key and contract address
as usual) you can delegate the authority for a contract to handle all your
names with one signature. See Issue #4080 for details.
BEWARE: This gives the contract authority to handle all current and future
names on your behalf, so it should be used with extreme care and only for
well-known (and well understood!!) contracts. - Include fields
fee
andgas_price
in GAMetaTx when computing the TX-hash
of the inner transaction. This way a malicious miner can't change them before
inserting the transaction in a micro block. Note: The authentication logic
still needs to actually use the Auth.TxHash during authentication for this
to take effect! - Set Protocol Upgrade heights for CERES by @hanssv in #4333
- More structured delegation signatures by @hanssv in #4219
- AENSv2.DataPt should have type bytes() not string by @hanssv in #4233
- Restrict GAAttachTx - only allowed for fresh accounts by @hanssv in #4237
- Adjust cost for reading stored value by @hanssv in #4249
- FATE: AENSv2.DataPt should contain FATE_BYTES by @hanssv in #4255
- HC/FATE: fix issue when calling Chain.blockhash on a competing key-block by @hanssv in #4263
- Arbitrary sized signed message in Crypto.verify_sig by @hanssv in #4193
- Make NamePreclaim optional by @hanssv in #4201
- Extend FATE with arbitrary size byte arrays by @hanssv in #4142
- Add Chain.network_id as FATE operation by @hanssv in #4167
- prepare AENS auction changes by @hanssv in #4113
Breaking Changes 🛠
- Add note that swagger is deprecated and little release note placeholder by @ThomasArts in #4334
Exciting New Features 🎉
- Change debug tx in mempool endpoint to use dry run by @mitchelli in #4318
- Reject Txs spending to non-payable accounts in mempool by @hanssv in #4321
- Sort paths and components in OpenApi by @davidyuk in #4330
Bugfixes 🐞
- Load contracts from default directories by @mitchelli in #4322
- Fix function clause so attempts are checked by @mitchelli in #4323
- Fix typo in "block not found" message by @davidyuk in #4324
Other Changes
- Update email address in openAPI specs by @ThomasArts in #4332
Full Changelog: v6.13.0...v7.0.0-rc1
v6.13.0
What's Changed
Breaking Changes 🛠
Next Consensus
- [Ceres] More structured delegation signatures by @hanssv in #4219
- AENSv2.DataPt should have type bytes() not string by @hanssv in #4233
- [Ceres] Restrict GAAttachTx - only allowed for fresh accounts by @hanssv in #4237
- [Ceres] Adjust cost for reading stored value by @hanssv in #4249
- FATE: AENSv2.DataPt should contain FATE_BYTES by @hanssv in #4255
- HC/FATE: fix issue when calling Chain.blockhash on a competing key-block by @hanssv in #4263
Exciting New Features 🎉
- Add ability to configure directories for hard forks by @mitchelli in #4200
- Add version command to bin/aeternity script by @hanssv in #4252
- Make BRI configurable by protocol version by @mitchelli in #4253
- Allow prefunded genesis accounts in config by @hanssv in #4254
- Add meta information about the currency by @mitchelli in #4179
- Make the BRI optional per protocol version by @mitchelli in #4270
- Add encoded_tx to GetTransactionByHash endpoint by @hanssv in #4258
- Add GetAuctionEntryByName endpoint by @hanssv in #4259
- Sync stats improved by @hanssv in #4278
- Extra key for HTTP error responses by @ThomasArts in #4285
- Add uptime to /status endpoint by @hanssv in #4281
- Add endpoint to get recent gas prices by @hanssv in #4277
- Ping v2 and automatic ping vsn upgrade by @uwiger in #4188
- Bump enacl (fix C-warnings) by @hanssv in #4309
- Small sync improvements by @hanssv in #4311
- Add a fork analyze CLI command by @hanssv in #4313
- Add ability to dry-run endpoint to run transactions from the mempool by @mitchelli in #4308
Bugfixes 🐞
- DB might contain dict MP trees, convert them in from_db_format by @hanssv in #4239
- HC: Don't crash if there are no local stakers by @hanssv in #4238
- GH 4087 http endpoint info inner txs by @velzevur in #4120
- Fix incorrect hashrate computation for status endpoint by @hanssv in #4272
- fail gracefully on signed tx in /dry-run by @ThomasArts in #4287
- Fix typo in aeternity config schema by @davidyuk in #4293
GetRecentGasPrices
fixes by @davidyuk in #4295- Add missed definitions of Contract not found response in swagger by @ThomasArts in #4297
- Add return_type enums to ContractCallObject, GAObject by @ThomasArts in #4299
- Fix devmode accounts by changing
data/aeplugin_dev_mode
permissions by @davidyuk in #4307 - Fix typo in aect_contracts.erl by @hanssv in #4314
Other Changes
- Make sure build and package works on OTP26 by @hanssv in #4218
- Update MacOS build dependancies by @dincho in #4250
- Update garbage-collection.md by @nikita-fuchs in #4232
- Change OTP versions by @dincho in #4261
- Deprecate UAT seed node (eu-central-1) by @dincho in #4266
- Prepare for OTP-27 by @hanssv in #4275
- Update rocksdb by @ThomasArts in #4302
- Add handling of custom forks to rosetta by @mitchelli in #4296
- Improve GH release notes config by @dincho in #4312
- chore: fix typos by @xiaoxianBoy in #4315
New Contributors
- @xiaoxianBoy made their first contribution in #4315
Full Changelog: v6.12.0...v6.13.0
v6.12.0
What's Changed
Exciting New Features 🎉
- HC: Lazy leader by @velzevur in #4183
- Use dev_mode plugin version 0.6.0 by @uwiger in #4185
- Add current hashrate to /status response by @hanssv in #4207
- Cache core schema as persistent_term by @uwiger in #4196
- Gh 4138 rosetta mempool by @mitchelli in #4170
Bugfixes 🐞
- Fix testnet seed node address by @dincho in #4158
- Correctly handle badly encoded transactions in http dry-run API by @hanssv in #4195
- Remove continuation application during execution stack unwinding by @radrow in #4166
- Fix /status for HC by @hanssv in #4227
- HC: Fix empty parent generation issue by @hanssv in #4229
Next Consensus
- [Ceres] Arbitrary sized signed message in Crypto.verify_sig by @hanssv in #4193
- [Ceres] Make NamePreclaim optional by @hanssv in #4201
Other Changes
- Remove debug prints from FATE by @radrow in #4181
- HC: remove unused network id from the election contract by @velzevur in #4199
- Allow up to 10% not always 10% connected peers by @seanhinde in #3878
- Add a getter for debug variables registers by @ghallak in #4226
New Contributors
- @mitchelli made their first contribution in #4170
Full Changelog: v6.11.0...v6.12.0
Maintenance release
What's Changed
Exciting New Features 🎉
- Introduce FATE Debugger by @ghallak in #4079
- Devmode improvement: no timeout for on kb_emit requests. This allows creating a lot more blocks on one go. by @uwiger in #4164
- Bump aeplugin_devmode_version to 0.5.2 by @uwiger in #4169
- Control when mempool sync starts during chain syncing by @uwiger in #4160
Next Consensus
- [Ceres]: Extend FATE with arbitrary size byte arrays by @hanssv in #4142
- [Ceres]: Add Chain.network_id as FATE operation by @hanssv in #4167
Full Changelog: v6.10.0...v6.11.0
Maintenance release
What's Changed
Exciting New Features 🎉
- Bitcoin parent chain hyperchain connector by @seanhinde in #4124
- Add ability to specify aeternity config file on command line by @seanhinde in #4149
Bugfixes 🐞
- Default to a safe last_gc height by @uwiger in #4134
- Retry GC scans only once, then disable GC by @uwiger in #4130
- Fixes for db_direct_access + optimizations by @uwiger in #4135
Next Consensus
Other Changes
- Switch to c based ecrecover away from Rust lib by @seanhinde in #4071
- Pin down current hyperchain config in schema by @seanhinde in #4146
- GC follows top and automatically picks up siblings by @uwiger in #4147
- Minor tweaks for HC in json config schema (stricter types). by @rumyanar in #4153
- Update Rosetta README with current status by @seanhinde in #4143
- Update node build requirements documentation by @loxs in #4154
New Contributors
Full Changelog: v6.9.0...v6.10.0
Maintenance release
Please see the release notes.
Maintenance release
Please see the release notes.