From b0eba032172ee35a38cfed17358927106f37f27b Mon Sep 17 00:00:00 2001 From: Antoine Estienne Date: Wed, 10 Nov 2021 20:34:02 +0100 Subject: [PATCH] Map rpc port to collator and validators (#149) * Updates polkadot dependency * use rpc-port for collator * rpc port optional for para * lint * try no prettier config * run lint Co-authored-by: Crystalin --- package.json | 2 +- src/runner.ts | 24 ++++++++++++++++++------ src/spawn.ts | 12 +++++++++++- src/types.d.ts | 3 ++- 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 0fda939..4a1224f 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "prepare": "tsc", "build": "tsc", "start": "yarn build && node dist/cli.js", - "lint": "prettier --check .", + "lint": "prettier -v && prettier --check .", "lint:write": "prettier --write ." }, "dependencies": { diff --git a/src/runner.ts b/src/runner.ts index 310327b..dc71599 100644 --- a/src/runner.ts +++ b/src/runner.ts @@ -10,7 +10,7 @@ import { startSimpleCollator, getParachainIdFromSpec, } from "./spawn"; -import { connect, registerParachain, setBalance } from "./rpc"; +import { connect, setBalance } from "./rpc"; import { checkConfig } from "./check"; import { clearAuthorities, @@ -90,11 +90,22 @@ export async function run(config_dir: string, rawConfig: LaunchConfig) { // First we launch each of the validators for the relay chain. for (const node of config.relaychain.nodes) { - const { name, wsPort, port, flags, basePath } = node; - console.log(`Starting ${name}...`); + const { name, wsPort, rpcPort, port, flags, basePath } = node; + console.log( + `Starting Relaychain Node ${name}... wsPort: ${wsPort} rpcPort: ${rpcPort} port: ${port}` + ); // We spawn a `child_process` starting a node, and then wait until we // able to connect to it using PolkadotJS in order to know its running. - startNode(relay_chain_bin, name, wsPort, port, spec, flags, basePath); + startNode( + relay_chain_bin, + name, + wsPort, + rpcPort, + port, + spec, + flags, + basePath + ); } // Connect to the first relay chain node to submit the extrinsic. @@ -114,15 +125,16 @@ export async function run(config_dir: string, rawConfig: LaunchConfig) { let account = parachainAccount(resolvedId); for (const node of parachain.nodes) { - const { wsPort, port, flags, name, basePath } = node; + const { wsPort, port, flags, name, basePath, rpcPort } = node; console.log( - `Starting a Collator for parachain ${resolvedId}: ${account}, Collator port : ${port} wsPort : ${wsPort}` + `Starting a Collator for parachain ${resolvedId}: ${account}, Collator port : ${port} wsPort : ${wsPort} rpcPort : ${rpcPort}` ); const skipIdArg = !id; await startCollator( bin, resolvedId, wsPort, + rpcPort, port, name, chain, diff --git a/src/spawn.ts b/src/spawn.ts index 7201736..fa78030 100644 --- a/src/spawn.ts +++ b/src/spawn.ts @@ -98,6 +98,7 @@ export function startNode( bin: string, name: string, wsPort: number, + rpcPort: number | undefined, port: number, spec: string, flags?: string[], @@ -110,6 +111,9 @@ export function startNode( "--port=" + port, "--" + name.toLowerCase(), ]; + if (rpcPort) { + args.push("--rpc-port=" + rpcPort); + } if (basePath) { args.push("--base-path=" + basePath); @@ -181,6 +185,7 @@ export function startCollator( bin: string, id: string, wsPort: number, + rpcPort: number | undefined, port: number, name?: string, chain?: string, @@ -191,7 +196,12 @@ export function startCollator( ) { return new Promise(function (resolve) { // TODO: Make DB directory configurable rather than just `tmp` - let args = ["--ws-port=" + wsPort, "--port=" + port, "--collator"]; + let args = ["--ws-port=" + wsPort, "--port=" + port]; + if (rpcPort) { + args.push("--rpc-port=" + rpcPort); + console.log(`Added --rpc-port=" + ${rpcPort}`); + } + args.push("--collator"); if (basePath) { args.push("--base-path=" + basePath); diff --git a/src/types.d.ts b/src/types.d.ts index d7625e4..ee1f8d1 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -7,7 +7,7 @@ export interface LaunchConfig { finalization: boolean; } export interface ParachainNodeConfig { - rpcPort: number; + rpcPort?: number; wsPort: number; port: number; basePath?: string; @@ -40,6 +40,7 @@ export interface RelayChainConfig { name: string; basePath?: string; wsPort: number; + rpcPort?: number; port: number; flags?: string[]; }[];