本教程将在ubuntu机器上设置Geth私有以太坊区块链,并将网络连接到Remix。本教程只设置1节点私有以太坊区块链。可以使用引导节点(本教程中没有包含)创建多节点私有区块链。
Geth是什么?
Geth是以太坊网络上运行节点的最流行的独立CLI客户端之一。使用Geth,就可以加入以太坊网络,在账户之间转移以太。
Geth以太坊专用网络设置:
首先,我们需要安装geth包。
登录到ubuntu机器,按照下面的说明安装以太坊geth包。
命令:
Sudo apt-get install software-properties-common Sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install Ethereum
检查geth的版本。
创建一个目录,命名为“node”。它将包含所有的文件和数据目录。
现在geth已经安装完毕,让我们为以太坊区块链网络创建账号。我正在创建两个帐户。那次可以创建任意多个。
在geth中创建帐户:geth — datadiraccount new
它会提示输入密码,然后它会创建带有公共地址和其他详细信息的帐户。把公共地址放在一边。
帐户创建
帐户的公共地址
现在我们有了帐户,让我们创建一个创世文件。创世文件包含创世区块的详细信息,定义区块链的初始状态。它可以看成是区块链的高度0。
如果已经有一个创世文件,就可以导入它,或者可以使用puppeth (一个以太坊私有网络管理器) 创建一个新的创世文件。
当你运行“puppeth”时,它会启动一个CLI向导。要创建一个创世区块,你需要以下细节:
网络名称
Conesus算法。目前,puppeth只支持两种共识算法,即Ethash(PoW)和Clique(PoA)。
Sealer 帐户——可以提到一个或多个帐户。
预支基金帐户
网络ID
在这里,我们为PoW(proof of work-Clique)共识算法创建了创世文件。一旦导出了创世配置,它将在' node '目录中创建文件。
'blockchain.json' 是我们将用来设置私有geth区块链网络的创世文件。
我们的创世文件已经准备好了,让我们初始化创世文件。
命令:geth - datadir node/ init node/blockchain.json
如果创世文件有任何问题,此命令将引发错误。
为上面创建的帐户创建一个密码文件;这样我们就不需要在进行交易时显式解锁账户。
最后一步,让我们使用以下命令启动 geth 区块链:
Command: geth — networkid 1234 — datadir node/ — port 30303 — ipcdisable — syncmode full — http — http.addr 0.0.0.0 — http.api admin,eth,miner,net,txpool,personal,web3 — allow-insecure-unlock — http.corsdomain “” — http.vhosts “” — http.port 8545 — unlock
0xd6b336300929C00d38c5874aa821C134F4d8a255,0x1aDC2f0BD5CcA05FFEBe4704aeA103dB0D6590F7 — mine console — password node/password.txt
现在geth私有以太坊区块链网络正在工作,可以在控制台看到详细信息:
eth.accounts →这将显示帐户可用的列表(2)。
admin.nodeInfo→这将显示节点的详细信息。
交易等功能的详细终端命令请参考geth官网:https://geth.ethereum.org/docs/getting-started
连接Geth 私有区块链到REMIX
下一步是连接geth以太坊私有区块链到Remix。
Remix是什么? Remix是一个基于web的以太坊IDE。它允许像区块链一样为以太坊开发、部署和管理智能合约。
以http模式打开REMIX。
在“部署和运行交易”部分,环境选择“Web3 Provider”。输入私网区块链的IP地址。: http://localhost: 8545
设置环境之后,应该能够看到特定连接的帐户。
已经成功使用Geth创建了以太坊私有网络。
Source:https://medium.com/coinmonks/setup-geth-ethereum-private-network-3806ef7fbe42