배포
릴레인체인을 배포하는 방법을 알아봅니다.
Last updated
systemctl enable Infrablockspace
systemctl start Infrablockspacecurl -L <chain spec url> -o chain-spec/raw-local-chainspec.jsoncurl -L <chain spec url> -o chain-spec//tmp/raw-parachain-chainspec.jsonversion: "3.1"
services:
infrablockspace:
image: public.ecr.aws/v8x3j0k5/infrablockspace:3
command:
[
"--alice",
"--validator",드
"--base-path",
"/data/infrablockspace",
"--chain",
"/tmp/raw-local-chainspec.json",
"--rpc-port=9933", # json rpc
"--ws-port=9944", #p2p
"--unsafe-rpc-external",
"--unsafe-ws-external",
"--rpc-cors",
"all"
]
restart: always
volumes:
- ./chain-spec:/tmp
- ./data/infrablockspace:/data/infrablockspace
ports:
- "30333"version: "3.1"
services:
infrablockspace:
image: public.ecr.aws/v8x3j0k5/infra-did-chain:2
command:
[
"--alice",
"--collator",
"--base-path",
"/data/did",
"--chain",
"/tmp/raw-parachain-chainspec.json",
"--rpc-port=9933", # json rpc
"--ws-port=9944", #p2p
"--port=30333", #p2p
"--prometheus-external",
"--prometheus-port=9615",
"--unsafe-rpc-external",
"--unsafe-ws-external",
"--rpc-cors",
"all",
"--",
"--execution",
"wasm",
"--rpc-port=9934",
"--ws-port=9945", #p2p
"--port=30334",
"--chain",
"/tmp/raw-local-chainspec.json",
"--base-path",
"/data/relay",
"--unsafe-rpc-external",
"--unsafe-ws-external",
"--bootnodes",
<bootnode id>
]
restart: always
volumes:
- ./chain-spec:/tmp
- ./data/infrablockspace:/data/infrablockspace
ports:
- "30333"docker compose up -d apiVersion: apps/v1
kind: StatefulSet
metadata:
name: infrablockspace-boot
spec:
# pod selector
selector:
matchLabels:
app: infrablockspace # has to match .spec.template.metadata.labels
region: an2
mode: relay-boot
# select headless service
serviceName: "infrablockspace-headless-service"
# update strategy
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
# spec
replicas: 1 # by default is 1
template:
metadata:
labels:
app: infrablockspace # has to match .spec.template.metadata.labels
region: an2
mode: relay-boot
spec:
terminationGracePeriodSeconds: 10
securityContext:
fsGroup: 2000
runAsNonRoot: true
runAsUser: 1000
initContainers:
- name: download-spec
image: curlimages/curl:8.1.2
command: [
"curl",
"-L",
<relay chain spec url>,
"-o",
"/tmp/raw-local-chainspec.json",
]
volumeMounts:
- name: infrablockspace-spec
mountPath: /tmp
containers:
- name: infrablockspace
image: public.ecr.aws/v8x3j0k5/infrablockspace:3
imagePullPolicy: Always
args: [
"--alice",
"--validator",
"--base-path",
"/data/infrablockspace",
"--chain",
"/tmp/raw-local-chainspec.json",
"--rpc-port=9933", # json rpc
"--ws-port=9944", #p2p
"--prometheus-external",
"--prometheus-port=9615",
"--unsafe-rpc-external",
"--unsafe-ws-external",
"--rpc-cors",
"all",
"--ws-max-connections=16000"
]
resources:
limits:
cpu: 1000m
memory: 2Gi
ports:
- containerPort: 9933
name: infraspace-http
- containerPort: 30333
name: infraspace-p2p
volumeMounts:
- name: infrablockspace-pvc
mountPath: /data/infrablockspace
- name: infrablockspace-spec
mountPath: /tmp
# volume claim
volumes:
- name: infrablockspace-spec
emptyDir: {}
- name: chain-keystore
emptyDir: {}
- name: infrablockspace-pvc
persistentVolumeClaim:
claimName: infrablockspace-pvcapiVersion: v1
kind: Service
metadata:
name: infrablockspace-service-clusterip
spec:
selector:
app: infrablockspace
type: ClusterIP
ports:
- name: infraspace-http
protocol: TCP
port: 9933
targetPort: 9933
# If you set the `spec.type` field to `NodePort` and you want a specific port number,
# you can specify a value in the `spec.ports[*].nodePort` field.
- name: infraspace-ws
protocol: TCP
port: 9944
targetPort: 9944
- name: infraspace-p2p
protocol: TCP
port: 30333
targetPort: 30333
---
apiVersion: v1
kind: Service
metadata:
name: infrablockspace-headless-service
spec:
clusterIP: None
selector:
app: infrablockspace
ports:
- name: infraspace-http
protocol: TCP
port: 9933
targetPort: 9933
- name: infraspace-ws
protocol: TCP
port: 9944
targetPort: 9944
- name: infraspace-p2p
protocol: TCP
port: 30333
targetPort: 30333
---
apiVersion: v1
kind: Service
metadata:
name: infrablockspace-boot-peer
spec:
selector:
app: infrablockspace
mode: relay-boot
ports:
- name: infraspace-p2p
protocol: TCP
port: 30333
targetPort: 30333apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: infrablockspace-pvc
labels:
app: infrablockspace-pvc
spec:
storageClassName: ""
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100GiapiVersion: apps/v1
kind: StatefulSet
metadata:
name: infra-did
spec:
# pod selector
selector:
matchLabels:
app: infra-did
mode: para
# select headless service
serviceName: "infra-did-headless-service"
# update strategy
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
# spec
replicas: 1 # by default is 1
template:
metadata:
labels:
app: infra-did # has to match .spec.selector.matchLabels
mode: para
spec:
terminationGracePeriodSeconds: 10
securityContext:
fsGroup: 2000
runAsNonRoot: true
runAsUser: 1000
initContainers:
- name: download-relay-spec
image: curlimages/curl:8.1.2
command: [
"curl",
"-L",
<relay chain spec url>,
"-o",
"/tmp/raw-local-chainspec.json",
]
volumeMounts:
- name: chain-spec
mountPath: /tmp
- name: download-did-spec
image: curlimages/curl:8.1.2
command: [
"curl",
"-L",
<para chain spec url>,
"-o",
"/tmp/raw-parachain-chainspec.json",
]
volumeMounts:
- name: chain-spec
mountPath: /tmp
containers:
- name: infra-did-chain
image: public.ecr.aws/v8x3j0k5/infra-did-chain:2
imagePullPolicy: Always
args: [
"--alice",
"--collator",
"--base-path",
"/data/did",
"--chain",
"/tmp/raw-parachain-chainspec.json",
"--rpc-port=9933", # json rpc
"--ws-port=9944", #p2p
"--port=30333", #p2p
"--prometheus-external",
"--prometheus-port=9615",
"--unsafe-rpc-external",
"--unsafe-ws-external",
"--rpc-cors",
"all",
"--",
"--execution",
"wasm",
"--rpc-port=9934",
"--ws-port=9945", #p2p
"--port=30334",
"--chain",
"/tmp/raw-local-chainspec.json",
"--base-path",
"/data/relay",
"--unsafe-rpc-external",
"--unsafe-ws-external",
"--bootnodes",
<relay boot node id>
]
ports:
- containerPort: 9933
name: did-http
- containerPort: 30333
name: relay-peer
- containerPort: 9944
name: did-ws
volumeMounts:
- name: chain-spec
mountPath: /tmp
- name: chain-keystore
mountPath: /keystore
- name: infra-did-pvc
mountPath: /data/did
- name: infra-did-relay-pvc
mountPath: /data/relay
# volume claim
volumes:
- name: chain-spec
emptyDir: {}
- name: chain-keystore
emptyDir: {}
- name: infra-did-pvc
persistentVolumeClaim:
claimName: infra-did-pvc
- name: infra-did-relay-pvc
persistentVolumeClaim:
claimName: infra-did-relay-pvc
- name: aura
secret:
secretName: infra-did-aura
defaultMode: 0400apiVersion: v1
kind: Service
metadata:
name: infra-did-service-clusterip
spec:
selector:
app: infra-did
mode: para
type: ClusterIP
ports:
- name: infra-did-http
protocol: TCP
port: 9933
targetPort: 9933
- name: infra-did-ws
protocol: TCP
port: 9944
targetPort: 9944
# If you set the `spec.type` field to `NodePort` and you want a specific port number,
# # you can specify a value in the `spec.ports[*].nodePort` field.
- name: relay-peer
protocol: TCP
port: 30333
targetPort: 30333
---
apiVersion: v1
kind: Service
metadata:
name: infra-did-headless-service
spec:
clusterIP: None
selector:
app: infra-did
mode: para
ports:
- name: infra-did-http
protocol: TCP
port: 9933
targetPort: 9933
- name: infra-did-ws
protocol: TCP
port: 9944
targetPort: 9944
# If you set the `spec.type` field to `NodePort` and you want a specific port number,
# you can specify a value in the `spec.ports[*].nodePort` field.
- name: relay-peer
protocol: TCP
port: 30333
targetPort: 30333apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: newnal-an2-b-pvc
labels:
app: newnal-an2-b-pvc
spec:
storageClassName: gp3
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: newnal-an2-b-relay-pvc
labels:
app: newnal-an2-b-relay-pvc
spec:
storageClassName: gp3
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200Gikubectl apply -f pvc.yaml -f service.yaml -f statefuleset.yaml