Releases: aeternity/aeternity
Hyperchains v1.1.0
Hyperchains
This is an External release-candidate of Hyperchains as described in Periodically Syncing HyperChains.
NOTICE: This is a public release candidate of Hyperchains functionality, intended FOR TESTING PURPOSES ONLY. No assets of value should be committed to Hyperchains until the first stable release. The tools involved in setting up and using Hyperchains are still under development, and you may encounter bugs or error messages.
NOTICE: This release is not compatible with RC3 and previous tests chains cannot be rolled over between release candidates
Developers can find detailed instructions on creating a Hyperchain in the Hyperchains documentation. This resource is best suited for those familiar with aeternity nodes. The tarballs included in this release are intended for expert æternity developers.
Hyperchains unify the efficiency of proof-of-stake (PoS) chains with the trusted security and unique features of the aeternity proof-of-work (PoW) blockchain, with broader PoW chain compatibility forthcoming.
An aeternity Hyperchain comes with all the normal features of aeternity:
- FATE VM: Efficient virtual machine for executing smart contracts.
- Sophia Language: A functional programming language for secure smart contracts.
- State Channels: Off-chain scaling for private and secure transactions.
- AENS: Æternity Naming System for human-readable addresses.
- Oracles: Bridging real-world data into the blockchain ecosystem.
For more information, visit aeternity.com
What's Changed
Exciting New Features 🎉
- Validate parent pin height by @klercker in #4559
- Split voting by @mitchelli in #4560
- Adapt some Chain-inspecting FATE operations for PoS/HC by @hanssv in #4579
- Document the HC-specific FATE behavior by @hanssv in #4582
- Do healthcheck more frequently at startup by @davidyuk in #4292
Bugfixes 🐞
- Mark
nonce
as required in SpendTx by @davidyuk in #4557 - Config schema fixes by @davidyuk in #4561
- Penalty contract and test fixes by @klercker in #4552
- Sync default colors with brandguide by @davidyuk in #4370
- Fix some symbols error by @hongmengning in #4413
- Fix edoc by @dincho in #4590
- fix: add config schema definition for hyperchain staking_contract by @adas0x in #4585
- More accurate block type in OpenApi by @davidyuk in #4589
Other Changes
- CI cost optimization by @dincho in #4563
- Create summary.md by @ploetzly in #4580
- Update and rename summary.md to SUMMARY.md by @ploetzly in #4584
- More internal documentation improvements by @richcarl in #4581
- Drop macos builds by @dincho in #4591
New Contributors
- @hongmengning made their first contribution in #4413
- @adas0x made their first contribution in #4585
Full Changelog: v7.3.0-rc5...v7.3.0-rc6
Hyperchains v1.0.0
Hyperchains
This is an External release-candidate of Hyperchains as described in Periodically Syncing HyperChains.
NOTICE: This is a public release candidate of Hyperchains functionality, intended FOR TESTING PURPOSES ONLY. No assets of value should be committed to Hyperchains until the first stable release. The tools involved in setting up and using Hyperchains are still under development, and you may encounter bugs or error messages.
NOTICE: This release is not compatible with RC3 and previous tests chains cannot be rolled over between release candidates
Developers can find detailed instructions on creating a Hyperchain in the Hyperchains documentation. This resource is best suited for those familiar with aeternity nodes. The tarballs included in this release are intended for expert æternity developers.
Hyperchains unify the efficiency of proof-of-stake (PoS) chains with the trusted security and unique features of the aeternity proof-of-work (PoW) blockchain, with broader PoW chain compatibility forthcoming.
An aeternity Hyperchain comes with all the normal features of aeternity:
- FATE VM: Efficient virtual machine for executing smart contracts.
- Sophia Language: A functional programming language for secure smart contracts.
- State Channels: Off-chain scaling for private and secure transactions.
- AENS: Æternity Naming System for human-readable addresses.
- Oracles: Bridging real-world data into the blockchain ecosystem.
For more information, visit aeternity.com
What's Changed
Bugfixes 🐞
Other Changes
Full Changelog: v7.3.0-rc4...v7.3.0-rc5
Hyperchains v1.0.0
Hyperchains
This is an External release-candidate of Hyperchains as described in Periodically Syncing HyperChains.
NOTICE: This is a public release candidate of Hyperchains functionality, intended FOR TESTING PURPOSES ONLY. No assets of value should be committed to Hyperchains until the first stable release. The tools involved in setting up and using Hyperchains are still under development, and you may encounter bugs or error messages.
Developers can find detailed instructions on creating a Hyperchain in the Hyperchains documentation. This resource is best suited for those familiar with aeternity nodes. The tarballs included in this release are intended for expert æternity developers.
Hyperchains unify the efficiency of proof-of-stake (PoS) chains with the trusted security and unique features of the aeternity proof-of-work (PoW) blockchain, with broader PoW chain compatibility forthcoming.
An aeternity Hyperchain comes with all the normal features of aeternity:
- FATE VM: Efficient virtual machine for executing smart contracts.
- Sophia Language: A functional programming language for secure smart contracts.
- State Channels: Off-chain scaling for private and secure transactions.
- AENS: Æternity Naming System for human-readable addresses.
- Oracles: Bridging real-world data into the blockchain ecosystem.
For more information, visit aeternity.com
What's Changed
Exciting New Features 🎉
- Verify voting information in HCElection by @hanssv in #4531
- Document how to run HC with docker by @dincho in #4535
- 4428 adjust child epoch length based on vote by @mitchelli in #4521
- Add validator docs by @dincho in #4538
- Allow configuring initial validators in the HC config by @dincho in #4542
- Holes and forks by @hanssv in #4546
- Fix typo and clarify treasury private key location by @dincho in #4545
- Staking Contract Penalty Support by @klercker in #4548
- Respect Parent Chain finality by @hanssv in #4551
- 4534 v10 voting follow branch fork by @mitchelli in #4543
- HC: More better fee distribution by @hanssv in #4532
- Voting improvements by @hanssv in #4555
Bugfixes 🐞
- Some fixes to the blockgen module by @richcarl in #4527
- Mark
started_at
as required in AuctionEntry by @davidyuk in #4537 - Make logdir configuration work as intended by @richcarl in #4491
- Mark
encoded_key
as required in NamePointer by @davidyuk in #4541 - Add missed
flags
to KeyBlock definition by @davidyuk in #4540
Other Changes
- Update hyperchains.md by @ploetzly in #4528
- Add comments to aec_block_generator by @richcarl in #4529
- Add more comments to aec_conductor by @richcarl in #4530
- Make relative shorcut links to test results by @richcarl in #4544
- Test stability improvements by @hanssv in #4549
- Fix check in verify_rewards test by @hanssv in #4550
- Improve test stability... again... by @hanssv in #4553
- Fix problem with unit tests not starting system apps in proper order by @richcarl in #4554
- Additional tests for eoe-holes and stuck chain by @hanssv in #4556
Full Changelog: v7.3.0-rc3...v7.3.0-rc4
Hyperchains v0.9.1
Hyperchains
This is an External pre-release of Hyperchains as described in Periodically Syncing HyperChains.
NOTICE: This is a public beta release of Hyperchains functionality, intended FOR TESTING PURPOSES ONLY. No assets of value should be committed to Hyperchains until the first stable release. The tools involved in setting up and using Hyperchains are still under development, and you may encounter bugs or error messages.
Developers can find detailed instructions on creating a Hyperchain in the Hyperchains documentation. This resource is best suited for those familiar with aeternity nodes. The tarballs included in this release are intended for expert æternity developers.
Hyperchains unify the efficiency of proof-of-stake (PoS) chains with the trusted security and unique features of the aeternity proof-of-work (PoW) blockchain, with broader PoW chain compatibility forthcoming.
An aeternity Hyperchain comes with all the normal features of aeternity:
- FATE VM: Efficient virtual machine for executing smart contracts.
- Sophia Language: A functional programming language for secure smart contracts.
- State Channels: Off-chain scaling for private and secure transactions.
- AENS: Æternity Naming System for human-readable addresses.
- Oracles: Bridging real-world data into the blockchain ecosystem.
For more information, visit aeternity.com
What's Changed
Exciting New Features 🎉
Other Changes
New Contributors
Full Changelog: v7.3.0-rc2...v7.3.0-rc3
Hyperchains v0.9
Hyperchains
This is an External pre-release of Hyperchains as described in Periodically Syncing HyperChains.
See also aeternity Hyperchains.
NOTICE: This is a public beta release of Hyperchains functionality that is to be considered FOR TESTING PURPOSES ONLY. No assets of value should be committed to Hyperchains until the first stable release.
Hyperchains integrate with other blockchain networks, leveraging their security and consensus mechanisms while providing scalable, energy-efficient hyperchains.
An aeternity Hyperchain comes with all the normal features of aeternity:
- FATE VM: Efficient virtual machine for executing smart contracts.
- Sophia Language: A functional programming language for secure smart contracts.
- State Channels: Off-chain scaling for private and secure transactions.
- AENS: Æternity Naming System for human-readable addresses.
- Oracles: Bridging real-world data into the blockchain ecosystem.
See aeternity.com for more information.
What's Changed
Exciting New Features 🎉
- Add getters for validator_min_stake by @nikita-fuchs in #4510
- Implement BFT voting by @mitchelli in #4514
- Parent connector pinning refac by @klercker in #4515
- Doge parent_connector by @klercker in #4519
- Create DelegatedStaking.aes by @nikita-fuchs in #4520
Bugfixes 🐞
- Correctly adjust current_stake upon withdrawal (if necessary) by @hanssv in #4516
- Fixes in Open Api related to Hyperchains by @davidyuk in #4517
Other Changes
Full Changelog: v7.3.0-rc1...v7.3.0-rc2
Hyperchains v0.8
Hyperchains
This is an Internal pre-release of Hyperchains as described in Periodically Syncing HyperChains.
See also aeternity Hyperchains.
Hyperchains integrate with other blockchain networks, leveraging their security and consensus mechanisms while providing scalable, energy-efficient hyperchains.
An aeternity Hyperchain comes with all the normal features of aeternity:
- FATE VM: Efficient virtual machine for executing smart contracts.
- Sophia Language: A functional programming language for secure smart contracts.
- State Channels: Off-chain scaling for private and secure transactions.
- AENS: Æternity Naming System for human-readable addresses.
- Oracles: Bridging real-world data into the blockchain ecosystem.
See aeternity.com for more information.
About this release
This preliminary implementation of Hyperchains lays the foundation for a scalable and energy-efficient blockchain system. Key features introduced in this release include:
- Possible to spin up hyperchain on local machine with æternity as pinning chain also running on local machine.
- Introduction of Epochs.
- Introduction of a Staking Cycle.
- Future leader election.
- Leader schedule per epoch.
- Pinning. Instead of posting every block on parent chain, pin at most once per epoch.
- Fix block synchronization.
- Change from Bitcoin.NG to 1 microblock per generation.
- Change the order of keyblock and microblocks.
- Introduce block flags for placeholder for late blocks.
- Introduce a real notion of time.
- Hyperchains configuration including contracts and configurable coinbase and timings.
Core Features
-
Staking Mechanism
- Enables participants to stake tokens and qualify for block production and validation. The staking framework ensures fairness and rewards based on contributions and performance.
-
Periodic Synchronization with Pinning Mechanism
- Introduces a semi-lockstep synchronization model that aligns the epochs of Hyperchains with the pinning chain.
- A cryptographically secure pinning mechanism anchors the hyperchain state to the pinning chain, ensuring robust alignment and reduced operational overhead.
-
Future Leader Election
- Implements a randomized leader election system, utilizing entropy derived from the pinning chain.
- This ensures predictable and secure block production, enhancing efficiency and reducing the need for frequent consensus actions.
-
Finality Guarantees
- Fast Finality: When all validators are online and behaving correctly, blocks achieve instant finality.
-
High Throughput
- Optimized system design supports processing a high volume of transactions, meeting the demands of modern blockchain applications.
Governance and Consensus Enhancements
- Efficient Consensus Mechanism
- Randomized leader election reduces the need for frequent votes, streamlining the consensus process and lowering computational overhead.
Key Improvements Over Previous Releases
- Reduced pinning-Chain Dependency
- Optimized the relationship between the hyperchains and pinning chains, minimizing interaction and operational costs while maintaining security.
Known Limitations
This pre-release does not yet address all advanced features proposed in the whitepaper, such as enhanced fork resolution strategies and multi-epoch staking scenarios.
- Fork resolution is not fully implemented.
- Voting is not fully implemented.
- Fee distribution between block producers is not optimal.
- Default values for token economics are not yet fully balanced.
- Performance is not fully tested and optimized.
Plans for Version 1.0.0
The 1.0 release aims to achieve the following:
- Comprehensive Fork Handling: Implement robust solutions for fork scenarios.
- Enhanced Staking Options: Introduce multi-cycle locking and flexible staking schedules.
- Optimized Block Production: Refine reward distribution to incentivize timely and accurate block creation.
- Enhanced Token Economics: Refine fees, rewards and penalties in default configuration and present configuration suggestion for different scenarios.
- Improved API: Depending on community feedback the hyperchain API might be changed in version 1.0.0
Future Releases
Planned updates will focus on:
- Performance
- Enhanced governance through voting
- More advanced staking and delegated staking mechanisms
- Improve end of Epoch voting and progress
- Clean up Bitcoin.NG legacy.
Feedback and Collaboration
We encourage the aeternity foundation to engage with this release and provide feedback through Æternity’s GitHub repository. Together, we aim to refine Hyperchains into a robust and scalable blockchain solution.
What's Changed
Exciting New Features 🎉
- Update to released Sophia compiler 8.0.0 by @ThomasArts in #4382
- Next protocol name: Arcus by @ThomasArts in #4384
- Initial version of epochs for checking concept by @mitchelli in #4379
- #4394 Removed all HC Commitment code by @klercker in #4409
- PC/CC speed sync by @mitchelli in #4406
- HC: Implement random schedule by @hanssv in #4417
- Multiple epochs in contract by @ThomasArts in #4421
- Pin step #1 - Create pin data, post to PC, post TxHash to CC by @klercker in #4424
- Build epoch buffer to resist fast and slow parent chain behaviour by @ThomasArts in #4425
- Parent connector return chain type by @klercker in #4430
- Hc pinning from wallet by @ThomasArts in #4431
- Reverse key-block/micro-block order by @hanssv in #4434
- Schedule cache by @ThomasArts in #4447
- Cleanup and consistently spell/name HC config related things by @hanssv in #4450
- Make the call to
init_epochs
explicit in consensus by @hanssv in #4452 - Remove old PoS contract logic by @ThomasArts in #4456
- More robust caching of validator schedules by @hanssv in #4461
- Adding Block Production Time config. Fix #4459 by @happi in #4460
- First (semi) complete pin validation by @klercker in #4441
- Pin Reward Config and Carry-over by @klercker in #4472
- only last leader in epoch can pin by @ThomasArts in #4451
- Add flag field to header records. by @happi in #4480
- Improve block production logic by @hanssv in #4488
- Save epoch info in cache by @richcarl in #4485
- Add child block production time configuration key by @richcarl in #4486
- Pinning agent by @klercker in #4481
- Add HCVoteTx by @hanssv in #4473
- Add proper event handling for HC key-blocks by @hanssv in #4495
- Optimise block production attempts by @hanssv in #4500
- Pinning Agent refactor to
new_epoch
event by @klercker in #4499 - static, configurable coinbase for HC by @klercker in #4503
- Staking contracts overhaul by @hanssv in #4504
- Improve staking contracts by @hanssv in #4509
Bugfixes 🐞
- Fix typo in configuration example by @mradkov in #4381
- Don't crash on which_applications in test proxy by @hanssv in #4383
- Respect CC block time by @hanssv in #4410
- Fix error message for
bin/aeternity keys_gen
by @hanssv in #4463 - Gh4453 right leader in mb by @ThomasArts in #4467
- Fix syntax error in 'offline' command by @hanssv in < 8000 a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2662141255" data-permission-text="Title is private" data-url="https://github.com/aeternity/aeternity/issues/4490" data-hovercard-type="pull_request" data-hovercard-url="/aeternity/aeternity/pull/4490/hovercard" href="https://github.com/aeternity/aeternity/pull/4490">#4490
- Make aemon HC-aware by @hanssv in #4502
Other Changes
- Added initial version of hacking guide by @richcarl in #4398
- Added DIR (--dir) option to ct-latest target by @klercker in #4401
- Add hc specific test suite by @ThomasArts in #4400
- More hyperchain specific tests by @ThomasArts in #4402
- Improve HC tests by some "caching" by @hanssv in #4408
- Use Config to store active nodes in by @ThomasArts in #4407
...
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