Skip to content

Commit

Permalink
Altair Runtime Upgrade 5 + Polkadot upgrade to v0.9.16 (#611)
Browse files Browse the repository at this point in the history
* add devops section to prep env script

* wip upgrade to v0.9.15

* wip upgrade v0.9.16 - runtimes compile

* add scheduler migration

* fix chainspec + latest docker polkadot

* node compiles + spec changes + node versioning

* global node version

* use orml master to check build

* change versioning

* fix tests

* commens

* remove no-beefy, disabled by default

* change runtime order

* use altair-local runtime in init script

* rename antares/charcoal dev to local

* updates to v0.9.16

* fix docker compose
  • Loading branch information
mikiquantum authored Feb 8, 2022
1 parent 0e503ba commit 0efdc9e
Show file tree
Hide file tree
Showing 74 changed files with 2,385 additions and 1,652 deletions.
1,958 changes: 1,155 additions & 803 deletions Cargo.lock

Large diffs are not rendered by default.

138 changes: 70 additions & 68 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "centrifuge-chain"
version = "2.0.0"
version = "0.10.9"
authors = ["Centrifuge <admin@centrifuge.io>"]
description = "Centrifuge chain implementation in Rust."
build = "build.rs"
Expand Down Expand Up @@ -65,98 +65,100 @@ structopt = { version = "0.3.8" , optional = true }
serde_json = "1.0"

# primitives
sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
grandpa-primitives = { package = "sp-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-runtime-interface = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
sp-keystore = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
grandpa-primitives = { package = "sp-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-runtime-interface = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }
sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }
sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }
sp-keystore = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }

# client dependencies
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
grandpa = { package = "sc-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-client-db = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-service = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-consensus-babe-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-sync-state-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
grandpa = { package = "sc-finality-grandpa", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-client-db = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-service = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-consensus-babe-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sc-sync-state-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }

# Cli specific
frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
node-inspect = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
node-inspect = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }

# frame dependencies
pallet-anchors = { path = "./pallets/anchors", default-features = false }
pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
pallet-im-online = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
pallet-im-online = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }

# Cumulus dependencies
cumulus-client-network = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.12" }
cumulus-client-consensus-relay-chain = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.12" }
cumulus-primitives-core = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.12" }
cumulus-client-service = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.12" }
cumulus-client-consensus-aura = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.12" }
cumulus-client-consensus-common = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.12" }
cumulus-primitives-parachain-inherent = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.12" }
cumulus-client-cli = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.12" }
cumulus-client-network = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" }
cumulus-client-consensus-relay-chain = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" }
cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" }
cumulus-relay-chain-local = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" }
cumulus-primitives-core = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" }
cumulus-client-service = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" }
cumulus-client-consensus-aura = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" }
cumulus-client-consensus-common = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" }
cumulus-primitives-parachain-inherent = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" }
cumulus-client-cli = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" }

# Polkadot dependencies
polkadot-parachain = {git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.12" }
polkadot-primitives = {git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.12" }
polkadot-service = {git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.12" }
polkadot-cli = {git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.12" }
polkadot-parachain = {git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" }
polkadot-primitives = {git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" }
polkadot-service = {git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" }
polkadot-cli = {git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" }

# node-specific dependencies
altair-runtime = { path = "runtime/altair" }
centrifuge-runtime = { path = "runtime/centrifuge" }
development-runtime = { path = "runtime/development" }
runtime-common = { path = "runtime/common" }
node-primitives = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
node-primitives = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }

# benchmarking
frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }

[build-dependencies]
vergen = "3.0.4"
substrate-build-script-utils = { optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
substrate-build-script-utils = { optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }

[dev-dependencies]
sc-service-test = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sc-service-test = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
tempfile = "3.1.0"
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" }
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }
pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" }

[features]
default = [ "std" ]
Expand Down
6 changes: 2 additions & 4 deletions docker-compose-local-relay.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: '3'
services:
node_alice:
container_name: alice
image: "parity/polkadot:v0.9.13"
image: "parity/polkadot:v0.9.16"
ports:
- "30333:30333"
- "9933:9933"
Expand All @@ -16,7 +16,6 @@ services:
--chain=/chainspec.json
--wasm-execution=compiled
--execution=wasm
--no-beefy
--base-path=/data
--port 30333
--rpc-port 9933
Expand All @@ -30,7 +29,7 @@ services:
node_bob:
container_name: bob
image: "parity/polkadot:v0.9.13"
image: "parity/polkadot:v0.9.16"
ports:
- "30344:30333"
- "9935:9933"
Expand All @@ -45,7 +44,6 @@ services:
--base-path=/data
--wasm-execution=compiled
--execution=wasm
--no-beefy
--port 30333
--rpc-port 9933
--ws-port 9944
Expand Down
6 changes: 3 additions & 3 deletions libs/common-traits/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ codec = { package = 'parity-scale-codec', version = '2.0.0', features = ['derive
scale-info = { version = "1.0", default-features = false, features = ["derive"] }
impl-trait-for-tuples = "0.2.1"

frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }

[features]
default = ['std']
Expand Down
1 change: 0 additions & 1 deletion libs/common-traits/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ use sp_std::vec::Vec;
pub trait Reward {
/// The account from the parachain, that the claimer provided in her/his transaction.
type ParachainAccountId: Debug
+ Default
+ MaybeSerialize
+ MaybeSerializeDeserialize
+ Member
Expand Down
8 changes: 4 additions & 4 deletions libs/common-types/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,16 @@ bitflags = "1.3"
serde = { version = "1.0.119" }

# substrate dependencies
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }
frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }


# local dependencies
common-traits = { path = '../common-traits', default-features = false }

[dev-dependencies]
frame-support = { git = "https://github.com/paritytech/substrate", default-features = true , branch = "polkadot-v0.9.12" }
frame-support = { git = "https://github.com/paritytech/substrate", default-features = true , branch = "polkadot-v0.9.16" }

[features]
default = ['std']
Expand Down
6 changes: 4 additions & 2 deletions libs/common-types/src/tokens.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#![cfg_attr(not(feature = "std"), no_std)]

use codec::{Decode, Encode};
use codec::{Decode, Encode, MaxEncodedLen};
use scale_info::TypeInfo;

use common_traits::TokenMetadata;
Expand All @@ -9,7 +9,9 @@ use serde::{Deserialize, Serialize};
use sp_runtime::format_runtime_string;
use sp_std::vec::Vec;

#[derive(Clone, Copy, PartialOrd, Ord, PartialEq, Eq, Debug, Encode, Decode, TypeInfo)]
#[derive(
Clone, Copy, PartialOrd, Ord, PartialEq, Eq, Debug, Encode, Decode, TypeInfo, MaxEncodedLen,
)]
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
pub enum CurrencyId {
Native,
Expand Down
4 changes: 2 additions & 2 deletions libs/proofs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ targets = ['x86_64-unknown-linux-gnu']
codec = { package = 'parity-scale-codec', version = '2.0.0', features = ['derive'] , default-features = false }
scale-info = { version = "1.0", default-features = false, features = ["derive"] }

sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }

[dev-dependencies]
sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.12" }
sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" }

[features]
default = ['std']
Expand Down
Loading

0 comments on commit 0efdc9e

Please sign in to comment.