快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

如何在基于Bytom开发过程中集成IPFS-创新互联

本文介绍了基于Bytom开发过程中集成IPFS。

10年积累的成都网站制作、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有博望免费网站建设让你可以放心的选择与我们合作。

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

step1: 搭建bytom节点

比原相关资料:https://github.com/Bytom-Community/Bytom_Docs

搭建bytom节点有很多方式,然后开启RPC调用模式。这里推荐用docker搭建比原节点: docker搭建比原节点,同时开启RPC访问模式(即终端交互模式)。

我这里都是在本地操作,所以对应的端口是:9888。启动好以后我们在postman里请求测试一下,如下图:

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

说明我们已经搭建好了比原节点,并且可以进行远程调用。

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

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

先在我们已经搭建好了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("QmdFhFwGHy54T3e8cf1ZmovWbZ2yW4yNhNKsu5dSfcgh7H", "/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插件:

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

比原链的API插件主要有:

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

如果选择的开发语言不是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目录下面:

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

然后我们在项目中连接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

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


分享标题:如何在基于Bytom开发过程中集成IPFS-创新互联
文章出自:http://6mz.cn/article/ecede.html

其他资讯