├── .dockerignore
├── .editorconfig
├── .gitignore
├── .maintain
├── Dockerfile
├── HEADER-GPL3
├── build-docs
│ ├── build-docs.sh
│ └── index.html
├── build-only-wasm.sh
├── common
│ └── lib.sh
├── debian
│ ├── deb-maintainer-scripts
│ │ └── postinst
│ ├── defaults
│ └── oak-collator.service
├── deny.toml
├── docker
│ ├── subkey.Dockerfile
│ └── substrate.Dockerfile
├── ensure-deps.sh
├── frame-weight-template.hbs
├── generate-release-notes
├── getgoing.sh
├── github
│ └── check_labels.sh
├── gitlab
│ ├── check_line_width.sh
│ ├── check_polkadot_companion_build.sh
│ ├── check_polkadot_companion_status.sh
│ ├── check_runtime.sh
│ ├── check_signed.sh
│ ├── generate_changelog.sh
│ ├── publish_draft_release.sh
│ ├── skip_if_draft.sh
│ └── trigger_pipeline.sh
├── init.sh
├── kubernetes
│ ├── Chart.yaml
│ ├── README.md
│ ├── templates
│ │ ├── poddisruptionbudget.yaml
│ │ ├── secrets.yaml
│ │ ├── service.yaml
│ │ ├── serviceaccount.yaml
│ │ └── statefulset.yaml
│ └── values.yaml
├── local-docker-test-network
│ ├── docker-compose.yml
│ ├── grafana
│ │ └── provisioning
│ │ │ ├── dashboards
│ │ │ └── dashboards.yml
│ │ │ └── datasources
│ │ │ └── datasource.yml
│ └── prometheus
│ │ └── prometheus.yml
├── monitoring
│ ├── alerting-rules
│ │ ├── alerting-rule-tests.yaml
│ │ └── alerting-rules.yaml
│ └── grafana-dashboards
│ │ ├── README_dashboard.md
│ │ ├── substrate-networking.json
│ │ └── substrate-service-tasks.json
├── node-template-release.sh
├── node-template-release
│ ├── Cargo.toml
│ └── src
│ │ └── main.rs
├── rename-crates-for-2.0.sh
├── runtime-dep.py
├── rustdoc-header.html
├── test-coverage
│ └── test-coverage.sh
├── update-copyright.sh
└── update-deps.sh
├── .rustfmt.toml
├── .vscode
├── launch.json
└── tasks.json
├── Cargo.lock
├── Cargo.toml
├── LICENSE
├── README.md
├── distribution
├── neumann_alloc.json
├── neumann_vest_test_alloc.json
├── neumann_vesting.json
├── oak_alloc.json
├── oak_staging_alloc.json
├── oak_vesting.json
├── turing_alloc.json
├── turing_staging_alloc.json
└── turing_vesting.json
├── docker
├── neumann
│ ├── Dockerfile
│ └── build.sh
└── turing
│ ├── Dockerfile
│ └── build.sh
├── media
├── readme-parachain-post-registration.png
└── readme-parachain-registration.png
├── node
├── Cargo.toml
├── build.rs
├── res
│ ├── neumann-rococo-testnet.json
│ ├── neumann.json
│ ├── turing-staging.json
│ └── turing.json
└── src
│ ├── chain_spec
│ ├── mod.rs
│ ├── neumann.rs
│ ├── oak.rs
│ └── turing.rs
│ ├── cli.rs
│ ├── command.rs
│ ├── main.rs
│ ├── rpc.rs
│ └── service.rs
├── pallets
├── automation-price
│ ├── Cargo.toml
│ ├── rpc
│ │ ├── Cargo.toml
│ │ ├── runtime-api
│ │ │ ├── Cargo.toml
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ └── src
│ │ │ └── lib.rs
│ └── src
│ │ ├── benchmarking.rs
│ │ ├── fees.rs
│ │ ├── lib.rs
│ │ ├── mock.rs
│ │ ├── tests.rs
│ │ ├── trigger.rs
│ │ ├── types.rs
│ │ └── weights.rs
├── automation-time
│ ├── Cargo.toml
│ ├── rpc
│ │ ├── Cargo.toml
│ │ ├── runtime-api
│ │ │ ├── Cargo.toml
│ │ │ └── src
│ │ │ │ └── lib.rs
│ │ └── src
│ │ │ └── lib.rs
│ └── src
│ │ ├── autocompounding.rs
│ │ ├── benchmarking.rs
│ │ ├── fees.rs
│ │ ├── lib.rs
│ │ ├── mock.rs
│ │ ├── tests.rs
│ │ ├── types.rs
│ │ └── weights.rs
├── valve
│ ├── Cargo.toml
│ └── src
│ │ ├── benchmarking.rs
│ │ ├── lib.rs
│ │ ├── mock.rs
│ │ ├── tests.rs
│ │ ├── traits.rs
│ │ └── weights.rs
├── vesting
│ ├── Cargo.toml
│ └── src
│ │ ├── benchmarking.rs
│ │ ├── lib.rs
│ │ ├── mock.rs
│ │ ├── tests.rs
│ │ └── weights.rs
└── xcmp-handler
│ ├── Cargo.toml
│ ├── rpc
│ ├── Cargo.toml
│ ├── runtime-api
│ │ ├── Cargo.toml
│ │ └── src
│ │ │ └── lib.rs
│ └── src
│ │ └── lib.rs
│ └── src
│ ├── lib.rs
│ ├── migrations
│ └── mod.rs
│ ├── mock.rs
│ └── tests.rs
├── parachain-launch
├── config.yml
├── docker-compose.yml
├── local-2000.json
├── parachain-2000.Dockerfile
├── relaychain.Dockerfile
└── rococo-local.json
├── primitives
├── Cargo.toml
└── src
│ ├── assets.rs
│ └── lib.rs
├── resources
├── neumann-testnet-parachain.yaml
├── rococo-local.json
├── rococo-testnet-relaychain.yaml
├── rococo-testnet.json
├── rococo.json
└── types.json
├── runtime
├── common
│ ├── Cargo.toml
│ └── src
│ │ ├── constants.rs
│ │ ├── fees.rs
│ │ └── lib.rs
├── neumann
│ ├── Cargo.toml
│ ├── build.rs
│ └── src
│ │ ├── lib.rs
│ │ ├── weights
│ │ ├── asset_registry_weights.rs
│ │ ├── mod.rs
│ │ └── pallet_xcm.rs
│ │ └── xcm_config.rs
├── oak
│ ├── Cargo.toml
│ ├── build.rs
│ └── src
│ │ ├── lib.rs
│ │ ├── weights
│ │ ├── asset_registry_weights.rs
│ │ ├── mod.rs
│ │ └── pallet_xcm.rs
│ │ └── xcm_config.rs
└── turing
│ ├── Cargo.toml
│ ├── build.rs
│ └── src
│ ├── lib.rs
│ ├── migrations
│ └── mod.rs
│ ├── weights
│ ├── asset_registry_weights.rs
│ ├── mod.rs
│ └── pallet_xcm.rs
│ └── xcm_config.rs
├── rust-toolchain.toml
├── scripts
├── run-pallet-benchmarks.sh
└── try-runtime.sh
└── zombienets
├── neumann
├── single-chain.toml
└── xcmp.toml
├── oak
├── single-chain.toml
└── xcmp.toml
└── turing
├── mangata.toml
├── moonbase.toml
├── shibuya.toml
├── turing-multi-collator.toml
└── turing-simple.toml
/.dockerignore:
--------------------------------------------------------------------------------
1 | .github
2 | .git
3 | .vscode
4 | target
5 | data
6 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style=space
5 | indent_size=2
6 | tab_width=2
7 | end_of_line=lf
8 | charset=utf-8
9 | trim_trailing_whitespace=true
10 | insert_final_newline = true
11 |
12 | [*.{rs,toml}]
13 | indent_style=tab
14 | indent_size=tab
15 | tab_width=4
16 | max_line_length=100
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Generated by Cargo
2 | # will have compiled files and executables
3 | **/target/
4 | # These are backup files generated by rustfmt
5 | **/*.rs.bk
6 |
7 | .DS_Store
8 |
9 | # The cache for docker container dependency
10 | .cargo
11 |
12 | # The cache for chain data in container
13 | .local
14 | /data/
15 |
16 | # Parachain registration files
17 | genesis-state
18 | genesis-wasm
19 |
20 | # zombienet binary for MacOS to run scripts in the ./zombienets folder
21 | zombienet-macos
--------------------------------------------------------------------------------
/.maintain/Dockerfile:
--------------------------------------------------------------------------------
1 | # Note: We don't use Alpine and its packaged Rust/Cargo because they're too often out of date,
2 | # preventing them from being used to build Substrate/Polkadot.
3 |
4 | FROM phusion/baseimage:0.11 as builder
5 | LABEL maintainer="chevdor@gmail.com"
6 | LABEL description="This is the build stage for Substrate. Here we create the binary."
7 |
8 | ENV DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG PROFILE=release
11 | WORKDIR /substrate
12 |
13 | COPY . /substrate
14 |
15 | RUN apt-get update && \
16 | apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold" && \
17 | apt-get install -y cmake pkg-config libssl-dev git clang
18 |
19 | RUN curl https://sh.rustup.rs -sSf | sh -s -- -y && \
20 | export PATH="$PATH:$HOME/.cargo/bin" && \
21 | rustup toolchain install nightly && \
22 | rustup target add wasm32-unknown-unknown --toolchain nightly && \
23 | rustup default stable && \
24 | cargo build "--$PROFILE"
25 |
26 | # ===== SECOND STAGE ======
27 |
28 | FROM phusion/baseimage:0.11
29 | LABEL maintainer="chevdor@gmail.com"
30 | LABEL description="This is the 2nd stage: a very small image where we copy the Substrate binary."
31 | ARG PROFILE=release
32 |
33 | RUN mv /usr/share/ca* /tmp && \
34 | rm -rf /usr/share/* && \
35 | mv /tmp/ca-certificates /usr/share/ && \
36 | useradd -m -u 1000 -U -s /bin/sh -d /substrate substrate && \
37 | mkdir -p /substrate/.local/share/substrate && \
38 | chown -R substrate:substrate /substrate/.local && \
39 | ln -s /substrate/.local/share/substrate /data
40 |
41 | COPY --from=builder /substrate/target/$PROFILE/substrate /usr/local/bin
42 | COPY --from=builder /substrate/target/$PROFILE/subkey /usr/local/bin
43 | COPY --from=builder /substrate/target/$PROFILE/node-rpc-client /usr/local/bin
44 | COPY --from=builder /substrate/target/$PROFILE/node-template /usr/local/bin
45 | COPY --from=builder /substrate/target/$PROFILE/chain-spec-builder /usr/local/bin
46 |
47 | # checks
48 | RUN ldd /usr/local/bin/substrate && \
49 | /usr/local/bin/substrate --version
50 |
51 | # Shrinking
52 | RUN rm -rf /usr/lib/python* && \
53 | rm -rf /usr/bin /usr/sbin /usr/share/man
54 |
55 | USER substrate
56 | EXPOSE 30333 9933 9944 9615
57 | VOLUME ["/data"]
58 |
59 | CMD ["/usr/local/bin/substrate"]
60 |
--------------------------------------------------------------------------------
/.maintain/HEADER-GPL3:
--------------------------------------------------------------------------------
1 | // This file is part of OAK-blockchain.
2 |
3 | // Copyright (C) OAK Network Ltd.
4 | // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
5 |
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 |
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see