文章目錄
- 前言
- 一,為什么用到私有鏈
- 二,需要安裝的開源工具和語言
- 三,建立私鏈
- 初始化創世紀節點,并設定data目錄
- 創建創世區塊組態檔genesis.json檔案
- 通過genesis.json初始化創世紀節點,并設定data目錄:
- 使用geth加載
- web3.js常用操作命令
- 獲取當前所有賬戶
- 創建賬戶
- 挖礦
- 賬戶劃轉
- 查看當前待辦
- 下一篇文章 02.私有以太坊網路部署智能合約
前言
作業系統:MacBook Pro (16-inch, 2019)
Geth Version: 1.10.8-stable
一,為什么用到私有鏈
在以太坊的公有鏈上部署智能合約,發起交易需要花費以太幣,而通過修改配置,可以在本機搭建一套以太坊私有鏈,因為與公有鏈沒關系,即不同步公有鏈龐大的資料,也不用花錢購買以太幣,很好地滿足了智能合約開發和測驗的要求,開發好的智能合約也可以很容易地切換介面部署到以太坊公有鏈上,
二,需要安裝的開源工具和語言
-
- install Go compiler
brew install go
- 2.Ethereum節點安裝
brew tap ethereum/ethereum
brew install ethereum
-
- solidit以太坊智能合約語言
brew install solidity
三,建立私鏈
初始化創世紀節點,并設定data目錄
創建創世區塊組態檔genesis.json檔案
genesis.json 是Geth 工具用來創建創世區塊以及區塊鏈的組態檔,genesis.json 并不是創世區塊本身
{
"config": {
"chainId": 666,
"homesteadBlock": 0,
"eip150Block": 0,
"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"ethash": {}
},
"nonce": "0x0",
"timestamp": "0x5ddf8f3e",
"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x47b760",
"difficulty": "0x00002",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"alloc": { },
"number": "0x0",
"gasUsed": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
通過genesis.json初始化創世紀節點,并設定data目錄:
geth init "/Users/jingbao/IdeaProjects/smart-contract/privateDemo/genesis.json" --datadir "/Users/jingbao/IdeaProjects/smart-contract/privateDemo/data2"
/Users/jingbao/IdeaProjects/smart-contract/privateDemo/genesis.json 這是我存放genesis.json,別忘了更換你的地址
使用geth加載
geth --datadir "/Users/jingbao/IdeaProjects/smart-contract/privateDemo/data2" --ws --ws.api "eth,web3,miner,admin,personal,net,txpool" --ws.origins "*" --rpc --rpcapi "eth,web3,miner,admin,personal,net,txpool" --rpcport "8545" --rpccorsdomain "*" --nodiscover --networkid 15 --allow-insecure-unlock --ipcpath ~/Library/Ethereum/geth.ipc
摘要其中幾個引數講解:
- –identity :指定節點ID;
- –rpc :表示開啟HTTP-RPC服務;
- –rpcaddr :HTTP-RPC服務ip地址;
- –rpcport :指定HTTP-RPC服務監聽埠號(默認8545);
- –datal :指定區塊鏈資料的儲存位置;
- –port :指定和其他節點連接所用的埠號(默認為30303);
- –nodiscover :關閉節點發現機制,防止加入有同樣初始配種的陌生節點;
具體看官方檔案
命令是以服務的形式持續運行的,需要再打開一個命令列視窗,輸入
geth attach rpc:~/Library/Ethereum/geth.ipc
這是一個互動式的JavaScript執行環境,在這里面可以執行JavaScript代碼,其中>是命令提示符,在這個環境里也內置里一些用來操作以太坊的JavaScript物件,可以直接使用這些物件,這些物件主要包括:
web3.js常用操作命令
web3.js 中文檔案
獲取當前所有賬戶
> eth.accounts
["0x88d2a3c6575dc35e9014fd13f530dd326b254399", "0xa22be3a54be02c0a57bc23af3295099a0a06e2ab", "0xdd482f7cc5a3ced6a29bed498309f4d0ebad39f4"]
或者
> personal.listAccounts
["0x88d2a3c6575dc35e9014fd13f530dd326b254399", "0xa22be3a54be02c0a57bc23af3295099a0a06e2ab", "0xdd482f7cc5a3ced6a29bed498309f4d0ebad39f4"]
創建賬戶
personal.newAccount("my pasword")
- 查看余額
eth.getBalance(eth.accounts[0])
等價于
eth.getBalance("0x88d2a3c6575dc35e9014fd13f530dd326b254399")
挖礦
- 挖礦
開始挖礦
miner.start();
停止挖礦
miner.stop();
賬戶劃轉
- 解鎖賬戶
personal.unlockAccount(eth.accounts[0])
輸入密碼按回車即可
- ether轉換成wei
amount = web3.toWei(1,"ether")
eth.sendTransaction({from:personal.listAccounts[0],to:personal.listAccounts[1],value:amount})
查看當前待辦
txpool.status
或
eth.getBlock("pending")
下一篇文章 02.私有以太坊網路部署智能合約
第二章:私有以太坊網路部署智能合約
點贊關注訂閱持續更新
點擊關注訂閱持續更新
點擊關注訂閱持續更新
有問題或文章有需要改正的地方請留言
或 pwn2ownyearn@gmail.com 郵箱
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/300534.html
標籤:區塊鏈
上一篇:二.私有以太坊網路部署智能合約
下一篇:BTB和以太坊
