亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

如何在基于Bytom開(kāi)發(fā)過(guò)程中集成IPFS

red_bricks / 1539人閱讀

摘要:本文介紹了基于開(kāi)發(fā)過(guò)程中集成。的插件有如下幾種語(yǔ)言的插件比原鏈的插件主要有如果選擇的開(kāi)發(fā)語(yǔ)言不是。需要我們自己去根據(jù)比原的開(kāi)發(fā)文檔,然后去集成。具體項(xiàng)目過(guò)程請(qǐng)參考

本文介紹了基于Bytom開(kāi)發(fā)過(guò)程中集成IPFS。

step1: 搭建bytom節(jié)點(diǎn)

比原相關(guān)資料:https://github.com/Bytom-Community/Bytom_Docs

搭建bytom節(jié)點(diǎn)有很多方式,然后開(kāi)啟RPC調(diào)用模式。這里推薦用docker搭建比原節(jié)點(diǎn): docker搭建比原節(jié)點(diǎn),同時(shí)開(kāi)啟RPC訪問(wèn)模式(即終端交互模式)。

我這里都是在本地操作,所以對(duì)應(yīng)的端口是:9888。啟動(dòng)好以后我們?cè)趐ostman里請(qǐng)求測(cè)試一下,如下圖:

說(shuō)明我們已經(jīng)搭建好了比原節(jié)點(diǎn),并且可以進(jìn)行遠(yuǎn)程調(diào)用。

step2: 搭建IPFS節(jié)點(diǎn)

IPFS中文社區(qū)官網(wǎng):http://ipfser.org

IPFS項(xiàng)目地址:https://github.com/ipfs

各種語(yǔ)言實(shí)現(xiàn)源碼:

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節(jié)點(diǎn),這里如果只是本地開(kāi)發(fā),就只需要搭建本地單節(jié)點(diǎn)就足夠了。接下來(lái)我們進(jìn)行具體的搭建。這里可以源碼搭建和docker鏡像搭建,具體過(guò)程可以參考(因?yàn)樗С侄喾N語(yǔ)言,這里我們以go語(yǔ)言版本為例):

搭建IPFS環(huán)境:https://blog.csdn.net/weixin_41160534/article/details/81358613

搭建好以后一定要開(kāi)啟端口監(jiān)聽(tīng):

 ipfs daemon

先在我們已經(jīng)搭建好了IPFS的節(jié)點(diǎn),并且開(kāi)啟API網(wǎng)絡(luò)監(jiān)聽(tīng)?,F(xiàn)在我們來(lái)寫(xiě)個(gè)測(cè)試demo(go語(yǔ)言版本),往網(wǎng)絡(luò)上傳文件。

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)
   }
}

我們運(yùn)行以后發(fā)現(xiàn)返回Hash,然后我們可以通過(guò)Hash把上傳的文件獲取到 "/Users/huangxinglong/Desktop"目錄現(xiàn)在我們就可以進(jìn)行開(kāi)發(fā)了。

step3: 準(zhǔn)備開(kāi)發(fā)

搭建好比原節(jié)點(diǎn)和IPFS節(jié)點(diǎn)以后我們就可以根據(jù)自己選擇的開(kāi)發(fā)語(yǔ)言選擇具體的插件。 IPFS的插件有如下幾種語(yǔ)言的API插件:

比原鏈的API插件主要有:

如果選擇的開(kāi)發(fā)語(yǔ)言不是java,PHP,Node.js。需要我們自己去根據(jù)比原的開(kāi)發(fā)文檔,然后去集成。

step4: 具體案例

目的:根據(jù)比原上的交易將信息存儲(chǔ)在IPFS中

首先根據(jù)自己選擇的開(kāi)發(fā)語(yǔ)言去選擇對(duì)應(yīng)的API插件,我選擇的是go語(yǔ)言,IPFS有g(shù)o語(yǔ)言的API插件:https://github.com/ipfs/go-ipfs-api。我們?cè)陂_(kāi)發(fā)過(guò)程中直接根據(jù)比原的開(kāi)發(fā)文檔去開(kāi)發(fā),開(kāi)發(fā)文檔地址:https://docs.bytom.io/

首先我們?nèi)ハ螺dIPFS的go語(yǔ)言API插件放到自己的項(xiàng)目中,然后放到自己的項(xiàng)目vender目錄下面:

然后我們?cè)陧?xiàng)目中連接IPFS節(jié)點(diǎn),同時(shí)上傳一個(gè)文件。然后我們會(huì)發(fā)現(xiàn)返回Hash。 然后我們調(diào)用比原create-key接口和create_account接口。創(chuàng)建key和account,然后用給自己的地址充值BTM。通過(guò)api請(qǐng)求3個(gè)接口,先 build → sign → submit,分別對(duì)應(yīng)的api是 build-transaction、sign-transaction、submit-transaction。 然后我們就可以創(chuàng)建一筆交易。

存到IPFS上返回的hash是:QmP4UDViHc78un4SyHZV2ooHkSon2EttpamqPqXQ9WHcaV,將返回的hash放在arbitrary對(duì)應(yīng)的字段,如下:

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

}

然后依次調(diào)用sign-transaction和submit-transaction接口,就可以在交易過(guò)程中將信息存儲(chǔ)在IPFS上,如果我們還需要做更復(fù)雜的操作,再根據(jù)比原開(kāi)發(fā)文檔去做相應(yīng)的操作。

現(xiàn)在我們就可以根據(jù)比原上的交易hash,找到對(duì)應(yīng)的IPFS存儲(chǔ)Hash。獲取到在IPFS上存儲(chǔ)的文件。

具體項(xiàng)目過(guò)程請(qǐng)參考:https://github.com/BytomFans/bytom-ipfs

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/24543.html

相關(guān)文章

  • 如何基于Bytom開(kāi)發(fā)過(guò)程中使用Bigchaindb

    摘要:上期我們講了在基于比原開(kāi)發(fā)過(guò)程中鏈外存儲(chǔ)可以用分布式存儲(chǔ)這期我們還給大家介紹另外一種鏈外存儲(chǔ)的解決方案?,F(xiàn)在我們就可以去找對(duì)應(yīng)的開(kāi)發(fā)插件進(jìn)行開(kāi)發(fā)。整個(gè)資產(chǎn)的流轉(zhuǎn)信息都存儲(chǔ)在中。 上期我們講了在基于比原開(kāi)發(fā)過(guò)程中鏈外存儲(chǔ)可以用分布式存儲(chǔ)IPFS,這期我們還給大家介紹另外一種鏈外存儲(chǔ)的解決方案。bigchaindb:https://www.bigchaindb.com,下面我們講一下集成過(guò)...

    kun_jian 評(píng)論0 收藏0
  • Java開(kāi)發(fā)區(qū)塊鏈的三大sdk庫(kù)

    摘要:是企業(yè)與區(qū)塊鏈相遇的地方。的框架旨在成為開(kāi)發(fā)區(qū)塊鏈解決方案的支柱。以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的詳解。 如果你想將區(qū)塊鏈合并到一個(gè)Java項(xiàng)目中,現(xiàn)在我們來(lái)看看就是這個(gè)細(xì)分領(lǐng)域中三個(gè)最大的OSS玩家。 好的伙計(jì)們,我們都聽(tīng)說(shuō)過(guò)比特幣,以太坊或其他加密貨幣,其中有一些時(shí)髦的名字圍繞著我們常見(jiàn)的新聞,但我們作為Java開(kāi)發(fā)人員知道如何輕松地與這些區(qū)塊鏈技術(shù)進(jìn)行交互嗎?以...

    iKcamp 評(píng)論0 收藏0
  • 區(qū)塊鏈開(kāi)發(fā)中使用的最流行的編程語(yǔ)言

    摘要:我們目前正處于一個(gè)新興的區(qū)塊鏈開(kāi)發(fā)行業(yè)中。,一種在以太坊開(kāi)發(fā)人員中流行的新的簡(jiǎn)單編程語(yǔ)言,因?yàn)樗怯糜陂_(kāi)發(fā)以太坊智能合約的語(yǔ)言。它是全球至少萬(wàn)開(kāi)發(fā)人員使用的世界上最流行的編程語(yǔ)言之一。以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的詳解。 我們目前正處于一個(gè)新興的區(qū)塊鏈開(kāi)發(fā)行業(yè)中。區(qū)塊鏈技術(shù)處于初期階段,然而這種顛覆性技術(shù)已經(jīng)成功地風(fēng)靡全球,并且最近經(jīng)歷了一場(chǎng)與眾不同的繁榮。由于許多...

    2shou 評(píng)論0 收藏0
  • Python生以太坊和比特幣vanity虛榮地址

    摘要:分享一些以太坊比特幣等區(qū)塊鏈相關(guān)的交互式在線編程實(shí)戰(zhàn)教程以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的詳解。這里是原文如何用為以太坊和比特幣生成虛擬地址 今天,我們將編寫(xiě)一個(gè)非常簡(jiǎn)單的python腳本來(lái)生成虛榮地址,這些地址是以某個(gè)短語(yǔ)或字母序列開(kāi)頭的加密貨幣地址。該過(guò)程涉及生成私鑰并檢查目標(biāo)短語(yǔ)的地址,直到找到滿意的地址。 安裝包 首先,我們需要安裝一些可以執(zhí)行計(jì)算的軟件包,以便...

    MAX_zuo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<