go-libp2p-examples测试

前言

编写一个完善的p2p网络并不是一件很容易的事情.需要考虑的因素很多,也需要大量工程才能使其具有可扩展性和可靠性. 从零搭建需要的工程量也是很大,所以我们必须站在巨人的肩膀上. 目前有一个优秀的p2p库用Go编写,名为go-libp2p (它也有nodejs版本和Rust版本, 这里测试主要是使用go版本)

注意: 据我所知,这个go-libp2p库有两个需要注意的:

  1. 包管理器使用的是gx, gx是一个与语言无关的通用包管理器, 感觉并没有govendor好用.
  2. 库目前还在处于开发阶段,可能会遇到一些问题,这些问题可能涉及底层代码.
  • 第一个问题不是很大.

  • 第二个问题, 可以去他们的开源库提交 issue 让他们尽早的知道你碰到问题. 现有的开源p2p库很少,特别是在Go中。总的来说,go-libp2p还是不错的,很适合我们的学习和研究.

环境

系统: 因为我的是mac系统, 所以下面将用mac系统作为搭建环境

工具:

go环境 (我的为 go version go1.11.5 darwin/amd64)

git (我的为 git version 2.17.2 (Apple Git-113))

搭建

最好的方式就是直接将仓库克隆到本地, 然后安装依赖包, 直接在现有的仓库中开发. 您也可以在他们提供的环境之外进行开发,但需要知道如何使用gx.

将libp2p仓库下载

go get -d github.com/libp2p/go-libp2p/

2.安装依赖项

make

libp2p将examples单独放在一个仓库中所以需要单独下载examples的代码库

go get -d github.com/libp2p/go-libp2p-examples/

通过查看go-libp2p-examples/chat/chat.go文件可以知道还需要另外几个模块库

这些库在都在libp2p的仓库中

我将几乎能用的模块库都下载了下来, 不过chat的Demo暂时只能用的引用的那些库.

运行

第一个终端中运行

在另外一个终端中运行

发送一条简单的测试命令

在另外一个终端中看到发过来的消息

可能遇到的问题

在测试过程中, 主要碰到一些安装依赖库时总是下载不了依赖库的问题. go的官网库下载超时. 这个问题可以直接到golang的官方git仓库直接将缺少的库下载的到$GOPATH目录. github.com/golang

转载于:https://juejin.im/post/5c4c729af265da61141cf1ab

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值