linux cenos 7 ETH私服構築ソースコードコンパイル方式

24519 ワード

linux cenos 7 ETH私服構築ソースコードコンパイル方式
1、必要な基礎ツールをインストールする
このうちgit cmake nodejs gcc-c++は必須である.
yum install git
yum install wget
yum install bzip2 
yum install vim
yum install gcc-c++
yum install nodejs
yum install cmake 

2、Goをインストールする
私の下のGOバージョンは1.13で、他のバージョンに問題があるかもしれません.
wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz
echo 'export GOROOT=/usr/local/go' >> /etc/profile
echo 'export PATH=$PATH:$GOROOT/bin' >> /etc/profile
echo 'export GOPATH=/root/go' >> /etc/profile
echo 'export PATH=$PATH:$GOPATH/bin' >> /etc/profile
source /etc/profile


検証#ケンショウ#
$ go version
go version go1.13 linux/amd64

3、クローンコンパイルプロジェクトgo-ethereum
make allの場合はエラーが発生する可能性がありますので、バージョンに注意してください.go言語バージョンは1.10以上、1.13バージョンが望ましい
cd /usr/local
git clone https://github.com/ethereum/go-ethereum.git
cd go-ethereum
make geth

pathにgethパスを追加する
echo 'export PATH=$PATH:/usr/local/go-ethereum/build/bin' >> /etc/profile
source /etc/profile

検証#ケンショウ#
geth version
INFO [08-16|10:12:12.117] Bumping default cache on mainnet         provided=1024 updated=4096
Geth
Version: 1.9.10-unstable
Git Commit: 0218d7001d2a566b35072ee21b9f84f6b2711bbe
Git Commit Date: 20200108
Architecture: amd64
Protocol Versions: [64 63]
Go Version: go1.13
Operating System: linux
GOPATH=/home/go
GOROOT=/usr/local/go


インストールに成功しました
4、同期イーサー坊ブロック(プライベートチェーンとパブリックチェーン)
ETH    
         ,         。

 .  (   )
1.     
mkdir /eth/app1
cd /eth/app1
vim /eth/app1/pass.txt
    password
  
2.    
geth --datadir=/eth/app1/node --password /eth/app1/pass.txt account new > /eth/app1/account.txt

3.  genesis.json 
vim /eth/app1/genesis.json
	{ "config": { "chainId": 520, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "alloc" : {"    (       account.txt             0x)":{"balance": "0x700000000000000000"}}, "coinbase" : "    (     )", "difficulty" : "0x400", "extraData" : "", "gasLimit" : "0x2fefd8", "nonce" : "0x0000000000000038", "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp" : "0x00" }
  

4.      
geth --datadir "/eth/app1/node" init /opt/eth/app1/genesis.json

5.      
vim /eth/app1/start.sh
	nohup geth  --networkid 520 --syncmode fast  --cache=4096 --datadir /eth/app/node --rpc --rpcapi "db,eth,net,web3,personal,admin,miner --rpcport 8546 --port 30303 --rpcaddr "0.0.0.0" --ipcpath /eth/app/node/geth.ipc  > output.log 2>&1 &
  

6.   
chmod 700 /eth/app1/start.sh
7.  
./eth/app1/start.sh



----------------------------

 .    
nohup geth  --datadir /eth/app/node --rpc --rpcapi db,eth,net,web3,personal,admin,miner --rpcport 8545 --port 30303 --rpcaddr 0.0.0.0  --ipcpath /eth/app/node/geth.ipc > output.log 2>&1 &


5、gethコンソールに入る(ethに接続する)
geth attach ipc:/eth/app/node/geth.ipc
  :8545 30303

6.ブロック同期進捗の表示
> eth.syncing
{
  currentBlock: 4374446
  highestBlock: 4374446
  knownState: 1444
  pulledState: 1443
  startingBlock: 4374446
}

  eth.syncing    false,         !              。

7、口座の作成
ここでpasswordはパスワードで、任意に変更します
personal.newAccount('password')
"0x1437ed0a0cc73d3eba2d7fe2008d3cd960afadeb"

8、口座残高の表示
 eth.getBalance('0x1437ed0a0cc73d3eba2d7fe2008d3cd960afadeb')

よくある質問
1. Error: authentication needed: password or unlock undefined
WARN [01-12|18:33:38.691] Served eth_signTransaction               conn=82.196.0.91:59925    reqid=462 t=18.504µs     err="authentication needed: password or unlock"
WARN [01-12|18:33:38.691] Served eth_signTransaction               conn=82.196.0.91:59925    reqid=463 t=15.55µs      err="authentication needed: password or unlock"
WARN [01-12|18:33:38.692] Served eth_signTransaction               conn=82.196.0.91:59925    reqid=464 t=644.396µs    err="authentication needed: password or unlock"
WARN [01-12|18:33:38.692] Served eth_signTransaction               conn=82.196.0.91:59925    reqid=465 t=15.168µs     err="authentication needed: password or unlock"
WARN [01-12|18:33:38.692] Served eth_signTransaction               conn=82.196.0.91:59925    reqid=466 t=13.143µs     err="authentication needed: password or unlock"
WARN [01-12|18:33:38.692] Served eth_signTransaction               conn=82.196.0.91:59925    reqid=467 t=14.242µs     err="authentication needed: password or unlock"

アカウントにロックが解除されていないため、スマート契約を導入する前にまずアカウントにロックを解除する必要があります.解決策
      

>miner.stop()
true
          ,eth.mining    false         
> eth.mining
false

      

>eth.accounts

     ,           

>user1=eth.accounts[0]

>personal.unlockAccount(user1)>miner.start()

2.gethクライアント:unlock with HTTP access is forbiddenエラー解析
    
              ,           :
--allow-insecure-unlock


本人の許可を得ずに転載を禁止する.