日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

出块过程 (1)close发送消息

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 出块过程 (1)close发送消息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 以轉賬為例,說明EOS消息處理流程

step1. cleos客戶端發起轉賬命令,
step2. 解析transfer命令,通過create_transfer函數將交易發送者、交易接收者、token數量等信息封裝成mutable_variant_object對象
step3. 調用send_action函數,將交易信息發送到服務器端

main→send_actions→push_actions→push_transaction→call→do_http_call→do_connect(httpc.cpp)→do_txrx

./cleos transfer sender recipient amount memo

programs/cleos/main.cpp

main() {send_actions({create_transfer(sender, recipient, amount, memo)});}void send_actions {auto result = push_actions( move(actions), extra_kcpu, compression);}fc::variant push_actions {signed_transaction trx;trx.actions = std::forward<decltype(actions)>(actions);return push_transaction(trx, extra_kcpu, compression); }fc::variant push_transaction{trx.set_reference_block(ref_block_id);// 發送 ”/V1/chain/push_transaction” URL地址到服務器端if (!tx_dont_broadcast) {return call(push_txn_func, packed_transaction(trx, compression));} }fc::variant call{try {return eosio::client::http::do_http_call( url, path, fc::variant(v) );} }fc::variant do_http_call {// 將請求的URL封裝成http包request_stream << "POST " << path_prefix + path << " HTTP/1.0\r\n";request_stream << "Host: " << server << "\r\n";request_stream << "content-length: " << postjson.size() << "\r\n";request_stream << "Accept: */*\r\n";request_stream << "Connection: close\r\n\r\n";request_stream << postjson;// 和服務器建立連接do_connect(socket, server, port);// 發送http報文,并獲取返回結果re = do_txrx(socket, request, status_code); }

總結

以上是生活随笔為你收集整理的出块过程 (1)close发送消息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。