Releases: input-output-hk/partner-chains
Partner Chains v1.7.0
This release brings two major additions: support for multiple authorities governance and governed map, several bug-fixes and a lot of changes in toolkit to make it more flexible.
Added MultiSig Governance support in the user interface
Now, Governance mechanism uses Cardano ALeastN Native Script, instead of custom policy implemented as Plutus Script in partner-chains-smart-contracts. This policy doesn't require to set required_signers
field in the transaction making it more user friendly - set of signers doesn't need to be known upfront.
governance init
and governance update
now accept multiple key hashes for the -g
/--governance-authority
parameter. These commands now also require -t
/threshold
parameter to set the number of required signatures.
All the smart-contracts
sub-commands that require Governance: governance update
, upsert-d-parameter
, upsert-permissioned-candidates
, reserve init
, reserve create
, reserve deposit
, and reserve handover
will now submit the transaction only if governance is "1 of 1". Otherwise these commands return a transaction CBOR that can be submitted with the new command assemble-and-submit-tx
. Signatures can be obtained using sign-tx
.
wizards prepare-configuration
is adjusted to set initial governance authorities different to just a single key. wizards setup-main-chain-state
is adjusted to print out transactions to sign if multiple governance authorities are used, in such a case it is unable to submit transaction, because of missing signatures.
See governance manual for instructions.
Governed Map
Governed Map feature is an implementation of key-value store on Cardano that can be update only by the PC governance. On the toolkit side, there is a DB-Sync follower implementation that can track changes to the related Cardano state, and a Pallet that reflects Cardano changes in the Partner Chain ledger.
smart-contracts governed-map --help
provides required information for Cardano side operations.
For the pallet documentation, please see readme
wizards create-chain-spec
is adjusted to set governedMap.MainChainScripts
in the chain-spec file.
Fixes
- [BREAKING CHANGE]: Updated partner-chains-smart-contracts (raw-scripts) dependency to v7.2.2. This changes Version Oracle Validator script and is not compatible with the previous versions.
smart-contracts
andwizards
will use different addresses, new Partner Chains have to be initialized. New registrations are requried. smart-contracts governance init
could fail when genesis utxo had a script attached, because the transaction fee could be calculated incorrectly.- [SECURITY FIX] Vulnerability of multiple crates, where a malicious block producing node could put multiple copies of the inherent in the block. This was because Substrate only checks whether an inherent is valid and doesn't ensure its uniqueness. This issue was fixed by including checks within the inherents themselves. Affected pallets that were patched are:
session-validator-management
,block-participation
,native-token-management
. wizards prepare-configuration
updates existingchain_parameters.genesis_utxo
field inpc-chain-config.json
, prior to this fix it was not updating field that was once set.
Other changes
smart-contracts
commands accept optional parameter to configure Ogmios requests timeout, increased default timeout from 2 mintues to 5 minutes.- Renamed environment variable
MAIN_CHAIN_FOLLOWER_MOCK_REGISTRATIONS_FILE
used by the mock data source has been changed toMOCK_REGISTRATIONS_FILE
to match.
Prometheus metricsmc_follower_method_time_elapsed
andmc_follower_method_call_count
were also renamed to
partner_chains_data_source_method_time_elapsed
andpartner_chains_data_source_method_call_count
respectively.
Cardano DB-Sync follower
- Automatically creates required index on
tx_out
tableaddress
column. Constructor signatures have changed - this change is not source compatible. This index was present in DB-Sync in the past, but recent versions do not include it anymore by default. This toolkit uses queries that querytx_out
table by output address, so the index is required for decent performance.
Wizards
- [BREAKING CHANGE]: Wizards are not generating keys nor looking for them in
<base_path>/chains/partner_chains_template
, but use<base_path>
instead. wizards setup-main-chain-state
wizard uses Ogmios andoffchain
crate for getting the current D-parameter and Permissioned Candidates instead of invoking<node-executable> ariadne-parameters
command. This change requires users that generated keystores and network key using previous versions of the wizards to move their keys two directories up.
Toolkit codebase
- [BREAKING CHANGE] Removed
block-rewards
pallet and its companion primitives crate. Block authorship information can be tracked using theblock-production-log
pallet instead. - Added
ariadne_v2
selection algorithm that selects committee respecting D-parameter and candidates weights, but has much less variance, thanks to assigning guaranteed seats to candidates with expected number of seats greater or equal 1. - Updated polkadot-sdk dependency to polkadot-stable2503-5.
- MC Hash inherent data provider will not propose older MC state than one already present in the ledger, this enables using BLOCK_STABILITY_MARGIN greater than 0.
partner-chains-db-sync-data-sources
andpartner-chains-mock-data-sources
crates now exports all its public members from the rootMcHashInherentDataProvider
now also exposes the Cardano block hash referenced by the previous block. It can be accessed throughprevious_mc_hash
function.NativeTokenManagementInherentDataProvider
now expects to be passed the previous main chain reference block hash on construction instead of retrieving it by itself. UseMcHashInherentDataProvider::previous_mc_hash
to provide it in your IDP stack.- Added implementation of
FindAccountFromAuthorIndex
trait forpallet_partner_chains_session
. - Renamed
sidechain-runtime
topartner-chains-demo-runtime
,sidechain-node
topartner-chains-demo-node
, and moved both todemo/
directory.
Renameddb-sync-follower
topartner-chains-db-sync-data-sources
,main-chain-follower-mock
topartner-chains-mock-data-sources
. - Introduced customization of root origin for few pallets via
MainChainScriptsOrigin
trait. - Added
pallet-block-producer-fees
- with settings for the rewards payout logic. - Added
sign-block-producer-metadata
command tocli-commands
for signing block producer metadata upsert message. - Removed crate
pallet-session-runtime-stub
which provided stub config for Substrate'spallet-session
when usingpallet-partner-chains-session
. Its functionality was merged intopallet-partner-chains-session
under the featurepallet-session-compat
. - Removed crate
session-manager
. Its functionality was merged intopallet-session-validator-management
under the featurepallet-session-compat
. - Removed
TryFrom<&serde_json::Value> for Datum
andFrom<&Datum> for serde_json::Value
instances fromplutus
. - Removed
ATMSPlainAggregatePubKey
,ValidatorHash
andSidechainPublicKeysSorted
types fromdomain
. - Removed
SidechainApi
trait fromsp-sidechain
and its return typeSidechainStatus
. Code that uses it should directly use the APIs that were grouped into this trait or ideally define its own runtime API instead (see deprecation ofGetSidechainStatus
). - Added
db-sync-sqlx
crate containing Rust types representing Cardano primitives present in postgres tables populated by Db-Sync.
Compatibility matrix
polkadot-sdk | cardano-node | cardano-db-sync | ogmios |
---|---|---|---|
stable2503-5 | 10.4.1 | 13.6.0.4 | 6.12.0 |
Full Changelog: v1.6.1...v1.7.0
Partner Chains Node v1.6.1
Changed
- Default
smart-contracts
timeout from 2 minutes to 5 minutes
Fixed
governance init
when genesis utxo had a script attached, then transaction fee was sometimes calculated incorrectly
Removed
- Removed unnecessary default dependencies from multiple crates
Compatibility matrix
partner-chains-node | polkadot-sdk | cardano-node | cardano-db-sync | ogmios |
---|---|---|---|---|
1.6.1 | stable2412-1 | 10.1.4 | 13.6.0.4 | 6.11.0 |
Docker image
The docker image for of our test/demo partner-chain-node is available in GHCR:
docker pull ghcr.io/input-output-hk/partner-chains/partner-chains-node:v1.6.1
Full Changelog: v1.6.0...v1.6.1
Partner Chains Node v1.5.1
Known issues
governance init
may fail when genesis utxo has a script attached (fixed in v1.6.1)
Changed
- Default
smart-contracts
timeout from 2 minutes to 5 minutes
Fixed
- Failure of
smart-contracts reserve release
command when releasing all tokens in the reserve - Failure of
smart-contracts reserve handover
command when reserve is empty
Removed
- Removed unnecessary default dependencies from multiple crates
Compatibility matrix
partner-chains-node | polkadot-sdk | cardano-node | cardano-db-sync | ogmios |
---|---|---|---|---|
1.5.1 | stable2409-4 | 10.1.4 | 13.6.0.4 | 6.11.0 |
Docker image
The docker image for of our test/demo partner-chain-node is available in GHCR:
docker pull ghcr.io/input-output-hk/partner-chains/partner-chains-node:v1.5.1
Full Changelog: v1.5.0...v1.5.1
Partner Chains Node v1.6.0
Changed
- Split MainchainPublicKey to StakePoolPublicKey and StakePublicKey. Some parameters names have been changed as well, which can break compilation of downstream projects.
- Updated
polkadot-sdk
topolkadot-stable2412-1
: WARNING: Benchmarking command has been removed, because frame-benchmarking-cli crate became GPLv3 without any exception. - Made Cardano slot duration configurable with default of 1000ms. If your partner chain's main chain is Cardano mainnet or one of the official testnets, you don't need to change anything. Otherwise, the duration can be set through
MC__SLOT_DURATION_MILLIS
environment variable. - Committee member data stored by the Session Validator Management Pallet is now fully generic. To migrate to this version, define your own CommitteeMember type and implement the trait CommitteeMember for it and schedule a storage migration. See the CommitteeMember type implemented in node/runtime/src/lib.rs for reference using Ariadne. This is a critical breaking change. Please consult toolkit/pallets/session-validator-management/src/migrations/README.md before attempting upgrade.
- Merged functionality of
NativeTokenManagementInherentDataProvider::new_if_pallet_present
intoNativeTokenManagementInherentDataProvider::new
. Use this single constructor from now on. - smart-contracts reserve deposit command parameter token has been removed, because it was redundant.
Fixed
- Failure of smart-contracts reserve release command when releasing all tokens in the reserve
- Failure of smart-contracts reserve handover command when reserve is empty
Added
block-production-log
pallet, see toolkit/pallets/block-participation for more details.- Block participation pallet and inherent data provider, making available data on block producers and their delegators. This feature is meant to be used by Partner Chains developers to implement block production reward payouts in their own runtimes. See toolkit/primitives/block-participation/README.md for more information.
Compatibility matrix
partner-chains-node | polkadot-sdk | cardano-node | cardano-db-sync | ogmios |
---|---|---|---|---|
1.6.0 | stable2412-1 | 10.1.4 | 13.6.0.4 | 6.11.0 |
Docker image
The docker image for of our test/demo partner-chain-node is available in GHCR:
docker pull ghcr.io/input-output-hk/partner-chains/partner-chains-node:v1.6.0
Full Changelog: v1.5.0...v1.6.0
Partner Chains Node v1.5.0
Known issues
smart-contracts reserve release
command fails when releasing all tokens in the reserve (fixed in v1.6.0)smart-contracts reserve handover
command fails when reserve is empty (fixed in v1.6.0)
Changed
partner-chains-cli
application is replaced by wizards
node command
- The
partner-chains-cli
tool has been replaced bywizards
subcommand frompartner-chains-node-commands
crate. - Configuration files names has been changed to pc-chain-config.json and pc-resources-config.json.
Please rename your existing configuration files accordingly.
pc-contracts-cli
application is no longer used
- Because the transactions building and submission (so-called offchain code) has been implemented in Rust, the
pc-contracts-cli
tool is no longer used by wizards. - kupo is no longer required by Partner Chains, because the Rust implementation requires only Ogmios. Its usage has been cleaned up in this repository.
- Combined with the fact that
partner-chains-cli
tool is replaced bywizards
subcommand, the only required executable is the node itself.
Other changes
- polkadot depenedency has been updated from
polkadot-stable-2409
topolkadot-stable-2409-4
. node/runtime
custom weighs has been replaced with ones from polkadot crates.
Added
Partner Chains Smart Contracts transactions building and sumbission is implemented in a partner-chains-cardano-offchain
crate
The code to interact with Partner Chains Smart Contracts (so-called offchain code) has been implemented in Rust.
- Command
smart-contracts
has been added inpartner-chains-smart-contracts-commands
crate. smart-contracts
command is integrated intopartner-chains-node-commands
crate.
Please run<node executable> smart-contracts --help
for listing of available commands of your node.
There are cosmetic changes it the commands names and required parameters.smart-contracts
command has replacedpc-contracts-cli
application.
Extended keys support
<node executable> wizards
and <node executable> smart-contracts
now supports extended payment keys: PaymentExtendedSigningKeyShelley_ed25519_bip32
and PaymentExtendedVerificationKeyShelley_ed25519_bip32
.
Compatibility matrix
partner-chains-node | cardano-node | cardano-db-sync | ogmios |
---|---|---|---|
1.5.0 | 10.1.4 | 13.6.0.4 | 6.11.0 |
Docker image
The docker image for of our test/demo partner-chain-node is available in GHCR:
docker pull ghcr.io/input-output-hk/partner-chains/partner-chains-node:v1.5.0
Full Changelog: v1.4.0...v1.5.0
Partner Chains Node v1.4.0
Important: Chains running earlier versions should follow the 1.4.0 migration guide
Changed
genesis_utxo
andregistration_utxo
no longer have to have no native tokens.- Update ogmios to v6.11.0
- Organized Rust sources into two directories: toolkit and node.
- Implemented transaction balancing with CSL in offchain code.
- Update offchain code dependencies: pallas, ulpc and cardano-serialization-lib.
- Updated to partner-chains-smart-contracts v7.0.2
-
- chain-params crate that provided SidechainParam is removed, because there are no SidechainParams anymore
-
- partner-chains-cli is changed, so prepare-config wizard sets
genesis_utxo
and does not set sidechain parameters
- partner-chains-cli is changed, so prepare-config wizard sets
-
- pallets are not generic on SidechainParams anymore, they use UtxoId (genesis_utxo) instead
-
- migration of pallet_sidechain storage is not present in this update, it has to be done before v1.4, so as for now it is a very breaking change
Fixed
- CardanoNetwork bug in
partner-chains-cli
, that would cause the CLI to fail with the mainnet.
Added
- Added
smart-contracts
command to the node with first commandinit-governance
.
Compatibility matrix
partner-chains-node | partner-chains-smart-contracts | cardano-node | cardano-db-sync | kupo | ogmios |
---|---|---|---|---|---|
1.4.0 | 7.0.2 | 10.1.4 | 13.6.0.4 | 2.10.0 | 6.11.0 |
Binaries
PC smart contracts CLI can be downloaded from here.
Docker
You can also pull the Docker image of the partner-chains-node
from GitHub Container Registry:
docker pull ghcr.io/input-output-hk/partner-chains/partner-chains-node:v1.4.0
How to Use
Refer to the documentation for detailed instructions on using the node and CLI tools.
Support
You can visit our issues page for support, feature requests, or to report a bug.
Partner Chains Node v1.3.1
Critical: Runtime Migration Guide for v1.3.1
Features
This patch version extends the Sidechain pallet with a new extrinsic sidechain/upgrade_and_set_addresses
which allows the on-chain governance to atomically upgrade the runtime and set the genesis utxo and new main chain scripts to observe.
-
Update Partner Chains SDK dependencies in your
Cargo.toml
tov1.3.1
-
Add the following configuration to your runtime configuration:
impl pallet_sidechain::Config for Runtime { // ... other parameters type MainChainScripts = sp_session_validator_management::MainChainScripts; fn set_main_chain_scripts(scripts: Self::MainChainScripts) { pallet_session_validator_management::MainChainScriptsConfiguration::<Runtime>::set(scripts); } }
This will allow the
upgrade_and_set_addresses
extrinsic to update configuration of the SessionValidatorManagement
pallet together with the Runtime code. -
Increment the
spec_version
in your runtime configuration. -
Build the new Runtime WASM (you can do it by running
cargo build --release
) -
Upgrade the runtime of the chain using the newly built WASM (it can be found in
$CARGO_TARGET_DIR/release/wbuild/<runtime name>/<runtime name>.compressed.wasm
) and the
extrinsicsystem/setCode
.
After these steps the chain should be running the runtime using Partner Chains SDK v1.3.1. This version is fully backwards-compatible and is a preparatory step towards v1.4.0
Bug fixes
Native-token queries cache was failing - giving wrong results - when native token scripts addresses were being updated. This has been fixed.
Compatibility matrix
partner-chains-node | partner-chains-smart-contracts | cardano-node | cardano-db-sync | kupo | ogmios |
---|---|---|---|---|---|
1.3.1 | 6.2.2 | 10.1.2 | 13.5.0.2 | 2.9.0 | 6.8.0 |
Full Changelog: v1.3.0...v1.3.1
Partner Chains Node 1.3.0
Changed
- Added 'deregister' command to partner-chains-cli.
- Made
MainChainScripts
in the native token pallet optional. If they are not set, the inherent data
provider will not query the main chain state or produce inherent data at all. - ETCM-8366 - native token management pallet can now observe historical transfers when added after the genesis block
- Updated to polkadot-stable2409 (aka v1.16.0).
- Requires some downstream changes in the node code.
- See diff of the commit that adds this changelog line for hints.
- Specific changes will depend on the node implementation.
- Update toolchain to 1.81.0
- Implemented batch queries and caching for the native token observability. Improves performance of the full-sync.
- Added ogmios-client interal library for communication with Ogmios
- Using Ogmios for reading Cardano Network parameters in
partner-chains-cli
, instead of asking user to choose them - Bugfix: rephrased vague log message when selecting the epoch committee
- Removed the
main-chain-follower-api
completely. Each crate that depended on it now defines its own*DataSource
trait, implemented by separate types indb-sync-follower
andmain-chain-follower-mock
crates. For reference
on how to create these new data sources seenode/src/main_chain_follower.rs
file. - Added
pallet-session
integration forpallet-session-validator-management
. Not wired in the node. partner-chains-cli
does not usecardano-cli
to derive address not to query utxos.partner-chains-cli
does not usepc-contracts-cli
inprepare-configuration
wizard, it usespartner-chains-cardano-offchain
crate instead.- Update cardano-node to 10.1.2
Added
- Added
new_if_pallet_present
factory for the native token inherent data provider,
allowing to selectively query main chain state based on runtime version - Added Largest-First coin selection algorithm.
Compatibility matrix
partner-chains-node | partner-chains-smart-contracts | cardano-node | cardano-db-sync | kupo | ogmios |
---|---|---|---|---|---|
1.3.0 | 6.2.2 | 10.1.2 | 13.5.0.2 | 2.9.0 | 6.8.0 |
Binaries
You can download the archives that contain both partner-chains-node
and partner-chains-cli
from assets attached to this release (available for MacOS and Linux architectures). PC smart contracts CLI can be downloaded from here.
Docker
You can also pull the Docker image of the partner-chains-node
from GitHub Container Registry:
docker pull ghcr.io/input-output-hk/partner-chains/partner-chains-node:v1.3.0
How to Use
Refer to the documentation for detailed instructions on using the node and CLI tools.
Support
You can visit our issues page for support, feature requests, or to report a bug.
Partner Chains Node v1.2.0
Notes
Code migration guide for partner-chains v1.1.0 to v1.2.0
Code migration guide for partner-chains v1.1.0 to v1.2.0
partner-chains-node-commands
Code supporting generate-signatures
, get-ariadne-parameters
and get-registration-status
commands has been moved from the reference node to library crates of partner-chains
.
Moving this code to library crates will make it less code to update in the future.
Any node has to recognize these commands in order to be a valid partner chain node.
-
Add
partner-chains-node-commands
crate to your dependencies in Cargo.toml. -
Modify
Subcommand
enum (in reference implementation it is in cli.rs file):
#[derive(Debug, clap::Subcommand)]
pub enum Subcommand {
// ... other subcommands
#[clap(flatten)]
PartnerChains(PartnerChainsSubcommand<YourSidechainParams>),
// ... other subcommands
}
, where YourSidechainParams
is the struct that holds the parameters of your partner chains. Reference implementation uses chain_params::SidechainParams
struct.
- Wire all the partner chains commands in the
run
function of your node. For example:
pub fn run() -> sc_cli::Result<()> {
let cli = Cli::from_args();
match &cli.subcommand {
// ... other commmands
Some(Subcommand::PartnerChains(cmd)) => {
let make_dependencies = |config| {
let components = service::new_partial(&config)?;
Ok((components.client, components.task_manager, components.other.3.candidate))
};
partner_chains_node_commands::run(&cli, make_dependencies, cmd.clone())
},
/// ... other commands
- Cleanup cli.rs and mod.rs files in case you node had copy-paste implementation of these commands.
polkadot-sdk
partner-chains toolkit has migrated from custom fork of polkadot-sdk to paritytech fork of polkadot-sdk.
This changes the structure of crates used by partner-chains toolkit.
Please update your dependencies to reflect this change and depend only on the paritytech fork.
Replace git = "https://github.com/input-output-hk/polkadot-sdk.git", tag = "partnerchains-stable2407"
with "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2407-2"
in your cargo files.
sc-partner-chains-consensus-aura
input-output-hk fork of polkadot used modified sc-consensus-aura
crate to inject slot in inherent data providers and to have access to inherent digest (Cardano stable block hash).
These modifications are moved to partner-chains crate sc-partner-chains-consensus-aura
that depends on unmodified sc-consensus-aura
crate from paritytech/polkadot-sdk.
Add sc-partner-chains-consensus-aura
to your dependencies in Cargo.toml
.
Code changes related wiring this change are (service.rs file in reference node implementation):
-
Replace
use sp_partner_chains_consensus_aura::CurrentSlotProvider;
withuse sc_consensus_aura::CurrentSlotProvider;
. -
Replace
sc_consensus_aura::import_queue
withsc_partner_chains_consensus_aura::import_queue
. -
Replace
sc_consensus_aura::start_aura
withsc_partner_chains_consensus_aura::start_aura
. -
Use custom
BlockProposerFactory
fromsc-partner-chains-consensus-aura
crate:
let basic_authorship_proposer_factory = sc_basic_authorship::ProposerFactory::new(
task_manager.spawn_handle(),
client.clone(),
transaction_pool.clone(),
prometheus_registry.as_ref(),
telemetry.as_ref().map(|x| x.handle()),
);
let proposer_factory: PartnerChainsProposerFactory<_, _, McHashInherentDigest> =
PartnerChainsProposerFactory::new(basic_authorship_proposer_factory);
pallet-partner-chains-session
This pallet was moved from polkadot-sdk to partner-chains, please update your cargo files.
Also add pallet-session-runtime-stub
from partner-chains to your runtime dependencies.
Add pallet-session
from polkadot-sdk as well to runtime and node dependencies.
runtime code
It is required to add pallet-session
Runtime
configuration to your construct_runtime!
macro.
What is more, currently it has to be stubbed implementation, because of how pallet-partner-chains-session
is implemented and wired in.
To obtain this stub implementation use:
pallet_session_runtime_stub::impl_pallet_session_config!(Runtime);
Then add: PolkadotSession:pallet_session
in the construct_runtime!
macro.
Increase the spec_version
, so it will be possible to upgrade the runtime.
sc-cli
Runner
has been reverted to pairtytech version, this requires changes in the node code,
because the vanilla polkadot-sdk version doesn't support async in a way our custom code did.
Required change is in service.rs file, where the main chain follower has to be created in a blocking way:
let data_sources = task::block_in_place(|| {
config.tokio_handle.block_on(
crate::main_chain_follower::create_cached_main_chain_follower_data_sources(
mc_follower_metrics.clone(),
),
)
})?;
pub fn new_partial
is not async anymore, please follow the change in your implementation.
Please remove async move
and .await
in the run
function of your node in places where compiler complains.
For example replace:
Some(Subcommand::CheckBlock(cmd)) => {
let runner = cli.create_runner(cmd)?;
runner.async_run(|config| async move {
let PartialComponents { client, task_manager, import_queue, .. } =
service::new_partial(&config).await?;
Ok((cmd.run(client, import_queue), task_manager))
})
},
with:
Some(Subcommand::CheckBlock(cmd)) => {
let runner = cli.create_runner(cmd)?;
runner.async_run(|config| {
let PartialComponents { client, task_manager, import_queue, .. } =
service::new_partial(&config)?;
Ok((cmd.run(client, import_queue), task_manager))
})
},
chain-init feature
Code that was present in node
crate related to USE_CHAIN_INIT
feature has been removed.
The only supported way to obtain the chain-spec is through partner-chains-cli.
Please cleanup your node if it contained copy-pasted code for it.
Observation of native token illiquid supply address
This feature is not complete, please do not follow changes in partner-chains reference runtime and node.
Please do not wire it in your node code nor use the "native-token" feature in the main chain follower.
Changed
- Switched to paritytech/polkadot-sdk polkadot-stable2407-2. No migration is required because of this change.
- Reverted usage of custom Runner that allowed
async_run
with asynchronous initializer.
NowRunner
code used is the same as in paritytech/polkadot-sdk.
This change requires updates in node:new_partial
cannot be async.
Run command dispatch looks more like in paritytech/polkadot-sdk. - bugfix for Mainnet compatibility in the db-sync main-chain follower. Fixes null block_no column decoding problem.
- moved out some cli related code from
node
crate, in order to require less copy-paste in users nodes - moved
pallet-partner-chains-session
from polkadot-sdk fork to this repository. Node uses vanilla grandpa and aura consensus now. No migration is needed. - moved
sc-consensus-aura
from input-output-hk/polkadot-sdk fork to this repository,
tosc-partner-chains-consensus-aura
andsp-partner-chains-consensus-aura
.
This change requires migration of the node, PartnerChainsProposerFactory has to be used.
Seeservice.rs
inpartner-chains-node
crate for an example. - renamed sidechain-main-cli and relevant naming to pc-contracts-cli
Removed
- removed USE_CHAIN_INIT code. Migration strategy is to remove copy-pasted and adapted code. It will not compile with vanilla polkadot-sdk, that we plan to use in future.
Fixed
- ETCM-8267 - fixed
partner-chains-cli
missing the native token configuration
Added
- ETCM-7811 - native token movement observability components:
sp-native-token-management
and
pallet-native-token-management
crates; data sources behind thenative-token
feature in
main-chain-follower-api
anddb-sync-follower
crates. - added helper functions to
SidechainParams
and allMainChainScripts
types to read them from environment - Extrinsic
set_main_chain_scripts
for migrating to new committee selection main chain scripts
Compatibility matrix
partner-chains-node | partner-chains-smart-contracts | cardano-node | cardano-db-sync | kupo | ogmios |
---|---|---|---|---|---|
1.2.0 | 6.1.0 | 9.1.1 | 13.5.0.2 | 2.9.0 | 6.6.0 |
Binaries
You can download the archives that contain both partner-chains-node
and partner-chains-cli
from assets attached to this release (available for MacOS and Linux architectures). PC smart contracts CLI can be downloaded from here.
Docker
You can also pull the Docker image of the partner-chains-node
from GitHub Container Registry:
docker pull ghcr.io/input-output-hk/partner-chains/partner-chains-node:v1.2.0
How to Use
Refer to the documentation for detailed instructions on using the node and CLI tools.
Support
You can visit our issues page for support, feature requests, or to report a bug.
Thank you for being a part of our community!
Partner Chains Node v1.1.0
Partner Chains Node 1.1.0 includes all the features compatible with Chang hard fork at Cardano Node 9.1.0.
Notes
- This release includes a change that requires a chain reset. Future releases will include instructions on how to upgrade the chain without reset
Changed
- polkadot-sdk dependency updated to partnerchains-stable2407 (stable2407 is v1.15.0 in the previous scheme)
- changed the inner type of
McBlockHash
from Vec to an array - bumped
partner-chains-smart-contracts
version and updated thepartner-chains-cli
to match. Nowpartner-chains-cli
passes a network parameter tosidechain-main-cli
where necessary. - governance authority key hash is now calculated in
prepare-configuration
without using externalcardano-cli
Removed
- removed Relay docker build files
- removed usage of 'storage::getter' macros, following polkadot-sdk changes
Compatibility matrix
partner-chains-node | partner-chains-smart-contracts | cardano-node | cardano-db-sync | kupo | ogmios |
---|---|---|---|---|---|
v1.1.0 | 6.1.0 | 9.1.0 | 13.3.0.0 | 2.9.0 | 6.5.0 |
Binaries
You can download the archives that contain both partner-chains-node
and partner-chains-cli
together with compatible smart contracts CLI from assets attached to this release (available for MacOS and Linux architectures)
Docker
You can also pull the Docker image of the partner-chains-node
from GitHub Container Registry:
docker pull ghcr.io/input-output-hk/partner-chains/partner-chains-node:v1.1.0
How to Use
Refer to the documentation for detailed instructions on using the node and CLI tools.
Support
You can visit our issues page for support, feature requests, or to report a bug.
Thank you for being a part of our community!