成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用快照啟動 FIBOS、EOS 節(jié)點

tinylcy / 3234人閱讀

摘要:快照實現(xiàn)的原理使用快照啟動相應的源碼地址,截取部分代碼從源碼中可以看出當啟動添加參數(shù)時會以快照中的數(shù)據(jù)啟動。

為什么使用快照 1. 快速同步節(jié)點

EOS 的日志文件已經(jīng)達到了 160G,同步一個 EOS 全節(jié)點大約需要耗時 10-15 天的時間,時間成本非常高。作為一個普通 Dapp 開發(fā)者,我們并不需要之前的區(qū)塊數(shù)據(jù),所以完全不需要浪費大把時間去同步一個 EOS 全節(jié)點。通過快照同步的方式能夠很好的滿足我們的需求,使用最新快照啟動的節(jié)點,能夠在 3~4 分鐘內(nèi)完成節(jié)點同步達到主網(wǎng)高度,時間成本大大降低。

2. 節(jié)省服務器資源

??快照啟動的節(jié)點,區(qū)塊日志 block.log 內(nèi)只會保存節(jié)點啟動之后的區(qū)塊數(shù)據(jù),占用的磁盤空間更小。對比全節(jié)點和快照方式啟動的節(jié)點兩種方式同步 EOS 主網(wǎng)的結果來看,可以得出的結論是使用快照啟動的節(jié)點在 CPU 和 RAM 的使用上都要遠遠小于全節(jié)點。這就意味著在一定程度上使用快照同步的節(jié)點能夠很大程度上的降低我們的服務器成本。

3. 不停機數(shù)據(jù)備份

傳統(tǒng)的區(qū)塊數(shù)據(jù)備份步驟:

停止同步中的節(jié)點

使用壓縮工具將區(qū)塊數(shù)據(jù)壓縮

重新啟動節(jié)點

快照備份步驟:

訪問對應的接口: /v1/producer/create_snapshot,節(jié)點開始數(shù)據(jù)備份,備份結束后繼續(xù)同步,無需停掉正在運行的節(jié)點。

通過上面的對比可以看出,使用快照方式啟動的節(jié)點,在數(shù)據(jù)備份上將更加簡單便捷。

快照實現(xiàn)的原理 1. 使用快照啟動

相應的源碼地址: https://github.com/EOSIO/eos/...,截取部分代碼:

auto infile = std::ifstream(my->snapshot_path->generic_string(), (std::ios::in | std::ios::binary));
auto reader = std::make_shared(infile);
reader->validate();
reader->read_section([this]( auto §ion ){
        section.read_row(my->chain_config->genesis);
        });
infile.close();

從源碼中可以看出當啟動添加參數(shù):snapshot時,會以快照中的數(shù)據(jù)啟動。

2. 實現(xiàn)快照備份

進行快照備份時,服務器資源使用情況穩(wěn)定。但正在備份中的節(jié)點服務將暫時不可用,待數(shù)據(jù)備份結束后將恢復。所以推薦備份節(jié)點和業(yè)務節(jié)點獨立開。
相應的源碼如下: https://github.com/EOSIO/eos/...

producer_plugin::snapshot_information producer_plugin::create_snapshot() const {
   chain::controller& chain = my->chain_plug->chain();

   auto reschedule = fc::make_scoped_exit([this](){
      my->schedule_production_loop();
   });

   if (chain.pending_block_state()) {
      // abort the pending block
      chain.abort_block();
   } else {
      reschedule.cancel();
   }

   auto head_id = chain.head_block_id();
   std::string snapshot_path = (my->_snapshots_dir / fc::format_string("snapshot-${id}.bin", fc::mutable_variant_object()("id", head_id))).generic_string();

   EOS_ASSERT( !fc::is_regular_file(snapshot_path), snapshot_exists_exception,
               "snapshot named ${name} already exists", ("name", snapshot_path));


   auto snap_out = std::ofstream(snapshot_path, (std::ios::out | std::ios::binary));
   auto writer = std::make_shared(snap_out);
   chain.write_snapshot(writer);
   writer->finalize();
   snap_out.flush();
   snap_out.close();

   return {head_id, snapshot_path};
}

從源碼中可以看出,當進行快照備份時,會將備份數(shù)據(jù)寫到我們設置的路徑下,快照的文件名為當前區(qū)塊的hash。

下面我們將詳細介紹在 FIBOS、EOS 上如何通過快照啟動
啟動 FIBOS 節(jié)點
注意: FIBOS 版本: v1.4.0+
創(chuàng)建快照 配置快照目錄

快照生成位置 config.data_dir 為根目錄,可以配置為:

config.data_dir = "./blockData/data"

fibos.load("producer", {
"snapshots-dir": "snapshots"
});

根據(jù)配置,快照生成的位置為:
./blockData/data/snapshots

載入插件
fibos.load("producer_api");?
注意: 開啟該插件后,請確保你的節(jié)點放置在內(nèi)網(wǎng)安全。

完整配置文件可參考:

const fibos = require("fibos");
fibos.config_dir = "./blockData/data"
fibos.data_dir = "./blockData/data";

fibos.load("http", {
    "http-server-address": "0.0.0.0:8870",
    "access-control-allow-origin": "*",
    "http-validate-host": false,
    "verbose-http-errors": true
});

fibos.load("net", {
    "p2p-peer-address": [],
    "max-clients": 100,
    "p2p-listen-endpoint": "0.0.0.0:9876"
});

fibos.load("producer", {
    "snapshots-dir": "snapshots"
});

fibos.load("producer_api");

fibos.load("chain", {
    "contracts-console": true,
    "genesis-json": "genesis.json"
});

fibos.load("chain_api");

fibos.start();

相關 p2p 節(jié)點地址信息可以去 http://p2pcheck.fibospubg.top... 獲取。

生成快照

啟動節(jié)點后,通過調(diào)用接口:/v1/producer/create_snapshot 生成快照,命令如下:

curl http://127.0.0.1:8870/v1/producer/create_snapshot

節(jié)點生成完快照后,返回結果如下:

{
"head_block_id":"00003070049e51276829f6d1020fa638e5428fc9f8b0532fc60f680d72359dbe",
"snapshot_name":"./blockData/data/snapshots/snapshot-00003070049e51276829f6d1020fa638e5428fc9f8b0532fc60f680d72359dbe.bin"
}
通過快照啟動 配置快照文件路徑
fibos.load("chain", {
"snapshot": "./blockData/data/snapshots/snapshot-00003070049e51276829f6d1020fa638e5428fc9f8b0532fc60f680d72359dbe.bin"
});
啟動服務
fibos.start();
啟動 EOS 節(jié)點
注意: nodeos 版本: v1.4.0+
通過快照啟動 下載快照文件:

最新的快照文件地址:https://eosnode.tools/snapshots

wget $(wget --quiet "https://eosnode.tools/api/snapshots?limit=1" -O- | jq -r ".data[0].s3") -O snapshot.tar.gz

解壓快照文件

tar -xvzf snapshot.tar.gz
目錄結構:

├── node-data
│?? ├── snapshots
└── config.ini

注意:使用快照備份的方式啟動時,需要保證 node-data 文件夾下無日志和狀態(tài)數(shù)據(jù)文件。
配置文件:

vim config.ini

agent-name = EOSNODEOS

chain-state-db-size-mb = 10240
reversible-blocks-db-size-mb = 1024

http-server-address = 0.0.0.0:8870

http-validate-host = false
verbose-http-errors = true
abi-serializer-max-time-ms = 2000

access-control-allow-origin = *
allowed-connection = any

max-clients = 2
sync-fetch-span = 3000
connection-cleanup-period = 30
enable-stale-production = false

plugin = eosio::chain_api_plugin
plugin = eosio::chain_plugin

p2p-peer-address = ip:prot

相關 p2p 節(jié)點地址信息可以去 https://github.com/CryptoLion... 獲取

快照方式啟動腳本:
nodeos --config-dir ./ --data-dir ./node-data --snapshot ./node-data/snapshots/snapshot-023e5e8813f687c6c5ffcf6eae853eb24f78d90b475dac4fb94face8c8308e4f.bin

節(jié)點啟動后目錄結構:
├── node-data
│?? ├── snapshots
│ ├── blocks
│ ├── state
└── config.ini

驗證:
curl  http://127.0.0.1:8870/v1/chain/get_block -X POST -d "{"block_num_or_id":38006282}"

返回結果為高度38006282的區(qū)塊數(shù)據(jù),返回的結果大致如下:

{
    "timestamp": "2019-01-18T02:43:16.500", 
    "producer": "atticlabeosb", 
    "confirmed": 0, 
    "previous": "0243ee09128b14b56f90b3a0288b4b6f34526f53d71f8dc4e56bb89a42b4a93d", 
    "transaction_mroot": "179c0382cf457b63356f733dc93bd3c582419f2b3a64e0d270e9d9238149bae4", 
    "action_mroot": "e83174a2fae3c44777616993e7ba65393805a382bf423b744010873f76beaae8", 
    "schedule_version": 667, 
    "new_producers": null, 
    "header_extensions": [ ], 
    "producer_signature": "SIG_K1_KhkTgB5PHXGmYtiZMGgHVcQKxKFh8uUFVA8Mwic8bpjA6bCFSYnNkbGqYZW23A5zBXWKvb3PnMJGEiS3MHwvPGpZzf95wd", 
    "transactions": [.....]
}
生成快照 添加插件

config.ini 中添加:

plugin = eosio::producer_api?_plugin
注意: 開啟該插件后,請確保你的節(jié)點放置在內(nèi)網(wǎng)安全。
設置備份目錄

啟動時完整參數(shù):

nodeos --config-dir ./ --data-dir ./node-data --snapshots??-dir ../snapshots-backups
創(chuàng)建快照
curl http://curl http://127.0.0.1:8870/v1/producer/create_sn?apshot

按照目前 EOS 的大小,這一步大約需要耗時10~15分鐘??煺談?chuàng)建結束后,在 snapshots-backups 目錄下,生成相應的快照文件。請求返回結果如下:

{
    "head_block_id":"000006a4529a21b72b58c70c262fd3a754930d68b30b0b166f72fc1dbbc376e8",
    "snapshot_name":"./snapshots-backups/snapshot-000006a4529a21b72b58c70c262fd3a754930d68b30b0b166f72fc1dbbc376e8.bin"
}
適用場景

搭建自己的 EOS、FIBOS API 節(jié)點

只關心當前最新的區(qū)塊數(shù)據(jù)、交易,無需溯源

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/101328.html

相關文章

  • 使用快照啟動 FIBOS、EOS 節(jié)點

    摘要:快照實現(xiàn)的原理使用快照啟動相應的源碼地址,截取部分代碼從源碼中可以看出當啟動添加參數(shù)時會以快照中的數(shù)據(jù)啟動。 為什么使用快照 1. 快速同步節(jié)點 EOS 的日志文件已經(jīng)達到了 160G,同步一個 EOS 全節(jié)點大約需要耗時 10-15 天的時間,時間成本非常高。作為一個普通 Dapp 開發(fā)者,我們并不需要之前的區(qū)塊數(shù)據(jù),所以完全不需要浪費大把時間去同步一個 EOS 全節(jié)點。通過快照同步...

    notebin 評論0 收藏0
  • FIBOS入坑指南——本地開發(fā)環(huán)境搭建

    摘要:如果出錯,需要查看一下本地節(jié)點是否正在運行,在瀏覽器輸入后記完至此,本地的開發(fā)環(huán)境基本搭建完成,如果你想試試在本地環(huán)境編寫部署調(diào)用智能合約,可以參考官方開發(fā)文檔,當然,后續(xù)有時間,我也會把在智能合約開發(fā)過程中踩到的坑寫寫。 FIBOS是什么? FIBOS 是一個結合 FIBJS 以及 EOS 的 JavaScript 的運行平臺,它使得 EOS 提供可編程性,并允許使用 JavaSc...

    goji 評論0 收藏0
  • 如何在 fibos 上創(chuàng)建快照使用快照啟動節(jié)點

    摘要:本文介紹下如何通過快照啟動節(jié)點??煺談?chuàng)建無需停止節(jié)點打包數(shù)據(jù)比備份數(shù)據(jù)更方便快捷。 本文介紹下如何通過快照啟動 FIBOS 節(jié)點。 快照創(chuàng)建無需停止節(jié)點打包數(shù)據(jù)比備份數(shù)據(jù)更方便快捷。如果還不清楚如何啟動一個 fibos 節(jié)點請參考 啟動 fibo節(jié)點 fibos 版本 v1.4.1+ 如何創(chuàng)建快照 1.配置快照目錄 快照生成位置 config.data_dir 為根目錄,可以配置 例1...

    Barry_Ng 評論0 收藏0
  • FIBOS 周報

    摘要:穩(wěn)定幣的上線年月日,發(fā)布了穩(wěn)定幣,并且成功通過了社區(qū)多簽。年月日,的穩(wěn)定幣正式上線。年月日,六大個稅抵扣社會保險費由稅務部門統(tǒng)一征收等一批新規(guī)正式實施。本次的攻擊為針對項目方的重放攻擊。 FIBOS 穩(wěn)定幣的上線 2018年12月21日,F(xiàn)IBOS 發(fā)布了穩(wěn)定幣—— FOD,并且成功通過了社區(qū)多簽。 2018年12月28日, FIBOS 的穩(wěn)定幣 FOD 正式上線。 早在2018年9月...

    explorer_ddf 評論0 收藏0
  • FIBOS 周報

    摘要:穩(wěn)定幣的上線年月日,發(fā)布了穩(wěn)定幣,并且成功通過了社區(qū)多簽。年月日,的穩(wěn)定幣正式上線。年月日,六大個稅抵扣社會保險費由稅務部門統(tǒng)一征收等一批新規(guī)正式實施。本次的攻擊為針對項目方的重放攻擊。 FIBOS 穩(wěn)定幣的上線 2018年12月21日,F(xiàn)IBOS 發(fā)布了穩(wěn)定幣—— FOD,并且成功通過了社區(qū)多簽。 2018年12月28日, FIBOS 的穩(wěn)定幣 FOD 正式上線。 早在2018年9月...

    dabai 評論0 收藏0

發(fā)表評論

0條評論

tinylcy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<