搭建节点

EcoBall区块链有两类节点,一种是GPoW节点,采用显卡挖矿,用于产生区块头;一种是XPoS节点,采用验证人机制,验证交易,构造区块体,并产生区块。两类节点都有各自独立的软件系统,需要独立安装

搭建GPoW节点

GPoW节点软件是一个跨平台的命令行程序,计划支持linux,macos,windows这三大操作系统平台。三大平台的安装部署方法基本相同。目前暂时只支持Linux系统。

EcoBall区块链测试的节点软件和挖矿软件已经放出来了,github地址在这里

目前主要是节点软件EcoBall-rust和Gpu挖矿软件,对应的二进制文件链接如下:

EcoBall-rust

gpowminer

(注:EcoBall节点软件以前曾经用go语言写过的,有一个EcoBall项目在github上面,后来用rust语言重写了,所以项目名称后面加rust标识。)

windows 10 环境下测试

目前只有linux版本的节点程序,如果用户没有linux的电脑,需要在windows下进行测试的话,必须在windows上安装Linux运行环境,这里推荐windows10操作系统,因为原生支持Linux子系统,可以直接在windows10上玩Linux,不需要单独安装虚拟机之类的软件了。

用户可以先在windows10上找到Microsoft Store应用商店,然后在应用商店里面搜索linux,会出现很多版本,推荐Ubuntu 20.04 LTS这个版本。如果安装好了Linux系统,后面所有的操作就一致了。

挖矿节点软件下载

首先在linux系统里面建立一个文件夹ecoball,作为ecoball区块链系统的工作目录,并进入该文件夹。

mkdir ecoball

cd ecoball

下载节点软件:

wget https://github.com/EcoBallTech/EcoBall-rust/releases/download/v0.9.9/ecoball-v0.9.9-linux-x64

下载挖矿软件:

wget https://github.com/EcoBallTech/gpowminer/releases/download/v0.9.9/gpowminer-v0.9.9-cpu-linux-x64

视网络情况,可能需要几分钟时间。建议下载完毕后,将文件名改短一些,便于后面敲命令方便一些。

mv ecoball-v0.9.9-linux-x64 ecoball

mv gpowminer-v0.9.9-cpu-linux-x64 gpowminer

下载下来的软件通常不具备可执行权限,所以需要给文件授权。

chmod +x ecoball

chmod +x gpowminer

启动节点程序

  • 创建钱包

先创建一个钱包,用于接收产出的币:

./ecoball --chain=testnet account new

出现输入密码提示符,两次输入钱包密码,生成钱包地址,例如下面是我生成的钱包地址:

0x01c9a1515ae1d0df16e30f48ab5cbddcfd9413d4

钱包地址和密码要记录下来,保存好,以后会经常要用到。

  • 运行节点软件

执行如下命令,进入控制台,可以观察到界面字符滚动:

./ecoball --chain=testnet --author=0x01c9a1515ae1d0df16e30f48ab5cbddcfd9413d4 --stratum

或者启动节点软件到后台运行,并且输出日志到日志文件,不会因为控制台关闭或者断开连接而关闭:

nohup ./ecoball --chain=testnet --author=0x01c9a1515ae1d0df16e30f48ab5cbddcfd9413d4 --stratum >ecoball.log 2>&1 &

如果需要监控实时日志,可以运行下面命令

tail -f ecoball.log

这里的author是接收币的地址,如果要启动挖矿,必须指定一个收币地址,否则就白挖了。上面地址是我创建的一个钱包地址,大家可以创建自己的钱包,然后改为自己的钱包地址,为自己挖矿。

启动挖矿程序

启动挖矿程序,挖矿程序必须连接节点程序,执行下面命令行启动,进入控制台,可以观察到界面滚动:

./gpowminer --cpu -P stratum+tcp://127.0.0.1:8008

或者启动挖矿程序到后台运行,并且输出日志到日志文件,不会因为控制台关闭或断开连接而关闭:

nohup ./gpowminer --cpu -P stratum+tcp://127.0.0.1:8008 > gpowminer.log 2>&1 &

如果需要监控实时日志,可以运行下面命令:

tail -f gpowminer.log

这里的tcp://127.0.0.1:8008就是节点程序的地址和端口。

基本命令测试

基本命名测试需要curl这个工具,一般Linux系统都自带。

如果是在本地节点机器上测试,节点对外提供服务的地址和端口为:http://127.0.0.1:8545。

如果部署到公网,并且进行了域名解析,则可以通过域名访问,例如http://api.ecoball.org:8545。

下面每个命令第一行是请求执行,第二行是返回响应。

web3_clientVersion

返回客户端版本号。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}'

{"jsonrpc":"2.0","result":"EcoBall//v0.9.9-unstable/x86_64-linux-gnu/rustc1.52.1","id":67}

web3_sha3

返回给定值的Keccak-256。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"web3_sha3","params":["0x68656c6c6f20776f726c64"],"id":64}'

{"jsonrpc":"2.0","result":"0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad","id":64}

net_version

返回当前网络ID。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"net_version","params":[],"id":67}'

{"jsonrpc":"2.0","result":"100","id":67}

net_listening

返回客户端侦听网络连接状态。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"net_listening","params":[],"id":67}'

{"jsonrpc":"2.0","result":true,"id":67}

net_peerCount

返回当前连上客户端的节点数。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}'

{"jsonrpc":"2.0","result":"0x1","id":74}

eth_protocolVersion

返回当前以太坊的协议版本号。由于ecoball兼容以太坊,通过协议版本号可以了解dapp是否适用迁移。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"eth_protocolVersion","params":[],"id":67}'

{"jsonrpc":"2.0","result":"65","id":67}

eth_syncing

返回当前的同步状态。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}'

{"jsonrpc":"2.0","result":false,"id":1}

eth_coinbase

返回当前节点的coinbase地址。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":64}'

{"jsonrpc":"2.0","result":"0x01c9a1515ae1d0df16e30f48ab5cbddcfd9413d4","id":64}

eth_mining

返回当前节点的挖矿状态。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"eth_mining","params":[],"id":71}'

{"jsonrpc":"2.0","result":true,"id":71}

eth_hashrate

返回当前节点的挖矿哈希率。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"eth_hashrate","params":[],"id":71}'

{"jsonrpc":"2.0","result":"0x0","id":71}

eth_gasPrice

返回当前的gas价格。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":71}'

{"jsonrpc":"2.0","result":"0x0","id":71}

eth_accounts

返回当前节点的钱包地址。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":71}'

{"jsonrpc":"2.0","result":["0x01c9a1515ae1d0df16e30f48ab5cbddcfd9413d4"],"id":71}

eth_blockNumber

返回当前最新的区块号。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":71}'

{"jsonrpc":"2.0","result":"0xfaf","id":71}

eth_getBalance

返回给定钱包地址的余额。

curl -H "Content-Type: application/json" -X POST http://127.0.0.1:8545 --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x01c9a1515ae1d0df16e30f48ab5cbddcfd9413d4", "latest"],"id":1}'

{"jsonrpc":"2.0","result":"0xbcec172badbc540000","id":1}

返回json对象里面,result就是钱包地址对应的余额,16进制数,可以转为10进制,然后除以10的18次方,就得到eco的数量。

搭建XPoS验证节点

XPoS节点软件下载

XPoS节点软件下载地址

XPoS节点软件部署

节点软件部署命令和步骤。

XPoS节点软件配置

节点软件配置及相关配置说明。

XPoS节点软件运行

节点软件运行及相关注意事项。

results matching ""

    No results matching ""