Libp2p学习01一个简单的聊天服务

本文介绍如何使用LibP2P库搭建穿透服务,包括生成节点ID、创建Host及等待连接的步骤。同时,提供了聊天客户端的实现思路,涵盖连接穿透服务、主动或被动发起聊天等功能。

说明

本人是刚学 libp2p, 这些博客 不能当作是教程或者是引导
也许会有大量错误,欢迎大佬指导。

此博客源码 imjoel/go-libp2p-learn

搭建一个简单的穿透服务

搭建穿透服务一共需要3步,

  1. 生成一个节点ID
  2. 创建一个 Host
  3. 等待连接

1. 生成节点ID 不用多说,github.com/libp2p/go-libp2p-examples 上有示例, 下面是我将目标代码整合成了一个方法

import (
	crand "crypto/rand"
	"github.com/libp2p/go-libp2p-core/crypto"
	"io"
	mrand "math/rand"
)

func generateIdentity(seed int64) (identity crypto.PrivKey, err error) {
   
   
	var r io.Reader
	if seed == 0 {
   
   
		r = crand.Reader
	} else {
   
   
		r = mrand.New(mrand.NewSource(seed))
	}
	identity, _, err = crypto.GenerateKeyPairWithReader(crypto.RSA, 2048, r)
	return identity, err
}

2. 要创建一个 Host 很简单,如果要创建一个 relay host 只需要指定 OptActiveOptHop 选项即可. 下面是我抽出来的创建 relay host 的函数

import (
	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值