--- a/.docker/Dockerfile-xcm +++ b/.docker/Dockerfile-xcm @@ -95,6 +95,15 @@ cd cumulus && \ cargo build --release --locked -p polkadot-parachain +# ===== BUILD CHAINQL ===== +FROM rust-builder as builder-chainql + +RUN mkdir chainql +WORKDIR /chainql + +RUN git clone -b v0.1.0 --depth 1 https://github.com/CertainLach/chainql.git . && \ + cargo build --release + # ===== RUN ====== FROM ubuntu:20.04 @@ -103,7 +112,7 @@ ENV POLKADOT_LAUNCH_BRANCH $POLKADOT_LAUNCH_BRANCH RUN apt-get -y update && \ - apt-get -y install curl git && \ + apt-get -y install curl git jsonnet && \ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \ export NVM_DIR="$HOME/.nvm" && \ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ @@ -123,8 +132,15 @@ COPY --from=builder-moonbeam /unique_parachain/moonbeam/target/release/moonbeam /moonbeam/target/release/ COPY --from=builder-cumulus /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus COPY --from=builder-acala /unique_parachain/Acala/target/production/acala /acala/target/release/ +COPY --from=builder-chainql /chainql/target/release/chainql /chainql/target/release/ + +EXPOSE 9844 +EXPOSE 9944 +EXPOSE 9946 +EXPOSE 9947 +EXPOSE 9948 -CMD export NVM_DIR="$HOME/.nvm" && \ +CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ cd /polkadot-launch && \ yarn start launch-config.json --- a/.docker/docker-compose.tmp-xcm-quartz.yml +++ b/.docker/docker-compose.tmp-xcm-quartz.yml @@ -18,4 +18,8 @@ - type: bind source: ./xcm-config/launch-config-xcm-quartz.json target: /polkadot-launch/launch-config.json - read_only: true + read_only: true + - type: bind + source: ./xcm-config/5validators.jsonnet + target: /polkadot-launch/5validators.jsonnet + read_only: true --- a/.docker/docker-compose.tmp-xcm-unique.yml +++ b/.docker/docker-compose.tmp-xcm-unique.yml @@ -19,4 +19,9 @@ - type: bind source: ./xcm-config/launch-config-xcm-unique.json target: /polkadot-launch/launch-config.json - read_only: true + read_only: true + - type: bind + source: ./xcm-config/5validators.jsonnet + target: /polkadot-launch/5validators.jsonnet + read_only: true + --- /dev/null +++ b/.docker/xcm-config/5validators.jsonnet @@ -0,0 +1,50 @@ + +function(spec) + spec { + genesis+: { + runtime+: { + staking+: { + validatorCount: 5, + invulnerables: [ + '5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY', + '5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc', + '5Ck5SLSHYac6WFt5UZRSsdJjwmpSZq85fd5TRNAdZQVzEAPT', + '5HKPmK9GYtE1PSLsS1qiYU9xQ9Si1NcEhdeCq9sw5bqu4ns8', + '5FCfAonRZgTFrTd9HREEyeJjDpT397KMzizE6T3DvebLFE7n', + ], + stakers: [ + [ + '5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY', + '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + 100000000000000, + 'Validator', + ], + [ + '5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc', + '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + 100000000000000, + 'Validator', + ], + [ + '5Ck5SLSHYac6WFt5UZRSsdJjwmpSZq85fd5TRNAdZQVzEAPT', + '5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y', + 100000000000000, + 'Validator', + ], + [ + '5HKPmK9GYtE1PSLsS1qiYU9xQ9Si1NcEhdeCq9sw5bqu4ns8', + '5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy', + 100000000000000, + 'Validator', + ], + [ + '5FCfAonRZgTFrTd9HREEyeJjDpT397KMzizE6T3DvebLFE7n', + '5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw', + 100000000000000, + 'Validator', + ], + ], + }, + }, + }, + } --- a/.docker/xcm-config/launch-config-xcm-quartz.json +++ b/.docker/xcm-config/launch-config-xcm-quartz.json @@ -2,6 +2,11 @@ "relaychain": { "bin": "/polkadot/target/release/polkadot", "chain": "westend-local", + "chainInitializer": [ + "chainql", + "--tla-code=spec=import '${spec}'", + "5validators.jsonnet" + ], "nodes": [ { "name": "alice", --- a/.docker/xcm-config/launch-config-xcm-unique.json +++ b/.docker/xcm-config/launch-config-xcm-unique.json @@ -2,6 +2,11 @@ "relaychain": { "bin": "/polkadot/target/release/polkadot", "chain": "westend-local", + "chainInitializer": [ + "chainql", + "--tla-code=spec=import '${spec}'", + "5validators.jsonnet" + ], "nodes": [ { "name": "alice",