链上通信协议,到底有什么用?

  • 33357
  • 更新于 2022-05-05 17:13
  • 阅读 2436

链上通信协议,到底有什么用?

原文发布在 https://github.com/33357/smartcontract-apps这是一个面向中文社区,分析市面上智能合约应用的架构与实现的仓库。欢迎关注开源知识项目!

链上通信协议,到底有什么用?

为了做一个链上聊天室,我做了一个链上通信协议。可以看到的是,通过这个协议,我实现了在区块链上发送消息和对消息的索引并获取。

合约源码

应用网址

链上通信的实现

  • 通信内容的存储

    • 为了减少存储数据占用的GAS,该协议使用了event来存储具体的通信内容。因为通信内容不需要和合约进行直接的交互,因此使用event存储是没有任何问题的。
    • 为了方便通讯数据的获取,需要使用一个uint48的数组存储blocknumber的索引列表。
  • 通信内容的获取

    • 获取通讯内容列表时,需要获取到该通讯内容的blocknumber,然后根据blocknumber获取到event上保存的通讯内容列表。
  • 设置数据的存储

    • 设置数据可以保存当前账户的设置信息,同样使用event来存储具体内容,在合约使用hash值存储blocknumber的索引。
  • 设置数据的获取

    • 获取设置数据时,需要获取到该设置数据的blocknumber,然后根据blocknumber获取到event上保存的设置数据。

链上通信的优势与缺点

  • 链上通信的优势

    • 可以对接链上的合约
    • 可以兼容区块链账户体系
    • 去中心化程度强
    • 稳定性高
  • 链上通信的缺点

    • 通信费用高
    • 通信延时高
    • 通信内容存储长度受限

链上通信的使用前景

很多人认为链上通讯会因为它的缺点无法实用,但我认为这并不是不可能的。想要让链上通信实用,需要在满足以下条件的场景内使用:

1.通信带来的收益高于通信成本。

2.对通信的即时性要求不高,但对通信的稳定性要求高。

3.对通信的去中心化程度要求高。

链上通信的使用场景

这里是我的一些设想。

1.在合约交互的同时附带通讯信息(比如转账时可以备注)。

2.发送需要加密的信息(比如发送私钥、助记词)。

3.发送需要验证的公开信息(比如博客、订阅内容)。

为什么要做链上通信协议

我认为,web3社交平台的核心优势不仅在于去中心化,还在于用户的资产和身份是一体的:你有什么Token就证明了你是谁。而依赖于web2的社交关系搭建的web3社交平台,是可疑而且狭隘的。 介于本人无力自己搭建一套通信体系,我就只能依赖于现有的区块链网络搭建一个去中心化的通信协议了。

希望能对未来有所帮助。

点赞 2
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
33357
33357
0x1f24...fa59
传播区块链技术,躺赢未来人生