mirror of
https://github.com/alexgo-io/stacks-node-mainnet.git
synced 2026-01-12 14:53:47 +08:00
init commit
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
/stacks-node
|
||||
/postgresql
|
||||
/wait
|
||||
@@ -1,2 +1,8 @@
|
||||
# stacks-node-mainnet
|
||||
|
||||
References:
|
||||
|
||||
+ https://docs.hiro.so/stacks-blockchain-api/how-to-guides/how-to-run-mainnet-node
|
||||
+ https://docs.hiro.so/references/hiro-archive
|
||||
|
||||
Note: use `stop.sh` to stop daemons!
|
||||
|
||||
27
config/Stacks.toml
Normal file
27
config/Stacks.toml
Normal file
@@ -0,0 +1,27 @@
|
||||
[node]
|
||||
working_dir = "/srv/stacks-node"
|
||||
rpc_bind = "0.0.0.0:20443"
|
||||
p2p_bind = "0.0.0.0:20444"
|
||||
bootstrap_node = "02196f005965cebe6ddc3901b7b1cc1aa7a88f305bb8c5893456b8f9a605923893@seed.mainnet.hiro.so:20444"
|
||||
wait_time_for_microblocks = 10000
|
||||
|
||||
[burnchain]
|
||||
chain = "bitcoin"
|
||||
mode = "mainnet"
|
||||
peer_host = "bitcoin.blockstack.com"
|
||||
username = "blockstack"
|
||||
password = "blockstacksystem"
|
||||
rpc_port = 8332
|
||||
peer_port = 8333
|
||||
|
||||
[[events_observer]]
|
||||
endpoint = "127.0.0.1:3700"
|
||||
retry_count = 255
|
||||
events_keys = ["*"]
|
||||
|
||||
[connection_options]
|
||||
read_only_call_limit_write_length = 15000000
|
||||
read_only_call_limit_read_length = 100000000
|
||||
read_only_call_limit_write_count = 7750
|
||||
read_only_call_limit_read_count = 7750
|
||||
read_only_call_limit_runtime = 5000000000
|
||||
64
docker-compose.yml
Normal file
64
docker-compose.yml
Normal file
@@ -0,0 +1,64 @@
|
||||
version: '3.8'
|
||||
services:
|
||||
stacks-blockchain-postgres:
|
||||
restart: always
|
||||
image: postgres:15.3-alpine
|
||||
container_name: stacks_postgres
|
||||
command: postgres -c 'max_connections=1000'
|
||||
shm_size: 2gb
|
||||
network_mode: host
|
||||
environment:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: 6nyi11z9tWbXJDYsVESHQfNVo
|
||||
POSTGRES_DB: alexgo
|
||||
volumes:
|
||||
- ./postgresql:/var/lib/postgresql
|
||||
stacks-blockchain-api:
|
||||
restart: always
|
||||
image: bestmike007/stacks-blockchain-api:7.1.10
|
||||
container_name: stacks_api
|
||||
command: sh -c "/wait && node ./lib/index.js"
|
||||
network_mode: host
|
||||
environment:
|
||||
WAIT_HOSTS: '127.0.0.1:5432'
|
||||
PG_HOST: 127.0.0.1
|
||||
PG_PORT: 5432
|
||||
PG_USER: alexgo
|
||||
PG_PASSWORD: 6nyi11z9tWbXJDYsVESHQfNVo
|
||||
PG_DATABASE: alexgo
|
||||
STACKS_CORE_EVENT_PORT: '3700'
|
||||
STACKS_CORE_EVENT_HOST: http://0.0.0.0
|
||||
STACKS_BLOCKCHAIN_API_PORT: '3999'
|
||||
STACKS_BLOCKCHAIN_API_HOST: 0.0.0.0
|
||||
STACKS_BLOCKCHAIN_API_DB: pg
|
||||
STACKS_CORE_RPC_HOST: 127.0.0.1
|
||||
STACKS_CORE_RPC_PORT: '20443'
|
||||
STACKS_CHAIN_ID: '0x00000001'
|
||||
STACKS_API_ENABLE_FT_METADATA: 1
|
||||
STACKS_API_ENABLE_NFT_METADATA: 1
|
||||
NODE_ENV: production
|
||||
volumes:
|
||||
- $PWD/wait:/wait
|
||||
stacks-blockchain:
|
||||
restart: always
|
||||
image: blockstack/stacks-blockchain:2.3.0.0.2
|
||||
container_name: stacks_node
|
||||
environment:
|
||||
WAIT_BEFORE: 3
|
||||
WAIT_AFTER: 3
|
||||
WAIT_HOSTS: "stacks-blockchain-api-event:3700"
|
||||
NOP_BLOCKSTACK_DEBUG: 0
|
||||
XBLOCKSTACK_DEBUG: 0
|
||||
RUST_BACKTRACE: 0
|
||||
STACKS_CHAIN_ID: "0x00000001"
|
||||
V2_POX_MIN_AMOUNT_USTX: 90000000260
|
||||
STACKS_CORE_RPC_HOST: 127.0.0.1
|
||||
STACKS_CORE_RPC_PORT: 20443
|
||||
STACKS_API_ENABLE_FT_METADATA: 1
|
||||
STACKS_API_ENABLE_NFT_METADATA: 1
|
||||
network_mode: host
|
||||
volumes:
|
||||
- ./Stacks.toml:/srv/Stacks.toml:ro
|
||||
- ./stacks-node:/srv/stacks-node
|
||||
- ./wait:/usr/bin/wait:ro
|
||||
command: sh -c "/wait && stacks-node start --config=/srv/Stacks.toml"
|
||||
13
restore-archive-node.sh
Executable file
13
restore-archive-node.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
cd $DIR
|
||||
|
||||
if [ -e stacks-node ]; then
|
||||
echo "The stacks node is already running, this is for fresh start"
|
||||
echo "If you need to reset and restore again, please stop daemons and remove ./stacks-node"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
curl https://archive.hiro.so/mainnet/stacks-blockchain/mainnet-stacks-blockchain-latest.tar.gz | tar -zxv
|
||||
mv mainnet stacks-node
|
||||
16
restore-archive-pg.sh
Executable file
16
restore-archive-pg.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
cd $DIR
|
||||
|
||||
if [ -e postresql ]; then
|
||||
echo "The stacks postgres is already running, this is for fresh start"
|
||||
echo "If you need to reset and restore again, please stop postgres and remove ./postresql"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir postgresql
|
||||
curl -o postgresql/latest.dump https://archive.hiro.so/mainnet/stacks-blockchain-api-pg/stacks-blockchain-api-pg-15-7.1.10-latest.dump
|
||||
|
||||
docker-compose up -d stacks-blockchain-postgres
|
||||
docker exec -it stacks_postgres pg_restore -j 8 -Upostgres -v -C -d alexgo /var/lib/postgresql/latest.dump
|
||||
42
setup.sh
Executable file
42
setup.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
cd $DIR
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update && apt-get dist-upgrade -y && apt-get autoremove -y && apt-get autoclean
|
||||
|
||||
apt-get install -y dstat vim iftop direnv zip unzip ca-certificates curl git gnupg lsb-release dirmngr gpg gawk jq tmux screen traceroute dnsutils iftop ufw
|
||||
|
||||
echo "Port 2280" >> /etc/ssh/sshd_config
|
||||
echo "UseDNS no" >> /etc/ssh/sshd_config
|
||||
systemctl restart ssh
|
||||
ufw allow 20443/tcp
|
||||
ufw allow 20444/tcp
|
||||
ufw limit 2280
|
||||
echo y | ufw enable
|
||||
|
||||
# docker
|
||||
if [ ! -e /usr/local/bin/docker-compose ]; then
|
||||
mkdir -m 0755 -p /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
|
||||
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
apt-get update && apt-get install -y docker-ce
|
||||
echo '{
|
||||
"log-driver": "json-file",
|
||||
"log-opts": {
|
||||
"max-size": "1024m"
|
||||
},
|
||||
"live-restore": true
|
||||
}' > /etc/docker/daemon.json
|
||||
systemctl enable --now docker
|
||||
systemctl restart docker
|
||||
curl -SL https://github.com/docker/compose/releases/download/v2.18.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
|
||||
chmod +x /usr/local/bin/docker-compose
|
||||
fi
|
||||
|
||||
if [ ! -e "./wait" ]; then
|
||||
wget -qO ./wait https://github.com/ufoscout/docker-compose-wait/releases/download/2.12.0/wait
|
||||
chmod +x ./wait
|
||||
fi
|
||||
6
start.sh
Executable file
6
start.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
cd $DIR
|
||||
|
||||
docker-compose up -d
|
||||
Reference in New Issue
Block a user