摘要:本文介紹了基于開發過程中集成。的插件有如下幾種語言的插件比原鏈的插件主要有如果選擇的開發語言不是。需要我們自己去根據比原的開發文檔,然后去集成。具體項目過程請參考
本文介紹了基于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 main import ( "fmt" "os" "strings" shell "github.com/ipfs/go-ipfs-api" ) func main() { // Where your local node is running on localhost:5001 sh := 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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24543.html
摘要:上期我們講了在基于比原開發過程中鏈外存儲可以用分布式存儲這期我們還給大家介紹另外一種鏈外存儲的解決方案。現在我們就可以去找對應的開發插件進行開發。整個資產的流轉信息都存儲在中。 上期我們講了在基于比原開發過程中鏈外存儲可以用分布式存儲IPFS,這期我們還給大家介紹另外一種鏈外存儲的解決方案。bigchaindb:https://www.bigchaindb.com,下面我們講一下集成過...
摘要:是企業與區塊鏈相遇的地方。的框架旨在成為開發區塊鏈解決方案的支柱。以太坊,主要是針對工程師使用進行區塊鏈以太坊開發的詳解。 如果你想將區塊鏈合并到一個Java項目中,現在我們來看看就是這個細分領域中三個最大的OSS玩家。 好的伙計們,我們都聽說過比特幣,以太坊或其他加密貨幣,其中有一些時髦的名字圍繞著我們常見的新聞,但我們作為Java開發人員知道如何輕松地與這些區塊鏈技術進行交互嗎?以...
摘要:我們目前正處于一個新興的區塊鏈開發行業中。,一種在以太坊開發人員中流行的新的簡單編程語言,因為它是用于開發以太坊智能合約的語言。它是全球至少萬開發人員使用的世界上最流行的編程語言之一。以太坊,主要是針對工程師使用進行區塊鏈以太坊開發的詳解。 我們目前正處于一個新興的區塊鏈開發行業中。區塊鏈技術處于初期階段,然而這種顛覆性技術已經成功地風靡全球,并且最近經歷了一場與眾不同的繁榮。由于許多...
摘要:分享一些以太坊比特幣等區塊鏈相關的交互式在線編程實戰教程以太坊,主要是針對工程師使用進行區塊鏈以太坊開發的詳解。這里是原文如何用為以太坊和比特幣生成虛擬地址 今天,我們將編寫一個非常簡單的python腳本來生成虛榮地址,這些地址是以某個短語或字母序列開頭的加密貨幣地址。該過程涉及生成私鑰并檢查目標短語的地址,直到找到滿意的地址。 安裝包 首先,我們需要安裝一些可以執行計算的軟件包,以便...
閱讀 3478·2023-04-26 02:00
閱讀 3078·2021-11-22 13:54
閱讀 1699·2021-08-03 14:03
閱讀 709·2019-08-30 15:52
閱讀 3085·2019-08-29 12:30
閱讀 2420·2019-08-26 13:35
閱讀 3364·2019-08-26 13:25
閱讀 3001·2019-08-26 11:39