feat: initialize Kurdistan SDK - independent fork of Polkadot SDK

This commit is contained in:
2025-12-13 15:44:15 +03:00
commit e4778b4576
6838 changed files with 1847450 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
# Substrate Builder Docker Image
The Docker image in this folder is a `builder` image. It is self contained and allows users to build the binaries
themselves. There is no requirement on having Rust or any other toolchain installed but a working Docker environment.
Unlike the `parity/pezkuwi` image which contains a single binary (`pezkuwi`!) used by default, the image in this
folder builds and contains several binaries and you need to provide the name of the binary to be called.
You should refer to the [.Dockerfile](./substrate_builder.Dockerfile) for the actual list. At the time of editing, the
list of included binaries is:
- `substrate`
- `subkey`
- `node-template`
- `chain-spec-builder`
First, install [Docker](https://docs.docker.com/get-docker/).
Then to generate the latest `parity/substrate` image. Please run:
```sh
./build.sh
```
If you wish to create a debug build rather than a production build, then you may modify the
[.Dockerfile](./substrate_builder.Dockerfile) replacing `cargo build --locked --release` with just
`cargo build --locked` and replacing `target/release` with `target/debug`.
If you get an error that a tcp port address is already in use then find an available port to use for the host port in
the [.Dockerfile](./substrate_builder.Dockerfile).
The image can be used by passing the selected binary followed by the appropriate tags for this binary.
Your best guess to get started is to pass the `--help flag`. Here are a few examples:
- `./run.sh substrate --version`
- `./run.sh subkey --help`
- `./run.sh node-template --version`
- `./run.sh chain-spec-builder --help`
Then try running the following command to start a single node development chain using the Substrate Node Template binary
`node-template`:
```sh
./run.sh node-template --dev --ws-external
```
Note: It is recommended to provide a custom `--base-path` to store the chain database. For example:
```sh
# Run Substrate Node Template without re-compiling
./run.sh node-template --dev --ws-external --base-path=/data
```
> To print logs follow the [Substrate debugging instructions](https://docs.pezkuwichain.io/test/debug/).
```sh
# Purge the local dev chain
./run.sh node-template purge-chain --dev --base-path=/data -y
```
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
set -e
pushd .
# Change to the project root and supports calls from symlinks
cd $(dirname "$(dirname "$(realpath "${BASH_SOURCE[0]}")")")
# Find the current version from Cargo.toml
VERSION=`grep "^version" ./bin/node/cli/Cargo.toml | egrep -o "([0-9\.]+)"`
GITUSER=parity
GITREPO=substrate
# Build the image
echo "Building ${GITUSER}/${GITREPO}:latest docker image, hang on!"
time DOCKER_BUILDKIT=1 docker build -f ./docker/substrate_builder.Dockerfile -t ${GITUSER}/${GITREPO}:latest .
docker tag ${GITUSER}/${GITREPO}:latest ${GITUSER}/${GITREPO}:v${VERSION}
# Show the list of available images for this repo
echo "Image is ready"
docker images | grep ${GITREPO}
popd
+13
View File
@@ -0,0 +1,13 @@
#!/usr/bin/env bash
args=$@
# handle when arguments not provided. run arguments provided to script.
if [ "$args" = "" ] ; then
printf "Note: Please try providing an argument to the script.\n\n"
exit 1
else
printf "*** Running Substrate Docker container with provided arguments: $args\n\n"
docker run --rm -it parity/substrate $args
fi
@@ -0,0 +1,35 @@
# This is the build stage for Substrate. Here we create the binary.
FROM docker.io/paritytech/ci-linux:production as builder
WORKDIR /substrate
COPY . /substrate
RUN cargo build --locked --release
# This is the 2nd stage: a very small image where we copy the Substrate binary."
FROM docker.io/library/ubuntu:20.04
LABEL description="Multistage Docker image for Substrate: a platform for web3" \
io.parity.image.type="builder" \
io.parity.image.authors="chevdor@gmail.com, devops-team@parity.io" \
io.parity.image.vendor="Parity Technologies" \
io.parity.image.description="Substrate is a next-generation framework for blockchain innovation 🚀" \
io.parity.image.source="https://github.com/pezkuwichain/pezkuwichain-sdk/blob/${VCS_REF}/substrate/docker/substrate_builder.Dockerfile" \
io.parity.image.documentation="https://github.com/pezkuwichain/pezkuwichain-sdk"
COPY --from=builder /substrate/target/release/substrate /usr/local/bin
COPY --from=builder /substrate/target/release/subkey /usr/local/bin
COPY --from=builder /substrate/target/release/node-template /usr/local/bin
COPY --from=builder /substrate/target/release/chain-spec-builder /usr/local/bin
RUN useradd -m -u 1000 -U -s /bin/sh -d /substrate substrate && \
mkdir -p /data /substrate/.local/share/substrate && \
chown -R substrate:substrate /data && \
ln -s /data /substrate/.local/share/substrate && \
# Sanity checks
ldd /usr/local/bin/substrate && \
# unclutter and minimize the attack surface
rm -rf /usr/bin /usr/sbin && \
/usr/local/bin/substrate --version
USER substrate
EXPOSE 30333 9933 9944 9615
VOLUME ["/data"]
@@ -0,0 +1,11 @@
doc
**target*
.idea/
.git/
.github/
Dockerfile
.dockerignore
.local
.env*
HEADER-GPL3
LICENSE-GPL3