This repository has been archived by the owner on Jan 11, 2024. It is now read-only.
This release includes a complete refactor of the contracts codebase to support the integration of new Fendermint-based subnets.
Improvements in M2.5.
- Replaced top-down checkpoints by proofs-of-finality embedded as part of the consensus. Before M2.5, validators had to send an explicit transaction to the child chain periodically to agree on the finality they saw in the parent to trigger the execution of top-down message and update the membership. Now in every child subnet block a proof-of-finality can be voted to determine what is the current view of the parent and propagate changes to the child chain.
- Replaced explicit voting of bottom-up checkpointsin the parent (requiring one voting transaction by a majority of validators), to reaching consensus for bottom-up checkpoints in the child subnet's consensus, allowing the relay of the bottom-up checkpoint to the parent by sending a single transaction with the checkpoint and a multisig.
- Piggy-back on top-down proof-of-finality and bottom-up checkpoints for the execution of cross-net messages (giving us flexibility on the way these messages are executed, how they are rewarded, and who pays for the gas).
- The ability to provide genesis funds to addresses before a subnet has bootstrapped.
- Improvements to collateral management. Adding logic to bootstrap subnets according to specific requirements, adding a delay when subnets join and leave, trigger the reconfiguration through top-down proof-of-finality, and synced membership and checkpoint signatures solving issues where the current membership of the subnet didn't match the one where the checkpoints were signed.
What's Changed
- get chain-id automatically in deploy-ipc by @adlrocha in #184
- Add a test for issue183 by @dnkolegov in #185
- Add setValidatorNetAddr by @dnkolegov in #181
- Add pagination by @dnkolegov in #182
- Log event by @cryptoAtwill in #187
- Arrange top down messages by height by @cryptoAtwill in #190
- Fix sendCrossMessage and execute methods by @dnkolegov in #196
- Add install eth-abi to make test by @cryptoAtwill in #195
- Commit parent finality by @cryptoAtwill in #193
- Remove min params by @dnkolegov in #201
- Rust binding by @cryptoAtwill in #205
- Membership by @dnkolegov in #200
- Update rust binding with new contract by @cryptoAtwill in #206
- Method to list incomplete checkpoints by @dnkolegov in #207
- Use new bottom-up checkpoint type by @dnkolegov in #214
- Update rust binding by @cryptoAtwill in #211
- Staking by @cryptoAtwill in #208
- Add a coverage test by @dnkolegov in #215
- Getter for signatures by @dnkolegov in #218
- Remove libvoting by @dnkolegov in #216
- Multi-signature ECDSA by @dnkolegov in #192
- Clean up by @cryptoAtwill in #220
- IPC-221: Bootstrap subnets by @adlrocha in #223
- submitCheckpoint method by @dnkolegov in #219
- store validator changes by @cryptoAtwill in #225
- Fix conflicts in the bindings by @dnkolegov in #231
- Metadata with confirmation by @cryptoAtwill in #230
- IPC-221: include genesisValidators and bootstrapped event by @adlrocha in #228
- IPC-221: Bootstrap followup, clean outdated checkpoint, membership code by @adlrocha in #234
- Checkpoint execution by @dnkolegov in #229
- FM-303: apply finality changes by @adlrocha in #235
- Add fee-based rewards by @dnkolegov in #236
- Minor gas opimisations by @dnkolegov in #237
- Confirm membership and fix misprints by @dnkolegov in #238
- Chain reorg detection by @cryptoAtwill in #240
- Support bootstrap nodes by @dnkolegov in #239
- remove block hash by @cryptoAtwill in #241
- Remove name by @dnkolegov in #243
- fix: update uncommitted bindings by @adlrocha in #244
- Fix slither findings by @dnkolegov in #245
- Fix deployment by @cryptoAtwill in #246
- FM-306: getters for genesis of child subnet by @adlrocha in #247
- Update binding by @cryptoAtwill in #248
- add checking method by @cryptoAtwill in #249
- Integration testing by @aakoshh in #250
- Return previous finality by @cryptoAtwill in #252
- Add more comment by @cryptoAtwill in #253
- Integration testing fixes by @aakoshh in #254
- Add unstake method by @dnkolegov in #257
- Integration testing fixes by @aakoshh in #255
- FIX: Cannot unstake 0 by @aakoshh in #260
- Lib staking bindings by @cryptoAtwill in #261
- FIX: funds weren't being burnt in release by @adlrocha in #263
- Unit tests - Part 1 by @dnkolegov in #259
- Mikers/diamond upgrades by @snissn in #262
- Unit test - part 2 by @dnkolegov in #264
- FM-347: add pre-fund to subnet to include genesis balance by @adlrocha in #267
- Remove check by @cryptoAtwill in #266
- Fix stack too deep by @cryptoAtwill in #270
- IPC-361: Pre-release and minor fixes by @adlrocha in #271
- Check in ABI artifacts by @aakoshh in #276
- Check foundry is installed by @aakoshh in #277
New Contributors
Full Changelog: v0.2.0...v0.3.0