EOS小白學習(四)使用http請求EOS節點


歡迎來到EOS小白學習系列,本系列會記錄EOS學習過程中的一些操作和細節,大餅果子非C++出身,如有錯誤,歡迎指出

接上一篇:

EOS小白學習(三)創建一個EOS的賬戶

前一篇用cleos完成了創建賬戶以及轉賬的一系列操作,也就是說,使用命令行就可以完成對節點的操作,那么http的api有什么用處呢?

本果子的意圖是通過http了解eos的結構,並且對於真實業務,例如錢包的開發,是有需求要對接節點提供的http api的

eos的官方文檔參見:EOS HTTP API

那么我們進入到docker里面

$ docker exec -it nodeos sh

# ls

bin   config.ini  dev  home  lib64  mnt  proc  run   srv  tmp     usr

boot  contracts   etc  lib   media  opt  root  sbin  sys  tutorials  var

就可以看到config.ini文件,查看以下該文件

# cat config.ini

就會看到最后幾行的插件聲明里有

# Plugin(s) to enable, may be specified multiple times

# plugin =

plugin = eosio::chain_api_plugin

plugin = eosio::history_api_plugin

這里注冊了chain和history的插件,當然,你還可以注冊很多其他插件,eos的源碼包中就有這么多的插件

那么如我們的docker,已經有了chain和history api的插件,就可以進行http的調用了

我們來試一下在瀏覽器輸入http://127.0.0.1:8888/v1/chain/get_info

誒?奇怪?怎么不行嘞?

並不是所有小伙伴都不行,大餅果子使用1.1.0的版本就不可以,於是翻看了一下eos的代碼,找到了這樣兩句

  第一句

("http-validate-host", boost::program_options::value<bool>()->default_value(true), "If set to false, then any incoming \"Host\" header is considered valid")

  第二句

void http_plugin::plugin_initialize(const variables_map& options) {
   try {
      my->validate_host = options.at("http-validate-host").as<bool>();
      if( options.count( "http-alias" )) {
         const auto& aliases = options["http-alias"].as<vector<string>>();
         my->valid_hosts.insert(aliases.begin(), aliases.end());
      }
...

這是給http的請求加了限制吶,那么我們可以打開所有http的權限,或者指定一個http-alias

所以我們編輯一下config.ini的文件

在文件的最后加入

http-validate-host = false

或者

http-alias = 127.0.0.1:8888

然后我們重新執行一下

$ docker restart nodeos

nodeos

於是我們預期的結果就出現了

接下來,我們還要改一個配置(config.ini)

# Track actions which match receiver:action:actor. Actor may be blank to include all. Receiver and Action may not be blank. (eosio::history_plugin)

filter-on = dabingguozi:transfer:

filter-on這里改成receiver:action:actor,如果actor沒有填,就認為所有的合約的名字為action,receiver是receiver的歷史都會被記錄

什么意思呢?就是說,這個filter會影響到我們的history記錄,影響到我們對history transaction的查詢,有了這個filter,節點會特別記錄一些transaction,具體效果參見下一篇

 

 

下一篇我們介紹幾個常用的API

EOS小白學習(五)EOS的HTTP API

 

本篇沒有ps,>_< 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM