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.
- Remove the need of the IPC agent: By pushing the core logic of cross-net primitives to the peer implementation we improved the UX and managed to repurpose the agent into the
IpcProvider
library and theipc-cli
that users can use to interact with IPC subnets. - Integrate in Fendermint the IPLD Resolver that will allow us in the future to perform the resolution of content and state in other subnets by CID (an example of where it'll be used is the low-fat commitment of bottom-up checkpoints).
What's Changed
- Update sdk for fendermint by @cryptoAtwill in consensus-shipyard/ipc#295
- Update sdk by @cryptoAtwill in consensus-shipyard/ipc#298
- IPC-299: migrate sdk from ipc-actors to repo by @adlrocha in consensus-shipyard/ipc#301
- IPC-299: implement get-chain-id by @adlrocha in consensus-shipyard/ipc#313
- IPC-299: Cli checkpoint commands implementation by @adlrocha in consensus-shipyard/ipc#312
- IPC-299: Implement cli cross-msg methods by @adlrocha in consensus-shipyard/ipc#311
- IPC-299: Implementation of subnet cli commands by @adlrocha in consensus-shipyard/ipc#310
- IPC-299: Implementation of provider methods by @adlrocha in consensus-shipyard/ipc#309
- IPC-299: Implement wallet CLI commands and provider identity by @adlrocha in consensus-shipyard/ipc#307
- IPC-299: Set default key in EVM keystore and improvements by @adlrocha in consensus-shipyard/ipc#306
- IPC-299: IpcProvider implementation by @adlrocha in consensus-shipyard/ipc#305
- IPC-299: Groundwork for the refactor by @adlrocha in consensus-shipyard/ipc#300
- IPC-314: Remove unnecessary code for daemon, and fvm-related by @adlrocha in consensus-shipyard/ipc#318
- Minor clean up by @cryptoAtwill in consensus-shipyard/ipc#324
- migrate abi by @cryptoAtwill in consensus-shipyard/ipc#325
- Remove references to spacenet from docs by @jsoares in consensus-shipyard/ipc#322
- Fix typo by @juliangruber in consensus-shipyard/ipc#326
- add query validators by @cryptoAtwill in consensus-shipyard/ipc#327
- Patch cargo by @cryptoAtwill in consensus-shipyard/ipc#328
- chore: remove ReloadConfig and add new config from subnet by @adlrocha in consensus-shipyard/ipc#329
- Support top down query by @cryptoAtwill in consensus-shipyard/ipc#331
- Validator metadata change by @cryptoAtwill in consensus-shipyard/ipc#332
- Fix: update contract bindings by @adlrocha in consensus-shipyard/ipc#334
- Detect chain reorg by @cryptoAtwill in consensus-shipyard/ipc#335
- SOL-242: remove network_name and accounts from config by @adlrocha in consensus-shipyard/ipc#336
- Bottom up checkpoint daemon by @cryptoAtwill in consensus-shipyard/ipc#338
- FM-306: add method in provider to get genesis info by @adlrocha in consensus-shipyard/ipc#337
- fix validator set error by @cryptoAtwill in consensus-shipyard/ipc#340
- Query event instead of stream by @cryptoAtwill in consensus-shipyard/ipc#341
- Update README as a starting point for the doc update by @adlrocha in consensus-shipyard/ipc#342
- FM: accept 0x address in --from, add bootstrap, subnet deploy and doc updates by @adlrocha in consensus-shipyard/ipc#344
- IPC-345: add unstake command by @adlrocha in consensus-shipyard/ipc#346
- More CLI commands by @cryptoAtwill in consensus-shipyard/ipc#347
- FM: fendermint install-infra script, docs update, minor fixes by @adlrocha in consensus-shipyard/ipc#343
- DOCS: add usage docs for all of the commands of the cli by @adlrocha in consensus-shipyard/ipc#349
- FIX: release, default IPC addresses in child subnet, minor fixes by @adlrocha in consensus-shipyard/ipc#352
- IPC-354: update infra scripts to use FM-329 by @adlrocha in consensus-shipyard/ipc#356
- make private keys readable for owners only by @dnkolegov in consensus-shipyard/ipc#362
- IPC-357: remove the use of unstable flag in make build by @adlrocha in consensus-shipyard/ipc#359
- Query event by @cryptoAtwill in consensus-shipyard/ipc#350
- IPC-347: add pre-fund command and genesis balances in GenesisInfo call by @adlrocha in consensus-shipyard/ipc#361
- Fix minor bugs found during manual testing by @dnkolegov in consensus-shipyard/ipc#360
- fix make build in the Makefile by @lazavikmaria in consensus-shipyard/ipc#368
- IPC-363: adds docs for pre-fund/pre-release by @adlrocha in consensus-shipyard/ipc#367
- DOCS: deprecate outdated docs by @adlrocha in consensus-shipyard/ipc#370
- FIX: accept 0x address as submitter in relayer by @adlrocha in consensus-shipyard/ipc#371
- Calibration quickstart fixes by @maciejwitowski in consensus-shipyard/ipc#372
- Fix misprints in quickstart-calibration.md by @dnkolegov in consensus-shipyard/ipc#376
- add validator info by @cryptoAtwill in consensus-shipyard/ipc#369
- IPC-373: Fix balances returned with bogus rpc by @adlrocha in consensus-shipyard/ipc#379
- IPC-366: fix token units in list subnets by @adlrocha in consensus-shipyard/ipc#380
- IPC-364: relayer docs and parent finality command by @adlrocha in consensus-shipyard/ipc#378
- FIX: remove docker-build related code from install_infra by @adlrocha in consensus-shipyard/ipc#383
- UPDATE: M2.5 contract addresses by @adlrocha in consensus-shipyard/ipc#384
New Contributors
- @juliangruber made their first contribution in consensus-shipyard/ipc#326
- @lazavikmaria made their first contribution in consensus-shipyard/ipc#368
- @maciejwitowski made their first contribution in consensus-shipyard/ipc#372
Full Changelog: consensus-shipyard/ipc@v0.5.1...v0.6.0