EOS 連線本地網路&測試網路&主網
寫在前面
EOS主網不是唯一的,EMLG, EOSGO, IMEOS, EOSForce(EOS原力)幾大社群都在負責主網啟動,這幾個都是主網的有力競爭者。其中EMLG你可以認為是具備最大共識的社群,且EMLG已經宣告它只支援EOS這一唯一主網,就是我們今天談的這個主網,所以這個主網最接近那個真正的“主網”。好了,接下來就是實踐了。
連線本地
並不需要做其他多餘的配置等,直接使用命令:
$ cd build/programs/nodeos
$ ./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --resync-blockchain
連線主網mainnet
主網:
Jungle Mainnet:
主網區塊瀏覽器:http://eosnetworkmonitor.io/#home
一. 自己本地搭建非生產者節點
方式一:
mkdir /opt/EOSmainNet
cd /opt/EOSmainNet
git clone https://github.com/CryptoLions/EOS-MainNet.git ./
下載EOSmainNet後, EOSmainNet就有了genesis.json檔案和config.ini兩個檔案。
我們搭建的這個網路之所以是“主網”而不是自己的私有網就是因為這兩個核心檔案
genesis檔案包含了創世塊的內容
這個創世塊和所有主網的節點的創世塊是一樣的,所以我們在搭建主網環
config.ini包含了主網伺服器節點的資訊(ip:port),比如
p2p-peer-address = peering.mainnet.eoscanada.com:9876
p2p-peer-address = peering1.mainnet.eosasia.one:80
p2p-peer-address = peering2.mainnet.eosasia.one:80
我們指定了主網其他伺服器節點的ip,埠,所以我們能從其他節點同步主網區塊資訊。下載下來的config.ini這個配置沒有定義producer, 其實目前主網,一般人也做不了block producer,你根本拉不到那麼多選票。因此,我們只是為了同步區塊資料,就不需要新增producer了。唯一需要的做的是修改
- p2p-server-address = !!YOUR_ENDPOINT_IP_ADDRESS!!:9876
+ p2p-server-address = 0.0.0.0:9876
3. 執行
./start.sh --delete-all-blocks --genesis-json genesis.json
必須指定genesis-json檔案,啟動後就會在stderr.txt檔案裡看到如下log,代表啟動成功了,並在同步資料
方式二:
(配置genesis及config檔案)
1、配置config.ini,配置p2p-peer-address,
3、清理本地測試的data
4、啟動nodeos。nodeos --genesis-json genesis.json
5、驗證是否啟動成功,下面兩個語句得到chain_id一致即代表連線主網成功。 cleos -u http://api.eosnewyork.io:80 get info
cleos get info
方式三:
方式四:直接連線遠端nodeos節點
遠端nodes節點的資訊可以一個一個測試上面的config.ini檔案裡的p2p-peer-address,測試後我使用130.211.59.178這個節點即可連線到主網
$# cleos -u http://130.211.59.178:8888 get info
或
$# cleos -u get info
注意看
chain_id:”aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906”
證明你連線的是主網。
主網其他rpc節點地址
EOS New York:
https://api.eosnewyork.io
eos DAC:
https://eu2.eosdac.io
連線測試網路jungle-testnet
測試網:
Jungle Testnet:
注:測試網賬戶可以在上面的地址中生成,還可以免費獲得eos硬幣
一 .本地搭建
地址:https://github.com/CryptoLions/EOS-Jungle-Testnet
二 .直接連線遠端nodeos節點
$# cleos -u http://jungle.cryptolions.io:38888 get info
chain_id如下說明你連線的是測試網路
"chain_id": "038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca"
其他網路
EOSTEA :
https://eosmonitor.io/
EOSpark:
https://eospark.com/
其它:
手動新增創世檔案:genesis.json
編譯後可執行資料夾下nodeos資料夾下面建立genesis.json檔案,然後在啟動命令後面加上 --genesis-json genesis.json
1..................Genesis state can only be set on a fresh blockchain
2......... version > 0: Block log was not setup properly with genesis information.
報錯時處理辦法:
在可執行檔案,nodeos下執行以下命令列
注意修改--genesis-json /path/to/genesis.json
指定正確的路徑
./nodeos -e -p eosio
--private-key '[ "EOS8VJybqtm41PMmXL1QUUDSfCrs9umYN4U1ZNa34JhPZ9mU5r2Cm","5JGxnezvp3N4V1NxBo8LPBvCrdR85bZqZUFvBZ8ACrbRC3ZWNYv" ]' --plugin eosio::producer_plugin --plugin eosio::chain_api_plugin --plugin eosio::http_plugin --plugin eosio::history_api_plugin --delete-all-blocks --genesis-json /path/to/genesis.json