化名为unwriter的开发者继续构建工具,帮助那些希望在比特币SV(BSV)之上构建的人们简化应用程序开发。自2019年5月以来,以及我在CoinGeek多伦多发表演讲以来,他发布了许多工具。
本文将以高标准一一点评自那时以来发布的每个工具,并点评每个工具的潜在用例(以类似于我之前撰写的文章格式),以总结出2019下半年unwriter完成的事项。
在这里点评的第一组工具是较低水平的管道类型工具,因此用例更侧重于开发人员,而不是以业务和最终用户为中心。
这是两部分系列的第一部分,另一篇相似格式的文章将在下周发布。
[caption id="attachment_236662" align="aligncenter" width="624"] 资料来源:https://overpool.network/[/caption]在深入了解每件工具前,请注意来自unwriter的Overpool 文档中的上述图像。此图像呈现的了他们对工具如何与比特币交互有着什么样的愿景。在阅读本文时,请参考此图像。
Neon Planaria
[caption id="attachment_236666" align="aligncenter" width="406"] 资料来源:https://neon.planaria.network/[/caption]我在演讲中介绍了旧的Planaria,但自那以后,它经历了巨大的演变。unwriter现在已经把它分成两部分,即Neon Planaria和Grid Planaria。
在功能方面,Neon Planaria与原来的Planaria相同。主要区别是,它现在更加精简,其中的编写代码更少,并且消除了以前的设置要求。它实现了三个事件处理程序函数,就像旧版本一样:
- OnStart - 应用程序启动时调用
- OnMempool – 当新交易到达mempool时调用
- OnBlock – 挖采新区块时调用
Neon Planaria 还提供应用程序编程接口(API)供您自己或他人与(名为 Planarium)交互。开发人员可以利用此处的功能:
- OnStart - 应用程序启动时调用
- OnQuery - 查询API时调用
此外,开发人员可以实现自己的自定义 JSON 查询语言,而不是仅实现bitquery。这非常强大,因为Neon Planaria实例可以实现其他现有应用程序已经使用的某些 JSON 查询,或者他们可以实现其他应用程序将来可以使用的一个特别强大的查询,从而简化应用程序交互的路径。
用例
从比特币交易中创建任何格式的自定义、过滤数据库。此框架简化了此功能所需的开发,我们不再需要遵循仅使用MongoDB这个条件。此外,开发人员可以聚合比特币交易,并轻松地通过HTTP向其他人提供服务。
Grid Planaria
[caption id="attachment_236669" align="aligncenter" width="396"] 资料来源:https://grid.planaria.network/[/caption]Grid和Neon Planaria之间的主要区别是,Grid Planaria直接与比特币节点交互,专注于将原始比特币交易转换为某种高效的数据格式。它不仅负责高效地交付数据,而且还以可读格式存储数据。
应用程序应使用 Neon Planaria,而更繁重的数据处理和格式化应用程序则应使用Grid Planaria。Grid Planaria实现BOB序列化,稍后将对其进行审查,并且比之前的TXO格式更加可靠和可扩容。
用例
矿工可以将Grid Planaria作为增强软件与节点一起运行,作为他人将数据盈利化的一个方法。既然他们已经需要为业务运行一个节点,鼓励他们保留数据而不是移除数据显得更合理。
与Neon Planaria一同实现此功能,建立一个框架,让矿工可以开始向消费者提供这些数据。通过内置的API,他们可以知道哪些数据最常被请求,进而确定保留那些有价值的数据,然后移除其余数据。当这些工具被矿工使用时,才真正体现了比特币的经济性。
Bitwork
[caption id="attachment_236672" align="aligncenter" width="522"] 资料来源:https://www.bitwork.network/[/caption]Bitwork 是一个从比特币网络中抽象处理数据的库。它移除了处理底层P2P协议和JSON-RPC的复杂性,简化了开发人员直接从节点读取数据的方法。该库也有用于解析和映射数据的函数。
正如unwriter所指:
“Bitwork可让您像对待HTTP一样对待比特币。”
开发人员可以指定要连接到哪个节点并从中获取数据,这可以为矿工带来另一个赚钱的路径。提供的模式有两种:
- Fetch - 从比特币获取数据(一次性查询)
- Listen - 事件处理程序,在交易到达节点后执行某些操作
BPU - 比特币处理单元
[caption id="attachment_236675" align="aligncenter" width="624"] 资料来源:https://github.com/interplanaria/bpu https://github.com/interplanaria/bpu[/caption]BPU是开发人员定义自己的交易格式的一种方法,而不是只使用之前在unwriter的工具中所用的TXO格式。BPU库可以将比特币交易反序列化为某种可读格式。输入、输出和OP_RETURN推送数据可以构造成一致的格式。该库为开发人员提供了自定义功能,让他们自行决定他们的应用程序中的比特币交易格式。
用例
构建现有应用程序可以轻松读取的自定义交易格式。如果与它集成的应用程序支持某些格式(如CSV或JSON),则可以利用此库将交易数据转换为该格式。
我与(Microsoft Dynamics 365)一起使用的ERP 系统具有标准功能,其中外部应用程序可以将一些JSON或CSV文件发布到 HTTP终结点。然后,系统可以获取该数据并进行处理,例如创建销售订单。在此场景中,BPU库将帮助以有意义的方式对比特币交易进行变形,从而减少ERP和集成应用程序方面的开发工作量。
BOB - 比特币OP_RETURN字节码
[caption id="attachment_236678" align="aligncenter" width="306"] 资料来源:https://medium.com/@_unwriter/hello-bob-94701d278afb[/caption]BOB是OP_RETURN比特币交易的一种新的序列化格式。如前所述, _unwriter之前的所有工具都使用直截了当的TXO格式。
BOB以更灵活、优化和可扩容的方式设置交易格式。TXO的缺陷是为输入、输出、区块属性和OP_RETURN推送数据提供固定位置。一旦应用程序开始连接Bitcom协议,查询TXO就变得不可持续。
下面的示例说明了我们如何使用TXO查询多个B:\\文件。在查询前,我们需要知道固定位置(s2、s6、s11),大体上这是一个糟糕的做法(类似于硬编码)。
BOB 允许我们查询B:\\文件的每个实例,而不是固定位置。B:\\协议前缀的简单查询将返回使用它的所有实例。
之前,我们只能找到纯B:\\交易,现在通过使用BOB,即使数据实例用于其他交易的子集或不同的推送数据位置,都将会返回。BOB具有解决“创世”的OP_FALSE和OP_RETURN升级的额外好处,因为它不再依赖于OP_RETURN操作码处于特定位置。
用例
任何使用unwriter工具的开发人员都应使用BOB。BOB是一种更具扩容性的格式,在应用程序中实现将更为出色。现在更支持嵌套协议。之前使用TXO时,如果需要在B:\\文件之间建立链接,单纯的实现可能广播两个B:\\交易,其中第二个交易可能会添加字段来提及第一个。
现在,您可以将它们嵌套在一个交易中,像上述这样的简单查询将返回两个文件。
总结
即便已暂停筹资,unwriter在2019下半年也发布了许多有用的工具,BSV领域中的许多应用程序开发人员都在使用这些工具。unwriter 对他们如何看待围绕BSV展开的应用生态系统制定了一个愿景,同时这些工具对迈向此愿景是不可或缺的。
我认为,这些工具最终会被矿工主动采用,以便在利用算力和寻找区块奖励之余,找到其他通过他们的基础设施获利的方法,从而减轻对数据移除的激励的持续担忧。
https://twitter.com/_unwriter/status/1153692200959651842