mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 19:51:02 +00:00
2431001ec0
Fixes https://github.com/paritytech/polkadot-sdk/issues/3144 Builds on top of https://github.com/paritytech/polkadot-sdk/pull/3229 ### Summary Some preparations for Runtime to support elastic scaling, guarded by config node features bit `FeatureIndex::ElasticScalingMVP`. This PR introduces a per-candidate `CoreIndex` but does it in a hacky way to avoid changing `CandidateCommitments`, `CandidateReceipts` primitives and networking protocols. #### Including `CoreIndex` in `BackedCandidate` If the `ElasticScalingMVP` feature bit is enabled then `BackedCandidate::validator_indices` is extended by 8 bits. The value stored in these bits represents the assumed core index for the candidate. It is temporary solution which works by creating a mapping from `BackedCandidate` to `CoreIndex` by assuming the `CoreIndex` can be discovered by checking in which validator group the validator that signed the statement is. TODO: - [x] fix tests - [x] add new tests - [x] Bump runtime API for Kusama, so we have that node features thing! -> https://github.com/polkadot-fellows/runtimes/pull/194 --------- Signed-off-by: Andrei Sandu <andrei-mihail@parity.io> Signed-off-by: alindima <alin@parity.io> Co-authored-by: alindima <alin@parity.io>
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
async function run(nodeName, networkInfo, index) {
|
|
const { wsUri, userDefinedTypes } = networkInfo.nodesByName[nodeName];
|
|
const api = await zombie.connect(wsUri, userDefinedTypes);
|
|
|
|
await zombie.util.cryptoWaitReady();
|
|
|
|
// account to submit tx
|
|
const keyring = new zombie.Keyring({ type: "sr25519" });
|
|
const alice = keyring.addFromUri("//Alice");
|
|
|
|
await new Promise(async (resolve, reject) => {
|
|
const unsub = await api.tx.sudo
|
|
.sudo(api.tx.configuration.setNodeFeature(Number(index), true))
|
|
.signAndSend(alice, ({ status, isError }) => {
|
|
if (status.isInBlock) {
|
|
console.log(
|
|
`Transaction included at blockhash ${status.asInBlock}`,
|
|
);
|
|
} else if (status.isFinalized) {
|
|
console.log(
|
|
`Transaction finalized at blockHash ${status.asFinalized}`,
|
|
);
|
|
unsub();
|
|
return resolve();
|
|
} else if (isError) {
|
|
console.log(`Transaction error`);
|
|
reject(`Transaction error`);
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
module.exports = { run };
|