Skip to content

Releases: chainflip-io/chainflip-backend

1.0.0

13 Nov 17:22
441f15c
Compare
Choose a tag to compare

Changelog

All notable changes included in each Chainflip release will be documented in this file.

[1.0.0] - 2023-11-03

Features

  • Don't include dust btc amounts on rotation (#4063)
  • Set pool fees (#4050)
  • Ensure correct process termination in ingress/egress tracker (#4101)
  • Ingress-egress tracking for DOT (#4121)
  • Btc ingress egress tracking (#4133)
  • Wait for registration before starting p2p (#4160)
  • Add dry run CLI and use it in register_account_role (#3992)
  • Shorter protocol id (#3906)
  • New lp interface (#3886)
  • More forgiving dot address parsing (#3938)
  • (PRO-474) broadcast safe mode (#3902)
  • Backup RPC (#3951)
  • Governance-pre-authorised-calls (#3964)
  • Threshold signing with specific fixed key (#3979)
  • Add new archive node service file (#3937)
  • Qualify nodes by minimum cfe version (#4003)
  • Update substrate dependency (#3994) (#4004)
  • Calculate ccm gas limit (#3935)
  • [(PRO-823)] bind-nodes-executor-to-address (#3987)
  • Witnesser dispatch call filter (#4001)
  • Subcribe_price and depth rpc (#3978)
  • Speedy scc ((PRO-777) (PRO-593)) (#3986)
  • Add initiated_at block number for egresses (#4046)
  • Simple pre-witnessing (#4056)
  • Size limit for CCM (#4015)
  • Add WS subscription for prewitnessed swaps (#4065)
  • Added logging server port setting (#4076)
  • Add account roles and LP info to custom RPC (#4089)
  • Add external expiry block to event [(WEB-496)] (#4097)
  • Add websocket eth subscription to deposit tracker (#4081)
  • Catch dot port missing early (#4082)
  • Add expiry block to liquidity channel event (#4111)
  • Use snake case for lp api method names (#4108)
  • Add restricted balances to AccountInfoV2 (#4048)
  • Add flip balance to account info (#4119)
  • Bouncer command for submitting runtime upgrades (#4122)
  • Changelog config file. (#4095)
  • Account_info_v2 APY (#4112)
  • Required changes for multi engine release (#4123)
  • Bouncer, auto bump spec version for runtime upgrades (#4143)
  • Add ingress-egress documentation (#4140)
  • Auto sweep earnings and accurate free balance rpc ((PRO-856)) (#4145)
  • Nested polkadot fetch (#4006)
  • Verify transaction metadata (#4078)((PRO-819))
  • Automate compatible CFE upgrades (#4149)
  • Restricted address should override bound restrictions (#4159)
  • Improve environment RPC (#4154)
  • Replace NumberOrHex (#4163)
  • 3-node localnet (#4086)
  • Update slashing values for mainnet (#4148)
  • Optimistic polkadot rotation (#4182)
  • Implement dry-run (#4155)
  • P2p stale connections (#4189)

Fixes

  • Correct Select Median Implementation (#3934)
  • Ensure existing p2p connection is removed before reconnecting (#4045)
  • Limit ZMQ Buffer Size for Outgoing Messages (#4051)
  • Correctly handle peer updates while waiting to reconnect (#4052)
  • Correct rotation transitions on failure (#3875)
  • Start ARB network and increase polkadot rpc connection limit 🐛🚀 (#3897)
  • Index and hash log (#3898)
  • Strictly monotonic (#3899)
  • Dot decode xt (#3904)
  • Is_qualified should be called for all checks (#3910)
  • Broadcast success should be witnessable after a rotation (#3921)
  • Log error when we try to transfer more than we have fetched (#3930)
  • Independent witnessing startup (#3913)
  • Only burn flip if non zero (#3932)
  • Duplicate logging (#3939)
  • Update substrate ref to use Kademlia fix (#3941)
  • Tweak cli generate-keys output (#3943)
  • CanonicalAssetPair encoding issue (#3958)
  • Prefer finalize_signed_extrinsic in engine (#3956)
  • Scale encoding skip phantom data (#3967)
  • Set limit order to zero (#3971)
  • Clear failed broadcasters after abort (#3972)
  • Submit eip1559 transactions (#3973)
  • Release build (#3975)
  • Fund-redeem test (#3982)
  • Set network fee to 10bps (#4010)
  • Use stderr for cli messages (#4022)
  • Update cfe version record even if Idle (#4002)
  • Use saturating sub while calculating change amount (#4026)
  • Deposit channel expiry (#3998)
  • Polkadot nonce issue (#4054)
  • Warn -> info (#4060)
  • Loop_select conditions ((PRO-587)) (#4061)
  • Take settings back...
Read more

0.4.1

25 Jul 10:25
6c72faf
Compare
Choose a tag to compare
chore: bump to 0.4.1 (#1955)

0.4.0 - Airplane Peanuts (Paradise)

25 Jul 10:26
Compare
Choose a tag to compare

0.3.0 - Contract Upgrade

04 May 13:06
5edc5f0
Compare
Choose a tag to compare
  • Now using sandstorm-rc1 ETH contracts.
  • Auctions and Vaults substantially refactored.
  • Plenty of other features and bugfixes.

Soundcheck v0.2.2 - ETH Logging & Keygen Banning

10 Feb 12:10
Compare
Choose a tag to compare

Contains more logging for the ETH witness stream, and some (hopefully) more robust banning assumptions for our Keygen process.

Soundcheck v0.2.1 - Heartbeat Hotfix

04 Feb 15:40
0b7fa31
Compare
Choose a tag to compare

Passive Validators now submit heartbeats

Soundcheck v0.2.0 - Feb 4 2022

04 Feb 10:02
002471c
Compare
Choose a tag to compare
Release/rc oneshot stopgap take 2 (#1257)

* Update types.json (#1044)

Change `Uint` to from `[u8; 32]` to `U256`

* Wait for account to be staked

* Add SC Test

* cargo fmt --all

* logging account state every block

* assert_ok and assert_noop don't support context strings

* Remove incorrect variable names

* Update types.json (#1051)

Remove trailing comma

* * fixed broken nonce

* A trait to qualify a validator

* Set backup group size on genesis

* implement trait to qualify validators

* Qualify validators at during auction and out of auction

* bug, we want the ratio of either the target or actual group size

* test we have genesis state

* test against late staker and that they are validated out of auction

* fmt!

* Handle the upcoming ending of an epoch

* A trait to provide us the current backup validators

* A trait to dish out rewards due to all

* Implementation for our backup validators

* Apportion rewards to those due

* Notify handler of an upcoming end of epoch

* Store bond for epoch removing erroneous reliance on the auction pallet which *may* change

* Apportion rewards at end of current epoch

* Differentiate error string from earlier rewards on end of epoch

* Use new backup validators trait

* imports

* Complete empty impls

* Fix overflow multiplication

* Compare before and after for backup emissions

* fmt!

* remove block number from log message

* * rerun benchmark
* started with report_keygen_outcome

* sort bidders when we update member

* Reorder latest_bock_number increment

* * added comment
* added basic benchmarks for vault hook

* use default impl

* remove unnecessary comparison

* * refactored vaults benchmark
* integrated benchmark into pallet
* generated weights

* P2P Off-Chain SC Tests

* clear up some naming and use constant

* fmt!

* * added verify arms for benchmarks
* rerun benchmarks

* Add log dependency

* Remove next validators from trait and update documentation

* Refactor and maintain state for current validating set

* Update mock and test to reflect change in epoch info

* Initialise vault at genesis with epoch index

* Refactor tests for epoch index

* Remove unused EpochInfo trait in reputation

* remove some copies

* add dependency

* Optimise call from storage

* Missing dependency

* rename to next_validator_group

* Mock Auctioneer to remove the auction pallet

* auctioneer trait has an auction index

* genisis keyshares input/output to files

* Add missing mockall checkpoints

* Move p2p code into p2p.rs from p2p/mod.rs

* Use multisig_p2p and multisig_p2p_transport naming instead of p2p and cf_p2p for the cfe and sc components of the p2p comms

* cargo fmt --all

* Use "-" not "_" in directories

* * added runtime component for blamed validators

* Chore/settings refactor (#1077)

* Safe ETH stream (#1067)

* Robust threshold signer selection (#1078)

Previously we always selected the first t (threshold) online signers. And if less than t were available, we returned less than t...

This PR ensure that (a) we randomise the selection based on the provided seed value and (b) if we can't select enough signers to satisfy the threshold, we return None. This is then handled by the threshold signing pallet by rescheduling the ceremony by a configurable number of blocks (currently set to one block).

It also refactors the signer nomination a bit and extracts the functions into their own module in the runtime crate.

Fixes #1063

* Expose witnesser storage in the runtime. (#1084)

* Migrate to version 1 from genesis version

* Ensure we have the same set of validators in the pallet storage and those securing the network

* initial integration

* fmt!

* fmt!

* fmt

* refactor mock

* refactor mock and simplify tests

* bug fixed, no need to migrate

* Use const for version

* remove redundant ref/copies

* rework migration to include pre and post upgrade checks

* Add missing imports.

* build for try-runtime

* remove dead code

* keep consistent and check version on post upgrade check

* Clear up the mess after following dodgy documentation

* Placeholder for upgrade and try-runtime. It's coming!

* fmt!

* fix node build

* address pr comments

* add runtime upgrade executor

* remove unused upgrade path for environment pallet

* post upgrade should check new version

* fix tests based on the first epoch index being 1

* Set a behaviour

* Merge branch 'develop' into merge/runtime-v106

* Fix hang when redeeming claim (#1010)

* Remove old duplicate AccountId type

* Format lists of Account Ids nicely

* New Secrets for Tests

* Use success_threshold_from_share_count

* CFE custom log level format (#1062)

* check eth node's chain id is the same as that on the SC (#1117)

* Don't use pretty printing for peer mapping

* cargo fmt --all

* Add checked_mul and checked_add

* Fix not sending signing ceremony outcome when it expires without key

* assert share_count isnt zero

* Fix/cfe handle runtime upgrade (#1108)

* double the frequency of sending heartbeats (#1121)

* more log info on badproof error (#1123)

* cleanup genesis_keys

* centralise constants in the CFE (#1124)

* assert that response is for the expected ceremony id (#1128)

* review

* Feature/SC-2682 CFE tracking ceremony id (#944)

* Ceremony id tracking

* rename KeyDB to MultisigDB

* Fixed used ceremony id unit tests

* Simplify ceremony id tracking

* Signing and keygen track ids separatly

* fmt

* more unit tests

* clippy fixes

* fixed db colum

* Refactor ceremony id tracker

* Fixes from PR

* unit tests cleanup

* Fix unit tests after merge develop

* disabled writing ceremony tracking data to disk

* fix from merge develop

* support specify ceremony id to fix genisis test

* removing unused code

* Undo rename of KeyDB

* Removed changes to KeyDB

* send MultisigOutcome when ceremony is ignored

* Fixes from PR

* use remove_x_ceremony in cleanup

* Disable reporting of unauthorised ceremonies

* refactor csv reader

* cleanup genesis_keys

* Wrap web3 client in trait, to allow for unit testing SC Observer (#1130)

* More restrictive read_clean_and_decode_hex_str_file

* Add tests of read_clean_and_decode_hex_str_file

* Stronger Guarantee of File Deletion

* Fix Merge

* gh template titles (#1142)

* output zero to share_count == 0

* fix potential no heartbeat bug (#1143)

* More RpcError Info

* Check for duplicate node names

* Ceremony parties vote on who timed out

* Remove expiry for claim when claimed

* Test that we remove expiries on claims once claimed

* Cleanup duplicate node name and id detection

* Add comment

* Remove KeygenStateRunner

* Batch P2P Messages

* format function parameters

* better error messages on settings misconfig (#1151)

* add keys type

* fix: Dockerfile.rust-poetry to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-DEBIAN11-GLIBC-1296898
- https://snyk.io/vuln/SNYK-DEBIAN11-GLIBC-1296898
- https://snyk.io/vuln/SNYK-DEBIAN11-GLIBC-1296898
- https://snyk.io/vuln/SNYK-DEBIAN11-GLIBC-1296898
- https://snyk.io/vuln/SNYK-DEBIAN11-PYTHON39-1290158

* Cargo audit as non blocking step (#1159)

* Log ceremony id everywhere (#1165)

* remove unused into

* Small signing/keygen test refactors (#1157)

* name SigningCeremonyIdCounter, for consistency with keygen (#1168)

* an enforced minimum stake for the system

* fix import

* obey clippy (#1172)

* Cargo audit succeeds but posts result to issue (#1179)

* Audit script

* Fix audit script

* Reinstall audit

* Use file instead of var

* Missing s

* Add table

* Run only on main branches

* Small upgrade and test

* Run only on main branches

* Remove constants from eth.rs, they are on chain as per #520 (#1183)

* Chore/remove todos (#1184)

* Fix signer selection test and add new test

* fmt

* Don't start healthcheck endpoint if setting does not exist

* Unwrap on error in TryRuntime::on_runtime_upgrade (#1194)

* Use if let instead of match

* Update engine/src/settings.rs

Co-authored-by: kylezs <[email protected]>

* Seedable Ceremonies

* Fix Broadcast to Self

* MultisigClient Doesn't Require Cloning in Tests

* Remove Clone derive

* Remove Remaining Unused Clone Derives

* Remove Stale Comment

* Reorganise impl requirements

* Rename Outcome to Output for consistency

* Remove Unused Functions

* gather_outgoing_messages is private

* Simplify yield_ceremony

* into_generic_stage_data is private

* Remove signing from run_keygen_with_high_key_failure

* Add comment to split_messages_for

* Remove old comment

* Rename try_complete or try_complete_else_run_stage

* Remove get_stage_for_keygen_ceremony and get_stage_for_signing_ceremony

* Remove distribute_messages from complete functions

* Make ceremony rerunning more explicit

* Use cloned()

* factor out client

* Add back check_signing_db test, with refactor

* assert no progress after delaying comm1 instead of before

* Use inconsistent local sig

* add comments should delay stage data

* ceremony_data to ceremony_runner_data

* expire stage before making request

* better param names for for_each_stage

* use new_signing_with_keygen where possible

* signing_info method on SigningCeremonyRunner

* WIP comments

* WIP comments

* WIP comments and cleanup

* better use of signing_info method

* Finish re-adding comments to signing tests

* move timeout test comments before test

* less confusing note

* sc_observer doesn't wait for ceremony to end

* Update runtime constants to match soundcheck.

* Bump engine version number

* Turns out I needed to commit the lockfile too

* Add storage migration for signature ceremony rename.

* Bump runtime impl_version 108->109

* Storage migration for peer mappings.

* Fix/account id migration (#1260)

* account id migration

* Unmask the ghost of the newline

Co-authored-by: Tom Nash <[email protected]>

* Use default port and IP for peer mapping migration.

* 'Fix' runtime version 109 peer mapping type differences (#1261)

* Avert your eyes, the manager is coding

* Remove verbose key db logs, and don't panic if we can't submit peer mapping

* s/impl_version/spec_version

* use public ip crate for pub ip (#1267)

* use public ip crate for pub ip

* try v4 too

Co-authored-by: kylezs <[email protected]>

* Reduce max stage duration (#1269)

* bump node and lock (#1272)

Co-authored-by: Alastair Holmes <[email protected]>
Co-authored-by: Jamie Ford <[email protected]>
Co-authored-by: Jan Börner <[email protected]>
Co-authored-by: Andy Bell <[email protected]>
Co-authored-by: Alastair Holmes <[email protected]>
Co-authored-by: Andy Bell <[email protected]>
Co-authored-by: kylezs <[email protected]>
Co-authored-by: Tom Nash <[email protected]>
Co-authored-by: Maxim Shishmarev <[email protected]>
Co-authored-by: kylezs <[email protected]>
Co-authored-by: snyk-bot <[email protected]>
Co-authored-by: tomjohnburton <[email protected]>

Soundcheck v0.1.1 - Dec 15 2021

04 Feb 09:44
34994e8
Compare
Choose a tag to compare
Merge pull request #1154 from chainflip-io/fix/types-for-set-keys

type keys for decode for cf_validator::set_keys