java源码示例,bitcoin解析助记词(或私钥):
1.BIP44,P2PKH,xpub
即1开头的地址。
2.BIP49,P2SH-P2WPKH,ypub
即3开头的地址。
3.BIP84,P2WPKH,zpub
即bc1开头的地址。
网上代码大都只能正常获取1开头和bc1开头的地址,但3开头的地址大部分参考算法都是错的。
这个示例是跟tokenpocket和imtoken对比过都一致的。
posted @
2021-12-13 17:32 方伟的博客 阅读(590) |
评论 (0) |
编辑 收藏
1.服务器
需要300G SSD(建议NVMe)硬盘,最好是裸硬盘,不建议用机械盘。
2.带宽
建议国外服务器,10M以上,不需要cn2线路
3.操作系统
建议centos7/8,或ubuntu,这里均以centos为例
4.准备环境:
yum update -y
yum install screen iftop iotop -y
4.1.安装golang
yum install golang -y
或编译安装
*注意:如果使用的 Go 版本是 1.13 及以上 (推荐),如果不设置以下命令编译源码时可能会出错
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
5.创建一个screen
screen -S heco
*注意1:最后退出时用ctrl+ad(顺序按a和d字母即可),不要用exit或ctrl+d退出会话。
*注意2:退出会话后,可以用screen -x heco重新连接到会话。
6.安装heco客户端
#这里我的数据目录,可以根据需要自行更改
mkdir -p /data/heco/data
#下载最新版本并编译
cd /root
wget -O heco-chain-1.2.1.tar.gz https://github.com/stars-labs/heco-chain/archive/refs/tags/v1.2.1.tar.gz
tar -xvf heco-chain-1.2.1.tar.gz
rm -fr heco-chain-1.2.1.tar.gz
cd heco-chain-1.2.1
make all
7.检查安装是否成功
/root/heco-chain-1.2.1/build/bin/geth console
8.设置防火墙
firewall-cmd --permanent --zone=public --add-port=32668/tcp
firewall-cmd --permanent --zone=public --add-port=8545/tcp
firewall-cmd --reload
不懂防火墙配置的,可以先禁用防火墙,关于firewalld的使用技巧,之后会单独写一篇教程
9.启动节点
ulimit -n 65535
/root/heco-chain-1.2.1/build/bin/geth --datadir /data/heco/data --syncmode "fast" --cache=8096 --maxpeers 50 --http --http.addr=0.0.0.0 --http.port=8545 --http.api "web3,debug,personal,net,admin,eth" --http.corsdomain "*" --allow-insecure-unlock
*然后按ctrl+ad回到主会话即可
10.测试验证
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8545
(如果已经追上最新高度,result会返回false)
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8545
(节点未同步完成可能会返回0)
11.停止节点
方式1:(建议,毕竟停止后还要启动不是)
screen -r heco
按ctrl+c,等待一会即可看到节点停止
12.接口文档参考(HECO的文档与以太坊基本相同)
RPC接口文档,如:
以太坊JSON RPC手册 / eth_call - 汇智网
其它参考:
HECO链github地址:GitHub - stars-labs/heco-chain: Huobi Eco Chain client based on the go-ethereum fork
主网浏览器:HecoInfo (HT) Blockchain Explorer
13.注意事项
*同步到最高区块所需时间:
需要看网络带宽和磁盘io性能,用NVMe的硬盘,读写1000到2000左右,100M的国外非cn2带宽,从0开始同步,大概需要小半天左右。
*如果2天还没有追上,或者最后100个块始终追不上,极有可能是服务器磁盘io存在瓶颈,不建议用机械盘,不建议用虚拟机(磁盘不建议做虚拟化),否则io速度不够用。
*硬盘目前实际会占用211G左右。
*相比eth,bsc,heco的资源消耗和空间占用非常低,一般可以与eth节点部署在同一台,以节省成本。
posted @
2021-11-14 23:37 方伟的博客 阅读(934) |
评论 (0) |
编辑 收藏
前言:zilliqa开发用的RPC节点只需要启动个seed节点即可,非常方便,40多G空间,几十分钟就可以同步完,资源占用极小。否则如果部署full节点就不是这么简单了。
1.服务器
zilliqa的seed节点 需要100G SSD(建议NVMe)硬盘,实际数据占用40多G,docker占用1.3G多。cpu内存均不需要太高,4核8G足够。
2.带宽
建议国外服务器,10M以上,不需要cn2线路
3.操作系统
建议centos7/8,或ubuntu,这里均以centos为例
4.准备环境:
yum update -y
yum install screen iftop iotop -y
4.1.安装docker
略,不会的可以搜索或参考:
CentOS Docker 安装 | 菜鸟教程
5.创建一个screen
screen -S zil
*注意1:最后退出时用ctrl+ad(顺序按a和d字母即可),不要用exit或ctrl+d退出会话。
*注意2:退出会话后,可以用screen -x heco重新连接到会话。
6.docker模式安装
mkdir /root/seed
cd /root/seed
wget https://mainnet-join.zilliqa.com/seed-configuration.tar.gz
tar -xvf seed-configuration.tar.gz
7.设置防火墙
firewall-cmd --permanent --zone=public --add-port=33133/tcp
firewall-cmd --permanent --zone=public --add-port=4201/tcp
firewall-cmd --reload
不懂防火墙配置的,可以先禁用防火墙,关于firewalld的使用技巧,之后会单独写一篇教程
8.启动seed节点(docker模式)
cd /root/seed
sh /root/seed/launch_docker.sh
按提示输入,注意ip要填写下(尽量服务器本机具备ipv4的公网ip)
成功后,会提示:
Use 'docker ps' to check the status of the docker
Use 'docker stop zilliqa' to terminate the container
Use 'tail -f zilliqa-00001-log.txt' to see the runtime log
If you have successfully completed the above steps,
you should have a functioning seed node that exposes an RPC API on localhost:4201.
You may further check the logs at zilliqa-00001-log.txt.
注意,默认4201端口暂时没有打开,这里翻译为人话,就是必须等同步完所有区块数据,才会开放4201端口。
9.查看日志
tail -f /root/seed/zilliqa-00001-log.txt
tail -f /root/seed/py_download_incr_DB.log
这里可以看到下载的日志
10.测试验证
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"GetNetworkId","params":[],"id":1}' http://127.0.0.1:4201
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"GetBlockchainInfo","params":[],"id":1}' http://127.0.0.1:4201
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"GetLatestDsBlock","params":[],"id":1}' http://127.0.0.1:4201
11.停止节点
docker stop zilliqa
注意,重启docker可能不会自动启动zilliqa的服务,可以通过:
docker exec -it zilliqa /bin/bash
进入docker的shell,执行:
ps -ef
查看是否有zilliqa的进程,如果重启服务器后,端口一直没有侦听,要注意下是否真的有启动起来zilliqa进程。
12.接口文档参考
RPC接口文档,如:
Introduction | Zilliqa Developer Portal
Introduction | Zilliqa Developer Portal
Introduction | Zilliqa Developer Portal
其它参考:
Zilliqa链github地址:
GitHub - Zilliqa/Zilliqa: Zilliqa is the world's first high-throughput public blockchain platform - designed to scale to thousands of transactions per second.主网浏览器:
https://viewblock.io/zilliqa
https://devex.zilliqa.com/
https://explorer.zilliqa.com/
ZilLab Explorer -- Mainnet
13.注意事项
*同步到最高区块大概最快20分钟左右。
*相比来说,seed节点的资源和空间消耗非常低,一般可以与eth等节点部署在同一台,以节省成本。
posted @
2021-11-14 23:37 方伟的博客 阅读(243) |
评论 (0) |
编辑 收藏
1.服务器
需要1T NVMe 硬盘,最好是裸硬盘,云盘io性能太差,建议物理机(裸金属主机)+本地SSD。
2.带宽
越高越好,建议国外服务器,1G带宽不限流量
3.操作系统
建议centos7/8,或ubuntu,这里均以centos为例
4.准备环境:
yum update -y
yum install screen iftop iotop -y
5.创建一个screen
screen -S btc
*注意1:最后退出时用ctrl+ad(顺序按a和d字母即可),绝对不要用exit或ctrl+d退出会话。
*注意2:退出会话后,可以用screen -r btc重新连接到会话。这样可以保持在shell下运行,网络中断不会影响。
6.安装bitcoin客户端
#这里我的数据目录,可以根据需要自行更改
mkdir -p /data1/btc/data
#下载最新版本,今天的最新版本是22.0
cd /root
wget -O bitcoin-22.0.tar.gz https://bitcoincore.org/bin/bitcoin-core-22.0/bitcoin-22.0-x86_64-linux-gnu.tar.gz
tar -zxvf bitcoin-22.0.tar.gz
7.编辑并上传配置文件:/data1/btc/bitcoin.conf
datadir=/data1/btc/data
wallet=btc20211107 #随便取个名字,其实用不到这个
testnet=0 # 0 - 主网 1 - 测试网
regtest=0 # 是否以私有链模式运行:0 - 否 1 - 是
#gen=0 # 设置 gen=1 以尝试比特币挖矿
#daemon=1 # 后台执行
#proxy=127.0.0.1:9050 # 是否使用socks5代理,默认关闭
#bind=<addr> # 注释此行,表示使用默认监听地址
#whitebind=<addr>
#addnode=69.164.218.197 # 可添加多个
#addnode=10.0.0.2:8333
#connect=69.164.218.197
#listen=1
#maxconnections=10 #入站/出站最大连接数
server=1 # 是否启动JSON-RPC接口: 0 - 不启动 1 - 启动
txindex=1
rpcbind=0.0.0.0
rpcport=8432 #端口可以自行修改
rpcuser=admin #用户名自行修改
rpcpassword=123456 #密码自行修改,但最好不要有特殊字符,像@
rpcallowip=0.0.0.0/0 #可以添加多个
#rpcallowip=0.0.0.0/0 #可以添加多个
#rpcallowip=192.168.0.0/16
#rpcconnect=127.0.0.1
#txconfirmtarget=6 #交易最小确认数,默认值:6
#paytxfee=0.000x #paytxfee:每次发送比特币时的交易费
#txconfirmtarget=n
#paytxfee=0.000x
#keypool=100
#prune=550
#min=1 #是否启动后最小化
#minimizetotray=1 #是否最小化到系统托盘
8.设置防火墙
firewall-cmd --permanent --zone=public --add-port=8432/tcp
firewall-cmd --permanent --zone=public --add-port=8433/tcp
firewall-cmd --reload
不懂防火墙配置的,可以直接先禁用防火墙,关于firewalld的使用技巧,之后会单独写一篇教程
9.启动客户端
ulimit -n 65535
cd /root/bitcoin-22.0
/root/bitcoin-22.0/bin/bitcoind -port=8433 -conf=/data1/btc/bitcoin.conf
*然后按ctrl+ad回到主会话即可
10.测试验证(以下列出几种方式,可以看自己喜好)
curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id": "1", "method": "getindexinfo", "params": []}' -H 'content-type: text/plain;' http://127.0.0.1:8432/
或
curl --data-binary '{"jsonrpc":"1.0","id":"1","method":"getindexinfo","params":[]}' -H 'content-type:text/plain;' http://admin:123456@127.0.0.1:8432/
或:
/root/bitcoin-22.0/bin/bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=admin -rpcpassword=123456 -rpcport=8432 getindexinfo
11.停止节点
方式1:(建议,毕竟停止后还要启动不是)
screen -r btc
按ctrl+c,等待一会即可看到节点停止
方式2:
任意会话中输入命令:
/root/bitcoin-22.0/bin/bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=admin -rpcpassword=123456 -rpcport=8432 stop
12.接口文档参考
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
https://developer.bitcoin.org/reference/rpc/index.html
太多了,大家可以搜下,网上有很多
13.注意事项
同步到最高区块所需时间:
需要看网络带宽和磁盘io性能,我用NVMe的裸盘,读写1500到2000左右,1G的国外带宽,大概同步几个小时即可(没有具体去算,应该5、6个小时,最高不到12个小时)。
带宽最高使用到100MB/s左右。
如果花了一天以上没有同步到最新,有可能是服务器存在瓶颈,还是建议用国外物理机,10M带宽基本上不怎么够用,建议至少100M的带宽,不需要cn2线路,成本并不高。
posted @
2021-11-14 23:36 方伟的博客 阅读(946) |
评论 (0) |
编辑 收藏
1.服务器
需要3T(建议4T) NVMe 硬盘,最好是裸硬盘,云盘io性能太差,建议物理机(裸金属主机)+本地SSD。
*注意,bsc节点对硬件要求是我见过的所有链中最高的,强烈建议独立使用一台高配置服务器。
2.带宽
越高越好,建议国外服务器,1G带宽不限流量
3.操作系统
建议centos7/8,或ubuntu,这里均以centos为例
4.准备环境:
yum update -y
yum install screen iftop iotop -y
4.1.安装golang
yum install golang -y
或编译安装:
cd /root/
wget https://storage.googleapis.com/golang/go1.4-bootstrap-20170531.tar.gz
tar zxvf go1.4-bootstrap-20170531.tar.gz
cd /root/go/src/
./all.bash
5.创建一个screen
screen -S bsc
*注意1:最后退出时用ctrl+ad(顺序按a和d字母即可),绝对不要用exit或ctrl+d退出会话。
*注意2:退出会话后,可以用screen -r bsc重新连接到会话。这样可以保持在shell下运行,网络中断不会影响。
6.安装bsc客户端
#这里我的数据目录,可以根据需要自行更改
mkdir -p /data/bsc/data
#下载最新版本
cd /root
wget -O binance-chain-v1.1.4.tar.gz https://github.com/binance-chain/bsc/archive/refs/tags/v1.1.4.tar.gz
tar -xvf binance-chain-v1.1.4.tar.gz
rm -fr binance-chain-v1.1.4.tar.gz
编译:
cd /root/bsc-1.1.4
make all
6.1.检查安装是否成功
/root/bsc-1.1.4/build/bin/geth version
7.编辑并上传配置文件:
bsc-mainnet配置文件.zip-以太坊文档类资源-CSDN下载
config.toml和genesis.json两个文件放到/data/bsc/目录下。(该目录可以自行修改)
8.设置防火墙
firewall-cmd --permanent --zone=public --add-port=30311/tcp
firewall-cmd --permanent --zone=public --add-port=8575/tcp
firewall-cmd --permanent --zone=public --add-port=8576/tcp
firewall-cmd --reload
不懂防火墙配置的,可以先禁用防火墙,关于firewalld的使用技巧,之后会单独写一篇教程
9.1.下载最新的snapshot数据,以加快同步实际
#最新snapshots参加:https://github.com/binance-chain/bsc-snapshots
cd /data/bsc/data
wget -O geth.tar.gz 'https://s3.ap-northeast-1.amazonaws.com/dex-bin.bnbstatic.com/geth-20211031.tar.gz?AWSAccessKeyId=AKIAYINE6SBQPUZDDRRO&Signature=ESK5xmr5f1AIK4Mr6our%2FALXzQk%3D&Expires=1638310885'
tar zxvf geth.tar.gz
*这里要下载很久,所以带宽要尽可能高。
*解压后,注意目录结构可能要调整下,保持chaindata和keystore那一级目录直接在/data/bsc/data/目录下,如果不在的话,自己mv到那个目录下。
9.2.启动客户端
#先init,很多人没有执行这一步,导致下面启动节点同步出错
/root/bsc-1.1.4/build/bin/geth --datadir /data/bsc/data --config /data/bsc/config.toml --syncmode "fast" --cache=10240 init /data/bsc/genesis.json
#启动节点(上面的init只要执行一次,之后启动节点不要再执行了)
ulimit -n 65535
/root/bsc-1.1.4/build/bin/geth --datadir /data/bsc/data --config /data/bsc/config.toml --syncmode "fast" --cache=8192 --rpc.allow-unprotected-txs --txlookuplimit 0 --allow-insecure-unlock
*然后按ctrl+ad回到主会话即可
10.测试验证
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8575
(如果已经追上最新高度,result会返回false)
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8575
11.停止节点
方式1:(建议,毕竟停止后还要启动不是)
screen -r bsc
按ctrl+c,等待一会即可看到节点停止
12.接口文档参考
RPC接口文档同eth文档,如:
以太坊JSON RPC手册 / eth_call - 汇智网
其它参考:
BSC链github地址:https://github.com/binance-chain/bsc
主网浏览器:https://bscscan.com/
主网链官方部署文档:https://docs.binance.org/smart-chain/developer/fullnode.html
私有链官方部署文档:https://docs.binance.org/smart-chain/developer/deploy/local.html
13.注意事项
*最大文件打开数必须修改,很多人遇到bsc客户端经常被kill,就是达到了最大文件打开数限制,导致被操作系统自动kill。
*同步到最高区块所需时间:
需要看网络带宽和磁盘io性能,我用NVMe的裸盘,读写1500到2000左右,1G的国外带宽,基于最新snapshot同步,大概需要3天左右。
*带宽需要100M,建议1G,磁盘io越高越好,如果5天还没有追上,或者高度经常落后,极有可能是服务器磁盘io存在瓶颈
*硬盘最好4T空间,否则区块数据都要1.9个T,如果只有2T空间根本不够用。
*虽然用snapshot+fast模式同步,但同步到最新高度后,依然会自动切换为full node模式,这是正常现象,不用疑惑,也不要删除重新同步。
*再次强调bsc非常耗资源,aws和阿里云的云盘性能根本不够,除非使用本地ssd才可以,而且bsc同步到最新高度后,对带宽的使用依然很高,建议网络不要按流量付费的,否则费用会高到无法承受。
*建议服务器先做io测试,可以用dd,或者安装个宝塔面板做跑分测试,磁盘读写低于500MB/s的就别安装了,建议1000MB/s以上,这个非常关键。
posted @
2021-11-14 23:36 方伟的博客 阅读(3973) |
评论 (0) |
编辑 收藏
1.服务器
需要1T SSD(建议NVMe)硬盘,最好是裸硬盘,不可以用机械盘,否则会永远无法同步完成。
2.带宽
建议国外服务器,100M非cn2线路即可
3.操作系统
建议centos7/8,或ubuntu,这里均以centos为例
4.准备环境:
yum update -y
yum install screen iftop iotop -y
4.1.安装golang
yum install golang -y
或编译安装
*注意:如果使用的 Go 版本是 1.13 及以上 (推荐),如果不设置以下命令编译ETH源码时可能会出错
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
5.创建一个screen
screen -S eth
*注意1:最后退出时用ctrl+ad(顺序按a和d字母即可),不要用exit或ctrl+d退出会话。
*注意2:退出会话后,可以用screen -x eth重新连接到会话。
6.安装eth客户端
#这里我的数据目录,可以根据需要自行更改
mkdir -p /data/eth/data
#下载最新版本并编译
cd /root
wget -O go-ethereum-1.10.12.tar.gz https://github.com/ethereum/go-ethereum/archive/refs/tags/v1.10.12.tar.gz
tar -xvf go-ethereum-1.10.12.tar.gz
cd /root/go-ethereum-1.10.12
make all
7.检查安装是否成功
/root/go-ethereum-1.10.12/build/bin/geth version
8.设置防火墙
firewall-cmd --permanent --zone=public --add-port=30303/tcp
firewall-cmd --permanent --zone=public --add-port=8545/tcp
firewall-cmd --reload
不懂防火墙配置的,可以先禁用防火墙,关于firewalld的使用技巧,之后会单独写一篇教程
9.启动节点
ulimit -n 65535
/root/go-ethereum-1.10.12/build/bin/geth --datadir /data/eth/data --syncmode "fast" --cache=2048 --maxpeers 200 --http --http.addr=0.0.0.0 --http.port=8545 --http.api "web3,eth,debug,personal,net,admin" --http.corsdomain "*" --allow-insecure-unlock
*然后按ctrl+ad回到主会话即可
10.测试验证
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8545
(如果已经追上最新高度,result会返回false,这样以后就不用受infura调用频率的限制了)
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8545
(节点未同步完成会返回0)
11.停止节点
方式1:(建议,毕竟停止后还要启动不是)
screen -r eth
按ctrl+c,等待一会即可看到节点停止
12.接口文档参考
RPC接口文档,如:
以太坊JSON RPC手册 / eth_call - 汇智网
其它参考:
ETH链github地址:https://github.com/ethereum/go-ethereum
主网浏览器:https://etherscan.io
13.注意事项
*同步到最高区块所需时间:
需要看网络带宽和磁盘io性能,用NVMe的硬盘,读写1000到2000左右,100M的国外非cn2带宽,从0开始同步,大概需要半天到一天。
*如果2、3天还没有追上,或者最后100个块始终追不上,极有可能是服务器磁盘io存在瓶颈,再次强调,不可以用机械盘,不建议用虚拟机(磁盘不能做虚拟化),否则io速度不够,就永远无法同步完成,因为最后还有一步需要很高的IO速度才可以完成。
*硬盘最好1T空间,目前实际会占用584G左右。
posted @
2021-11-14 23:36 方伟的博客 阅读(2298) |
评论 (0) |
编辑 收藏
yum install centos-release-scl -y
yum install llvm-toolset-7 -y
scl enable llvm-toolset-7 bash
clang --version
这样就可以安装最新版本了,记得旧的先删除
posted @
2021-11-14 23:35 方伟的博客 阅读(258) |
评论 (0) |
编辑 收藏
编辑/etc/sysctl.conf:
vi /etc/sysctl.conf
增加如下两行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
:wq保存退出后,执行
sysctl -p
将立即生效。
posted @
2021-11-14 23:35 方伟的博客 阅读(61) |
评论 (0) |
编辑 收藏
curl --silent --location https://rpm.nodesource.com/setup_14.x | bash -
yum update -y
yum remove nodejs npm -y
yum install nodejs npm -y
这样就可以安装到14的版本了,需要什么版本可以自己指定。
posted @
2021-11-14 23:33 方伟的博客 阅读(378) |
评论 (0) |
编辑 收藏