1、拉取github代码
mkdir /data
git clone https://github.com/toncenter/ton-http-api.git
cd ton-http-api
2、创建环境变量
./configure.py
cat .env
TON_API_CACHE_ENABLED=0
TON_API_CACHE_REDIS_ENDPOINT=cache_redis
TON_API_CACHE_REDIS_PORT=6379
TON_API_CACHE_REDIS_TIMEOUT=1
TON_API_LOGS_JSONIFY=0
TON_API_LOGS_LEVEL=ERROR
TON_API_GET_METHODS_ENABLED=1
TON_API_HTTP_PORT=80
TON_API_JSON_RPC_ENABLED=1
TON_API_ROOT_PATH=/
TON_API_WEBSERVERS_WORKERS=1
TON_API_TONLIB_LITESERVER_CONFIG=private/mainnet.json
TON_API_TONLIB_KEYSTORE=/tmp/ton_keystore/
TON_API_TONLIB_PARALLEL_REQUESTS_PER_LITESERVER=50
TON_API_TONLIB_CDLL_PATH=
TON_API_TONLIB_REQUEST_TIMEOUT=10
TON_API_GUNICORN_FLAGS=
COMPOSE_FILE=docker-compose.yaml
3、下载mainnet.json文件
主网是mainnet.json,测试网是testnet.json
mkdir private
curl -sL https://ton-blockchain.github.io/global.config.json > private/mainnet.json
curl -sL https://ton-blockchain.github.io/testnet-global.config.json > private/testnet.json
另一json文档
https://github.com/fmira21/ton-node-docker/blob/main/config/api-config/mainnet-config-onetomany.json
4、更改下docker-compose.yaml文件,将ton_keystore映射出来
将下面部分加入到docker-compose.yaml中
volumes:
- ./ton_keystore:/tmp/ton_keystore
具体如下
version: '3.7'
services:
main:
image: toncenter/ton-http-api
build:
context: ton-http-api
dockerfile: .docker/Dockerfile
ports:
- ${TON_API_HTTP_PORT:-8081}:8081
environment:
- TON_API_CACHE_ENABLED
- TON_API_CACHE_REDIS_ENDPOINT
- TON_API_CACHE_REDIS_PORT
- TON_API_CACHE_REDIS_TIMEOUT
- TON_API_LOGS_JSONIFY
- TON_API_LOGS_LEVEL
- TON_API_TONLIB_LITESERVER_CONFIG=/run/secrets/liteserver_config
- TON_API_TONLIB_KEYSTORE
- TON_API_TONLIB_PARALLEL_REQUESTS_PER_LITESERVER
- TON_API_TONLIB_CDLL_PATH
- TON_API_TONLIB_REQUEST_TIMEOUT
- TON_API_GET_METHODS_ENABLED
- TON_API_JSON_RPC_ENABLED
- TON_API_ROOT_PATH
restart: unless-stopped
volumes:
- ./ton_keystore:/tmp/ton_keystore
networks:
- internal
secrets:
- liteserver_config
command: -c "gunicorn -k uvicorn.workers.UvicornWorker -w ${TON_API_WEBSERVERS_WORKERS} --bind 0.0.0.0:8081 ${TON_API_GUNICORN_FLAGS} pyTON.main:app"
healthcheck:
test: curl -sS http://127.0.0.1:8081${TON_API_ROOT_PATH}/healthcheck || echo 1
interval: 15s
timeout: 3s
retries: 12
secrets:
liteserver_config:
file: ${TON_API_TONLIB_LITESERVER_CONFIG:-./private/mainnet.json}
networks:
internal:
5、启动容器
docker-compose up -d
docker-compose ps
6、验证
在web浏览器上打开http://ip:80,获取主节点信息