一、环境搭建
1.安装Geth
方法一:官网下载最新版本
https://geth.ethereum.org/downloads/
方法二:git下载官方源码编译安装
略
二、搭建私有网络
1.创建创世区块配置文件 ?Geth需要使用genesis.json文件生成创世区块,同时需要提供保存区块数据和账户私钥(keystore)的目录。
mkdir myeth
cd myeth
vim genesis.json
{
"config": {
"chainId": 22,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0,
"eip150Block": 0
},
"alloc": {},
"coinbase": "0x0000000000000000000000000000000000000000",
"difficulty" : "0x400",
"extraData": "",
"gasLimit": "0x2fefd8",
"nonce": "0x0000000000000032",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x00"
}
?在不同的网络上,chain ID不同:
- chain ID:1 主网公链
- chain ID:2 Morden网络(仅对部分人开放)
- chain ID:3 Ropsten网络
- chain ID:4 Rinkeby网络
- chain ID 大于4的是私有网络
文章图片
2.网络初始化 输入geth init命令、genesis.json文件、存储区块数据和keystore的文件夹,进行初始化。
geth --identity mytest --datadir /www/ethereum/eth/test init /www/ethereum/genesis.json
注:路径需要换成你自己的路径
3.搭建节点运行的环境
geth --datadir "/www/ethereum/eth/test" --rpc --rpcapi "eth,web3,miner,admin,personal,net" --rpcaddr "127.0.0.1" --rpccorsdomain "*" --nodiscover --networkid 15
常用参数选项含义如下:
–identity:指定节点 ID,方便在一大群节点中识别出自己的节点;
–rpc:表示开启 HTTP-RPC 服务;
–rpcport:指定 HTTP-RPC 服务监听端口号(默认为 8545);
–rpcaddr:指定IP地址;
–rpcapi “eth,web3,miner,admin,personal,net” :这个命令指示了允许通过RPC访问的命令。默认情况下,Geth允许web3。
–datadir:指定区块链数据的存储位置;
–port:指定和其他节点连接所用的端口号(默认为 30303);
–nodiscover:关闭节点发现机制,防止加入有同样初始配置的陌生节点;
–maxpeers 0 如果你不想有人连上你的测试链,就用maxpeers 0。或者,你可以调整参数,当你确切的知道有几个节点要连接上来的时候。
enode的信息是节点在网络上的身份标志。如果其他节点准备加入这个网络中,就需要提供自己的enode值。
??RPC访问可以通过http://127.0.0.1:8545或http://localhost:8545,IPC访问可以通过**\.\pipe\geth.ipc**命令。
??命令是以服务的形式持续运行的,需要再打开一个命令行窗口,输入
Geth attach rpc:http://localhost:8545
【以太坊节点搭建和启动】?这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码,其中 > 是命令提示符。在这个环境里也内置了一些用来操作以太坊的 JavaScript 对象,可以直接使用这些对象。这些对象主要包括:
eth:包含一些跟操作区块链相关的方法;
net:包含一些查看p2p网络状态的方法;
admin:包含一些与管理节点相关的方法;
miner:包含启动和停止挖矿的一些方法;
personal:主要包含一些管理账户的方法;
txpool:包含一些查看交易内存池的方法;
web3:包含了以上对象,还包含一些单位换算的方法。
进入以太坊 Javascript Console 后,就可以使用里面的内置对象做一些操作,这些内置对象提供的功能很丰富,比如查看区块和交易、创建账户、挖矿、发送交易、部署智能合约等。
??常用命令:
personal.newAccount():创建账户;
personal.unlockAccount():解锁账户;
eth.accounts:枚举系统中的账户;
eth.getBalance():查看账户余额,返回值的单位是 Wei(Wei 是以太坊中最小货币面额单位,类似比特币中的聪,1 ether = 10^18 Wei);
eth.blockNumber:列出区块总数;
eth.getTransaction():获取交易;
eth.getBlock():获取区块;
miner.start():开始挖矿;
miner.stop():停止挖矿;
web3.fromWei():Wei 换算成以太币;
web3.toWei():以太币换算成 Wei;
txpool.status:交易池中的状态;
admin.addPeer():连接到其他节点;
推荐阅读
- 推动NFT走出监管困境,BSN推出支持NFT基础设施网络
- 腾讯|SaaS的收入模型有哪些(终于有人讲明白了)
- 就业方向上什么才是最重要的(--- 来自程序猿的迷茫。(C++?Java?or算法?))
- 区块链中加密货币的含义
- 波场万倍潜力币HYL23号21:09分 正式上线JustSwap
- 《瀚兰房地产开发区块链应用及案例分享》BSN培训精华回顾
- 对联盟链而言,跨链协议为什么重要()
- 区块链能够应用在哪些行业
- BSN区块链服务网络中密钥托管模式和公钥上传模式有啥区别()
- 币圈人物传|币圈大佬今何在 唯有一诺正当时