P2P之Noise代码分析

Noise是一个用Go写的去中心化的P2P网络(A decentralized P2P networking stack written in Go.)

是perlin公司开发的一个基础P2P网络,Perlin平台由三个主要部分组成: 一个算力资源加密证明机制,一个基于DAG的分布式账本,以及一个高度并行的盲计算框架。他们的白皮书刚刚发布,相关代码只有Noise项目,其他还未完成。其代币目前基于ERC20,也基本没上交易所。

实现的主要功能:

  • 通过对等体之间的实时双向流传输。基于KCP / TCP和Protobufs
  • NAT遍历/自动端口转发(NAT-PMP,UPnP)。
  • 用于对等身份和签名的NaCL / Ed25519方案。
  • Kademlia受DHT启发的节点发现。
  • 请求/响应和消息传递RPC。
  • 使用glog记录日志。
  • 插件系统

项目提供的测试效果图:

下面看主要代码。


func main() {
	flag.Set("logtostderr", "true")

	portFlag := flag.Int("port", 3000, "port to listen to")
	hostFlag := flag.String("host", "localhost", "host to listen to")
	protocolFlag := flag.String("protocol", "tcp", "protocol to use (kcp/tcp)")
	peersFlag := flag.String("peers", "", "peers to connect to")
	flag.Parse() //解析启动参数

	port := uint16(*portFlag)
	host := *hostFlag
	protocol := *protocolFlag
	peers := strings.Split(*peersFlag, ",&#
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值