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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

如何在基于Bytom开发过程中集成IPFS

發布時間:2025/7/25 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在基于Bytom开发过程中集成IPFS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文介紹了基于Bytom開發過程中集成IPFS。

step1: 搭建bytom節點

比原相關資料:https://github.com/Bytom-Community/Bytom_Docs

搭建bytom節點有很多方式,然后開啟RPC調用模式。這里推薦用docker搭建比原節點: docker搭建比原節點,同時開啟RPC訪問模式(即終端交互模式)。

我這里都是在本地操作,所以對應的端口是:9888。啟動好以后我們在postman里請求測試一下,如下圖:

說明我們已經搭建好了比原節點,并且可以進行遠程調用。

step2: 搭建IPFS節點

IPFS中文社區官網:http://ipfser.org

IPFS項目地址:https://github.com/ipfs

各種語言實現源碼:

GO:https://github.com/ipfs/go-ipfs

JavaScript:https://github.com/ipfs/js-ipfs

Python:https://github.com/ipfs/js-ipfs

C:https://github.com/Agorise/c-ipfs

搭建IPFS節點,這里如果只是本地開發,就只需要搭建本地單節點就足夠了。接下來我們進行具體的搭建。這里可以×××和docker鏡像搭建,具體過程可以參考(因為它支持多種語言,這里我們以go語言版本為例):

搭建IPFS環境:https://blog.csdn.net/weixin_41160534/article/details/81358613

搭建好以后一定要開啟端口監聽:

ipfs daemon

先在我們已經搭建好了IPFS的節點,并且開啟API網絡監聽。現在我們來寫個測試demo(go語言版本),往網絡上傳文件。

package mainimport ("fmt""os""strings"shell "github.com/ipfs/go-ipfs-api" )func main() {// Where your local node is running on localhost:5001sh := shell.NewShell("localhost:5001")cid, err := sh.Add(strings.NewReader("hello world!"))if err != nil {fmt.Fprintf(os.Stderr, "error: %s", err)os.Exit(1)}fmt.Println("added %s", cid)err = sh.Get("QmdFhFwGHy54T3e8cf1ZmovWbZ2yW4yNhNKsu5dSfcgh6H", "/Users/huangxinglong/Desktop")if err != nil {fmt.Fprintf(os.Stderr, "error: %s", err)os.Exit(1)} }

我們運行以后發現返回Hash,然后我們可以通過Hash把上傳的文件獲取到 "/Users/huangxinglong/Desktop"目錄現在我們就可以進行開發了。

step3: 準備開發

搭建好比原節點和IPFS節點以后我們就可以根據自己選擇的開發語言選擇具體的插件。 IPFS的插件有如下幾種語言的API插件:

比原鏈的API插件主要有:

如果選擇的開發語言不是java,PHP,Node.js。需要我們自己去根據比原的開發文檔,然后去集成。

step4: 具體案例

目的:根據比原上的交易將信息存儲在IPFS中

首先根據自己選擇的開發語言去選擇對應的API插件,我選擇的是go語言,IPFS有go語言的API插件:https://github.com/ipfs/go-ipfs-api。我們在開發過程中直接根據比原的開發文檔去開發,開發文檔地址:https://docs.bytom.io/

首先我們去下載IPFS的go語言API插件放到自己的項目中,然后放到自己的項目vender目錄下面:

然后我們在項目中連接IPFS節點,同時上傳一個文件。然后我們會發現返回Hash。 然后我們調用比原create-key接口和create_account接口。創建key和account,然后用給自己的地址充值BTM。通過api請求3個接口,先 build → sign → submit,分別對應的api是 build-transaction、sign-transaction、submit-transaction。 然后我們就可以創建一筆交易。

存到IPFS上返回的hash是:QmP4UDViHc78un4SyHZV2ooHkSon2EttpamqPqXQ9WHcaV,將返回的hash放在arbitrary對應的字段,如下:

build-transaction:

{"base_transaction": null,"actions": [{"account_id": "0KTCS3R5G0A02","amount": 10000000,"asset_id": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","type": "spend_account"}, { "account_id": "0KTCS3R5G0A02", "amount": 100, "asset_id": "608037f96e8d1613d900c67a0730cc90e2a03311fb7d091588f7eb551a6103cd", "type": "spend_account" }, { "account_id": "0KTCS3R5G0A02", "amount": 100, "asset_id": "608037f96e8d1613d900c67a0730cc90e2a03311fb7d091588f7eb551a6103cd", "arbitrary": "QmP4UDViHc78un4SyHZV2ooHkSon2EttpamqPqXQ9WHcaV", "type": "retire" }], "ttl": 0, "time_range": 1521625823

}

然后依次調用sign-transaction和submit-transaction接口,就可以在交易過程中將信息存儲在IPFS上,如果我們還需要做更復雜的操作,再根據比原開發文檔去做相應的操作。

現在我們就可以根據比原上的交易hash,找到對應的IPFS存儲Hash。獲取到在IPFS上存儲的文件。

具體項目過程請參考:https://github.com/BytomFans/bytom-ipfs

轉載于:https://blog.51cto.com/14187963/2352780

總結

以上是生活随笔為你收集整理的如何在基于Bytom开发过程中集成IPFS的全部內容,希望文章能夠幫你解決所遇到的問題。

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