feat: support createParam

feat: docker script
This commit is contained in:
CaiHQ
2022-04-21 10:18:48 +08:00
parent a8ea5c6d53
commit 6f1fc41aad
15 changed files with 142 additions and 19 deletions

37
docker/deploy/README.md Normal file
View File

@@ -0,0 +1,37 @@
本目录支持两种
# 镜像准备
请提前熟悉docker常用命令主要包括`docker ps``docker image xx``docker kill`等。
1. 下载或导入镜像:
```bash
#下载镜像
docker-compose pull
#或者是导入镜像bdcontract-x.x.x.tar为待导入镜像文件。
#docker load -i bdcontract-x.x.x.tar
```
2. 检查是否有"bdware/bdcontract:latest"镜像。
```bash
docker image ls | grep bdcontract
```
如果没有名为"bdware/bdcontract latest"的镜像,就将其中的最新版本打上。
```bash
docker image tag bdware/bdcontract:x.y.z bdware/bdcontract:latest
```
3.执行`init.sh`,创建一些初始化需要的目录。
# 修改配置
1.复制或链接`cp``./bdcontract`包括lib目录,yjs.jar)
2.修改`./bdcontract/cmvar.json`
也可利用cp目录下的jar包自己生成:
```bash
#本操作需要依赖java 1.8以上环境。
java -cp cp/libs:cp/yjs.jar org.bdware.sc.SM2Helper generateKeyToFile
```
生成的文件请妥善保存。
2. 修改配置文件cmconfig.json如果需要配置文件参数详见配置说明`cmconfig.readme.md`
3. 执行脚本`sh start.sh`

View File

@@ -0,0 +1,23 @@
{
"cmi": "_CMI",
"debug": "",
"disableDoRepo": false,
"disableLocalLhs": false,
"doipCertPath": "",
"doipLhsAddress": "",
"doipPort": 21032,
"doipUserHandle": "",
"enableEventPersistence": false,
"enableSsl": "./ssl/chained.pem:./ssl/domain.pem",
"ip": "127.0.0.1",
"isLAN": true,
"overwrite": false,
"servicePort": 21030,
"textFileSuffixes": ".yjs,.json,.txt,.css,.js,.html,.md,.conf,.csv",
"withBdledgerClient": "./runnable/bdledger_mac",
"withBdledgerServer": false,
"consistencyPlugins": "/bdcontract/nosuchlib/custom-plugin.jar",
"startContract": [
],
"datachainConf": "_LEDGERHOST:_LEDGERPORT"
}

View File

@@ -0,0 +1,6 @@
{
"_HOSTIP": "127.0.0.1",
"_PREFIX": "macjw.zbfz",
"_LEDGERPORT": "2401",
"_LEDGERHOST": "bdledger"
}

View File

@@ -0,0 +1,3 @@
#!/bin/bash
java -cp cp/libs/*:cp/yjs.jar org.bdware.sc.SM2Helper generateKeyToFile
java -cp cp/libs/*:cp/yjs.jar org.bdware.sc.SM2Helper generateCMConfig

View File

@@ -0,0 +1,42 @@
node:
id: acb1cc2a7013ec8a7ea7eee0ec6f835851dd8e91
api:
grpc:
addr: :2401
http:
enabled: true
datastore:
source: /data/block
p2p:
identity:
peerId: QmeG9PE8NQ7q8M6xiovVp9u1UjZZWc8Wom1K5MomJgLuWs
privKey: CAASqQkwggSlAgEAAoIBAQDAb0X3U2HjgoUniXH8EMs6L8FHGU63BahbY+/7GjnVFXe0bSuPlpaUC2Twmhulvad/1nSCuF178UYoYQ6Qz1AwBl4IiZmQxhSXdZPEXrN3WnC70rrkMMQxz7sjevyEXm9EIUo4Hepxlvd6PlTHUaYOW4TXSsv5JqoZW4+itxane/tOCCpFM/ppftpz3N5RxO181mczm6cljHcShZXkHSxo0nn3sHSqixqbzv+c0x/c5YP+aue3MJX2IjODGEY1a3x3HwCmwK3IgUSKWyZk480codWeO/5JFLNKzlXzWAu2GG7v2MF1h3Fa4lwEGdCLILY2Ux9d+M3wRvoz7ZWYn0CTAgMBAAECggEALLgvLEDGWNa2FvAL+yXz9HuwkNNCxamc7FAXLuVzVx98CAPuwZmfOJxFQtytXCDs0fqGbPJnVyxEv5F+jwx+eAqiw50mgMxncKM0ScgwMKZl2GAqamkizuiVdrNYB3LirJSH6O6a0vbgYBooHYHN8zw1bMrHCAmCMg5jHM8rhpQTp22VIa4YxlQDUAQdvuN4ilIXxwiyxTpbQobH4hVmwwoeU65sbFSZQ219d/KXPkK1l9c3OGf9KTPWzG3uq2lx2BKrJ3TMZYdiGBDKc89m6TnOidVB5jC5VKT8S4idKUQocMcg8eMYEWtR/0YgS0YC0FBhmpHfiam/kJ0mc+L6YQKBgQD2CBwi8kwBqJISM9kOAu7k2vDTB6eb83YWaSq4aQ/AYKvtfUHLz9Ekx+EjPmtMIfvxvJ86NEuCK64Ag4I943dCEyZYE00xBL/Zwark0LxgIuR8tSkxlPoErUmFdLELqIsUJS4Izu8lkPXE6PSxDZMe2Klq0Nd7wVglgjHxpcotOwKBgQDIOz6NEW54F0amGATtVj7DUN36wSQwE2AX5cyWZeKcvJixKKCdLSPln6QFW7+vI7vR4umUcFFEUKO8HwGojcq4+EjiOn/CppQ1GwD2xNXKFiJ5Sl3wpnqARFNHj3rH8l3kI3V5qt0c0OSzKr3bMGUdKNREUaKlqg20e3YznSZkiQKBgQCEnPh1ib6YQkGB2DqNx9z2tGCMjxqz/7XN/J/PSKn52uGxIAvgDMNBnQ9oTNPO9J51vWLiH5/3qQ2gL0J7k2kLz4CihrzbyCCVAkPYE/8Fnqkj4w4yMIfXD4SKj8yCaTWWBThb/RaAXDNtENgbuyJqxQQElE8h4KRfi17aTq+8UwKBgQCONyYSZBMmUMHpLp4xRFSHvWQsugnN67UQxDMvj2YJFRsOmWCawnkAmwaQl73p02OPi6+DstLFxtDEyPEQmsUl45NAu3QK+O3DWk6w9tUyF86cf2mBh3zypZTQ+uOmKErvww+pPuaVlPkbGHyItjLbJyi87Y6sQ8BANICb4D5ooQKBgQDHC6rQTaGIaOgAQzBzFPdi2foFEXTr9zpp0iVYdTFJr68OhROEkzQetHdk5MYR6SWjf3wQk34GDUqtVXNzoIhUkD6P83QCZKmsrkvYiQH0aXjAmjLpcDvSgUFCxS8NcaHKeDNLHw3SH8zh0zDFE1vlXdYzittDjmnYPGEEJzrUlg==
addresses:
swarm:
- /ip4/0.0.0.0/tcp/2416
- /ip4/0.0.0.0/udp/2416/quic
bootstrap:
- /ip4/127.0.0.1/tcp/2416/p2p/QmeG9PE8NQ7q8M6xiovVp9u1UjZZWc8Wom1K5MomJgLuWs
pubsub:
router: gossipsub
heartbeatInterval: 10000
query:
maxDuration: 3600 # seconds
maxRequestLifetime: 3.0 # seconds
waitReservedTime: 1.0 # seconds
nrw:
numWitness: 0
numBackup: 0
txsPerBlock: 1000
blockGenCycle: 30000
requestTimeout: 16
messageTimeout: 5
log:
format: text
level: INFO

View File

@@ -0,0 +1,32 @@
version: "3"
services:
bdledger:
image: bdware/bdledger:dev-210909.874f034d
command: "-c /etc/bdledger/config.yml"
restart: unless-stopped
volumes:
- ./bdledger/config.yml:/etc/bdledger/config.yml:ro
- .//bdledger/data:/data
ports:
- "2416:2416" # P2P
- "2401:2401" # API
bdcontract:
image: bdware/bdcontract:latest
command: "-Dfile.encoding=UTF-8 -Djava.library.path='./dynamicLibrary' -cp ./libs/*:bdagent.jar org.bdware.server.CMHttpServer"
restart: unless-stopped
depends_on:
- bdledger
volumes:
- ./bdcontract/rocksdb:/bdcontract/rocksdb
- ./bdcontract/ContractDB:/bdcontract/ContractDB
- ./bdcontract/ContractManagerDB:/bdcontract/ContractManagerDB
- ./bdcontract/BDWareProjectDir:/bdcontract/BDWareProjectDir
- ./bdcontract/cmconfig.json:/bdcontract/cmconfig.json:ro
- ./bdcontract/cp:/bdcontract/cp
- ./bdcontract/tls:/bdcontract/tls:ro
ports:
- "21030:21030" # Contract manager API
- "21031:21031" # Contract manager master
- "21032:21032" # DOA
- "21033:21033" # Prometheus exporter

12
docker/deploy/init.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -a
#source ./.env
set +a
mkdir -p \
./bdcontract/rocksdb \
./bdcontract/ContractDB \
./bdcontract/ContractManagerDB \
./bdcontract/ssl \
./bdcontract/BDWareProjectDir \
./bdledger/data

37
docker/deploy/start.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/bash
if [ ! -d "./BDWareProjectDir" ]; then
mkdir ./BDWareProjectDir
fi
if [ ! -d "./ContractDB" ]; then
mkdir ./ContractDB
fi
if [ ! -d "./ContractManagerDB" ]; then
mkdir ./ContractManagerDB
fi
if [ ! -d "./log" ]; then
mkdir ./log
fi
if [ ! -d "./manager.key" ]; then
echo "missing manager.key! automatically generate!"
java -cp cp/libs:cp/yjs.jar org.bdware.sc.SM2Helper generateKeyToFile
fi
if [ ! -d "./cp" ]; then
echo "missing cp dir!"
exit 1
fi
export CURDIR=`pwd`/bdcontract
docker run -p 21030-21033:21030-21033 -v $CURDIR/BDWareProjectDir:/bdcontract/BDWareProjectDir \
-v $CURDIR/ContractDB:/bdcontract/ContractDB \
-v $CURDIR/ContractManagerDB:/bdcontract/ContractManagerDB \
-v $CURDIR/cmconfig.json:/bdcontract/cmconfig.json \
-v $CURDIR/cp:/bdcontract/cp: \
-v $CURDIR/keys:/bdcontract/keys: \
-v $CURDIR/log:/bdcontract/log \
-v $CURDIR/manager.key:/bdcontract/manager.key: \
-d bdware/bdcontract:latest