forked from crypto-le/Build_Node
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolana节点.ini
222 lines (180 loc) · 8.28 KB
/
solana节点.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
1.拉去最新发布的solana 源代码
wget https://github.com/solana-labs/solana/releases (自己选版本)
2.配置编译源代码的环境
#安装 Rust环境
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
#安装 依赖环境
sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make
3.编译源代码
./scripts/cargo-install-all.sh /storage (/ 安装路径)
export PATH=$PWD/bin:$PATH (编译完成会输出 环境变量,自己刷新 并设置永久)
#刷新 并且 设置 永久
export PATH=$PWD/bin:$PATH
vim ~/.profile
3.设置tmpfs 提高性能 .分别需要 创建300G的分区 和 交换分区 或文件(swap 分区 文件自己选)
#创建300G 分区
sudo mkdir /mnt/solana-accounts
vim /etc/fstab
tmpfs /mnt/solana-accounts tmpfs rw,size=300G,user=sol 0 0
#创建交换文件(我自己选的是交换文件 250G)
sudo dd if=/dev/zero of=/storage/swapfile bs=1MiB count=250KiB
sudo chmod 0600 /data/swapfile
mkswap /storage/swapfile
vim /etc/fstab
/data/swapfile swap swap defaults 0 0
#刷新 分区 和 交换分区
swapon -a
mount -a
#查看分区 和 交换分区
free -get
df -h
4.获取主网信息 并且 加入网络 切验证网络
#GET
solana config get
#SET
solana config set --url https://api.mainnet-beta.solana.com
#verify
solana transaction-count
5.系统调优 很重要的一步 我这里是自动优化,也可以自己手动设置
#手动优化 https://docs.solana.com/running-validator/validator-start
#守护进程 ( solana-sys-tuner) 包含在 solana #二进制版本中。在重新启动验证器之前,在每次软件升级后重新启动它,以确保应用#最新的推荐设置。
sudo $(command -v solana-sys-tuner) --user $(whoami) > sys-tuner.log 2>&1 &
6.创建一个身份 用于启动验证节点(自己备份好,我们是全节点不参与投票~)
solana-keygen new -o ~/validator-keypair.json
7.设置 Mainnet Beta 的 Metrics 环境变量:
vim ~/.profile
export SOLANA_METRICS_CONFIG = "host=https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password"
8.编辑启动命令
#创建启动脚本
vim start_solana_validator.sh
solana-validator \
--identity ~/validator-keypair.json \
--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \
--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \
--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \
--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \
--only-known-rpc \
--no-voting \
--ledger /data/solana_data \
--rpc-port 8899 \
--private-rpc \
--full-rpc-api \
--rpc-bind-address 0.0.0.0 \
--dynamic-port-range 8000-8020 \
--restricted-repair-only-mode \
--enable-rpc-transaction-history \
--entrypoint entrypoint.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \
--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \
--wal-recovery-mode skip_any_corrupted_record \
--limit-ledger-size \
--accounts /mnt/solana-accounts \
--log /data/solana.log
################## 以下是调试 和 说明
solana-validator \
--ledger <LEDGER_PATH> \
--identity <VALIDATOR_IDENTITY_KEYPAIR> \
--entrypoint <CLUSTER_ENTRYPOINT> \
--expected-genesis-hash <EXPECTED_GENESIS_HASH> \
--rpc-port 8899 \
--no-voting \
--enable-rpc-transaction-history \
--limit-ledger-size \
--known-validator <VALIDATOR_ADDRESS> \
--only-known-rpc
###########################
--identity 您的验证者身份
--private-rpc 防止您的 RPC 端口被发布以供其他节点使用
--known-validator 参数可以防止您从恶意快照启动
-only-known-rpc它只会询问一组已知节点来下载创世和快照数据。
--rpc-bind-address 允许您指定不同的 IP 地址来绑定 RPC 端口
--ledger 您想要的分类帐存储位
--rpc-port 您想要公开的端口
--dynamic-port-range 验证器将动态选择 8000-10000 范围内的可用网络端口
--no-snapshot-fetch 不自动下载快照 (首次启动不建议使用)
--entrypoint 都 --expected-genesis-hash 特定于您要加入的集群
--restricted-repair-only-mode
这将导致验证器在受限模式下运行,在这种模式下它不会接收来自其余验证器的推送,而是需要不断地轮询其他验证器以获取块
--limit-ledger-size 该参数允许您指定节点在磁盘上保留--limit-ledger-size多少分类帐 碎片。如果不包含此参数,验证器将保留整个分类帐,直到磁盘空间用完。默认值尝试将分类帐磁盘使用量保持在 500GB 以下。
--no-port-check 一旦您的验证器正常运行,不在检查端口 (首次启动不建议使用)
--accounts /mnt/solana-accounts 使用具有溢出到交换帐户数据库的 ramdisk 来减少 SSD 磨损
--no-voting 禁止投票
--log 日志
--full-rpc-api
--enable-rpc-transaction-history
--accounts-shrink-optimize-total-space true
--wal-recovery-mode skip_any_corrupted_record
--account-index program-id
--account-index spl-token-mint
--account-index spl-token-owner
--geyser-plugin-config
###########################
solana-validator \
--identity ~/validator-keypair.json \
--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \
--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \
--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \
--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \
--only-known-rpc \
--no-voting \
--ledger /data/solana_data \
--rpc-port 8899 \
--private-rpc \
--full-rpc-api \
--rpc-bind-address 0.0.0.0 \
--dynamic-port-range 8000-8020 \
--restricted-repair-only-mode \
--enable-rpc-transaction-history \
--entrypoint entrypoint.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \
--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \
--wal-recovery-mode skip_any_corrupted_record \
--limit-ledger-size \
--accounts /mnt/solana-accounts \
--log /data/solana.log
[Service]
Restart=always
RestartSec=1
LimitNOFILE=1024000
Environment="RUST_LOG=info,solana_core::cluster_info=warn,solana_core::cluster_slot_state_verifier=warn,solana_runtime::bank=warn,solana_metrics::metrics=warn,solana_metrics::counter=warn,solana_gossip::cluster_info=warn"
User=solana
Group=solana
ExecStart=/opt/solana-release/bin/solana-validator \
--log /data/solana/log/solana.log \
--ledger /data/solana \
--limit-ledger-size 1000000000 \
--accounts /data/solana_accounts/solana_accounts \
--accounts-shrink-optimize-total-space true \
--account-index program-id \
--account-index spl-token-mint \
--account-index spl-token-owner \
--identity /home/solana/.config/solana/id.json \
--entrypoint entrypoint.testnet.solana.com:8001 \
--entrypoint entrypoint2.testnet.solana.com:8001 \
--entrypoint entrypoint3.testnet.solana.com:8001 \
--expected-genesis-hash 4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY \
--known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \
--known-validator dDzy5SR3AXdYWVqbDEkVFdvSPCtS9ihF5kJkHCtXoFs \
--known-validator Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN \
--known-validator eoKpUABi59aT4rR9HGS3LcMecfut9x7zJyodWWP43YQ \
--known-validator 9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv \
--no-voting \
--enable-rpc-transaction-history \
--halt-on-known-validators-accounts-hash-mismatch \
--only-known-rpc \
--rpc-port 8899 \
--rpc-bind-address 0.0.0.0 \
--private-rpc \
--full-rpc-api \
--no-poh-speed-test \
--wal-recovery-mode skip_any_corrupted_record \
--dynamic-port-range 10980-11000
# ExecReload=/bin/kill -s USR1 $MAINPID
ExecStop=/opt/solana-release/bin/solana-validator --ledger /data/solana exit -m