Skip to content

Releases: input-output-hk/partner-chains

Partner Chains v1.7.0

13 Jun 14:12
d07e45a
Compare
Choose a tag to compare

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 and wizards 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 existing chain_parameters.genesis_utxo field in pc-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 to MOCK_REGISTRATIONS_FILE to match.
    Prometheus metrics mc_follower_method_time_elapsed and mc_follower_method_call_count were also renamed to
    partner_chains_data_source_method_time_elapsed and partner_chains_data_source_method_call_count respectively.

Cardano DB-Sync follower

  • Automatically creates required index on tx_out table address 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 query tx_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 and offchain 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 the block-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 and partner-chains-mock-data-sources crates now exports all its public members from the root
  • McHashInherentDataProvider now also exposes the Cardano block hash referenced by the previous block. It can be accessed through previous_mc_hash function. NativeTokenManagementInherentDataProvider now expects to be passed the previous main chain reference block hash on construction instead of retrieving it by itself. Use McHashInherentDataProvider::previous_mc_hash to provide it in your IDP stack.
  • Added implementation of FindAccountFromAuthorIndex trait for pallet_partner_chains_session.
  • Renamed sidechain-runtime to partner-chains-demo-runtime, sidechain-node to partner-chains-demo-node, and moved both to demo/ directory.
    Renamed db-sync-follower to partner-chains-db-sync-data-sources, main-chain-follower-mock to partner-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 to cli-commands for signing block producer metadata upsert message.
  • Removed crate pallet-session-runtime-stub which provided stub config for Substrate's pallet-session when using pallet-partner-chains-session. Its functionality was merged into pallet-partner-chains-session under the feature pallet-session-compat.
  • Removed crate session-manager. Its functionality was merged into pallet-session-validator-management under the feature pallet-session-compat.
  • Removed TryFrom<&serde_json::Value> for Datum and From<&Datum> for serde_json::Value instances from plutus.
  • Removed ATMSPlainAggregatePubKey, ValidatorHash and SidechainPublicKeysSorted types from domain.
  • Removed SidechainApi trait from sp-sidechain and its return type SidechainStatus. 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 of GetSidechainStatus).
  • 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

24 Apr 13:17
5d6be8b
Compare
Choose a tag to compare

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

24 Apr 13:16
20e607f
Compare
Choose a tag to compare

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

18 Mar 15:05
2eb4a53
Compare
Choose a tag to compare

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 to polkadot-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 into NativeTokenManagementInherentDataProvider::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

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

18 Feb 09:25
1cd4d1e
Compare
Choose a tag to compare

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 by wizards subcommand from partner-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 by wizards subcommand, the only required executable is the node itself.

Other changes

  • polkadot depenedency has been updated from polkadot-stable-2409 to polkadot-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 in partner-chains-smart-contracts-commands crate.
  • smart-contracts command is integrated into partner-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 replaced pc-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

24 Jan 10:44
c5bf5c9
Compare
Choose a tag to compare

Important: Chains running earlier versions should follow the 1.4.0 migration guide

Changed

  • genesis_utxo and registration_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
    • 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 command init-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

08 Jan 13:06
12a4a4b
Compare
Choose a tag to compare

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.

  1. Update Partner Chains SDK dependencies in your Cargo.toml to v1.3.1

  2. 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.

  3. Increment the spec_version in your runtime configuration.

  4. Build the new Runtime WASM (you can do it by running cargo build --release)

  5. 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
    extrinsic system/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

14 Nov 22:16
1fc4cb2
Compare
Choose a tag to compare

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 in db-sync-follower and main-chain-follower-mock crates. For reference
    on how to create these new data sources see node/src/main_chain_follower.rs file.
  • Added pallet-session integration for pallet-session-validator-management. Not wired in the node.
  • partner-chains-cli does not use cardano-cli to derive address not to query utxos.
  • partner-chains-cli does not use pc-contracts-cli in prepare-configuration wizard, it uses partner-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

07 Oct 10:59
31b57d6
Compare
Choose a tag to compare

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.

  1. Add partner-chains-node-commands crate to your dependencies in Cargo.toml.

  2. 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.

  1. 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
  1. 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):

  1. Replace use sp_partner_chains_consensus_aura::CurrentSlotProvider; with use sc_consensus_aura::CurrentSlotProvider;.

  2. Replace sc_consensus_aura::import_queue with sc_partner_chains_consensus_aura::import_queue.

  3. Replace sc_consensus_aura::start_aura with sc_partner_chains_consensus_aura::start_aura.

  4. Use custom BlockProposerFactory from sc-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.
    Now Runner 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,
    to sc-partner-chains-consensus-aura and sp-partner-chains-consensus-aura.
    This change requires migration of the node, PartnerChainsProposerFactory has to be used.
    See service.rs in partner-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 the native-token feature in
    main-chain-follower-api and db-sync-follower crates.
  • added helper functions to SidechainParams and all MainChainScripts 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

20 Aug 14:46
v1.1.0
b991b7e
Compare
Choose a tag to compare

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 the partner-chains-cli
    to match. Now partner-chains-cli passes a network parameter to sidechain-main-cli where necessary.
  • governance authority key hash is now calculated in prepare-configuration without using external cardano-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!