1. BSV中文网 - 最大的比特币BSV新闻资讯网站!首页
  2. 技术发展

unwriter|新世纪–拓扑排序的比特币数据库

unwriter发布了一个由变形虫(Planaria)驱动的新的比特币数据库,拓扑排序的比特币数据库,叫做新世纪(Neon Genesis)。Planaria系统基于BSV运行。

原创:unwriter

中文翻译:刘晔律师

今天我将发布一个由变形虫(Planaria)驱动的新的比特币数据库,叫做新世纪(Neon Genesis)。新世纪是创世纪(Genesis)的一个分叉,但有一点扭曲:

 交易拓扑

是的,拓扑交易排序TTOR(或自然排序)能够驱动比特币产生许许多多的应用场景。

下面我将解释这在实践中意味着什么,但首先,提供一个公共端点:

unwriter|新世纪--拓扑排序的比特币数据库

顺便说一下,如果你对《创世纪》还不熟悉,它是一个构建于比特币的结构化数据库,不仅包括交易图谱,还能索引每一个推送的数据,使得在各种比特币的应用程序中可轻易查找。下面这个链接可以帮助你学习有关《创世纪》的知识。

unwriter|新世纪--拓扑排序的比特币数据库

为了理解《新世纪》的工作原理、工作方式,我们需要先理解比特币中的时间概念。我们从时间开始讨论。

比特币是时间

比特币象时钟,每一个区块就是时钟的嘀嗒声。同一区块的每一事物可以认为是同时发生的。我在这篇文章《时间(Chronos)讨论过这一主题。

unwriter|新世纪--拓扑排序的比特币数据库

然而……

现实社会不是这样运行的。比特币不是科幻小说,它存在于现实世界中,只有当它成为世界的通用发动机时才会变得强大。我们不能假装比特币存在于它自己的孤立宇宙中,我们需要创建尽可能多的门户,这样Alice就可以在任何时间跳进兔子洞与Bob进行交易。

实现时间

解决这个问题的第一种方法是Chronos。 Chronos 没有将同一区块中的每个交易视为同一时间戳,取而代之的是进行了权衡,使用主机比特币节点的”先见”时间戳来索引交易。

Chronos的时间戳交易基于比特币的节点主机发现这些交易的时间,而不是区块时间

这意味着每个 Chronos 节点彼此拥有不同的时间戳数据,因为每个节点发现的交易相互独立。

这是Chronos做出的权衡。通过支持现实世界的时间戳,它失去了一点决定论。但对于许多应用程序来说,这是可以的,而且对于各种应用场景Chronos仍然非常有用。

事实上,它是如此有用,以至于一个名为“周刊weekly”的新用例刚刚发布,它支持7天的历史,而不是 Chronos支持的最初24小时窗口期。 以下可以看到它的使用:

unwriter|新世纪--拓扑排序的比特币数据库

但是,还有其他的方法吗?

薛定谔的比特币

时间不是线性的。线性时间只适用于那些亲身经历过的人。

有多个时间线同时存在。每个比特币节点在它自己的时间线里,都有自己的宇宙。时间在每个现实中线性流动。在每个现实世界中,猫的死活状态是决定了的,但对于外部世界来说,只有打开盒子”观察”它们才能决定。盒子,就是一个新区块的存在形式。

unwriter|新世纪--拓扑排序的比特币数据库

没有绝对的终结,只有概率的终结。当一个矿工挖到一个区块,其他矿工复制那个状态时,就达到了”终结”,此时流逝了足够长的时间 (例如,20个区块),没有优势现实通过重组被另一个更强的现实所取代。

直到一个区块被挖出,没有人知道这只猫是死是活。一旦一个区块被一个节点挖出,它就会通知邻近节点有一个新的现实。邻近节点可能跟随也可能不跟随这个新的现实,但最终他们将不得不跟随,因为这样做在经济上是有意义的。很快,这个新的现实变成整个网络的优势现实,一个优势的时间线诞生了,从这个时间线上,多重宇宙重新开始同样的过程,每一个都在上面建立自己的现实,竞争成为决定下一个现实“时代”的人。

时间如何在薛定谔的盒子里流动

让我们回到先前说过的话:

“在同一区块内发生的所有事情都应该被认为是同时发生的。”

这仍然是真实的。同一区块中的所有交易共享同一个 Unix 时间戳。

但是薛定谔的盒子里发生了什么事情呢?在盒子里,时间仍然是线性流动的。猫也是同样感知到时间的线性流动的。但是,在盒子中,每个交易没有绝对时间戳,没有UNIX时间戳之类的东西。 随着比特币挖矿的进化和变得并行化,这将尤其真实。因此,试图为区块中的每个交易确定一个”真实世界时间戳”的概念是没有意义的。

然而在这里,我们确实有一些非常有价值的东西,那就是相对时间线。仅仅因为你不知道现在的时间是多少(即绝对时间),并不意味着你感知不到时间的流动(即相对时间)。

下面是比特币的可视化图。水平虚线是每个节点内的相对时间线,这些时间线都在区块内(垂直直线)解析成一个单一的绝对时间戳。

unwriter|新世纪--拓扑排序的比特币数据库

想象你是一个囚犯,被送到一个隔离室,没有光线,也不知道外面发生了什么。在隔离室里呆上几天,你会很快失去对时间的感知。这就是薛定谔对他的猫所做的。然而,不要害怕!你仍然有能力感知”相对时间”。如果你站起来,然后坐下,你知道站立发生在坐下之前。这就是相对时间。即使这个相对时间线不能以外部世界的绝对时间线为基础,仍然具有重要的意义。

时间战争

每个比特币节点都有自己的现实(相对时间线)。所有这些现实彼此可能有完全不同的顺序。

unwriter|新世纪--拓扑排序的比特币数据库

例如,在新块挖出之前,节点 x 中的交易 a 可能在交易 b 之前发生。然而,在节点 y 中,事务 b 可能发生在 a 之前,所以… … 这在整个事情的大计中重要吗?这种差异是否意味着相对时间线是无用的?

不,完全不是。将之看成一场战争。每个节点都是一个宇宙,永远在为权力而战。他们努力确保他们的现实成为优势现实。如果他们的现实成为”下一个时代”的主导者,他们将立即获得比特币的回报。

那么,为什么在”world 100″中,交易 a 出现在 b 之前,而在”world 200″中,交易 b 出现在 a 之前是可以的呢? 因为历史是由胜利者书写的。如果”世界200″最终征服了多元宇宙,”世界100″怎么想并不重要,因为多元宇宙系统中的其他宇宙将很快遵循”世界200″的统治。如果你输了一场战争,接受现实并为下一场战争做准备是明智的。

新世纪的介绍

新世纪,顾名思义,产生于《创世纪》。 那么它有什么不同呢?为什么它是有意义的?

它支持交易拓扑。

此处“交易拓扑”是我们整篇文章中一直讨论的”相对时间线”。我们都知道比特币的区块是由交易组成的。它们是按照发现顺序在节点挖出区块时存储的。

到目前为止,已有三种按时间顺序排列的方法来对各种变形虫节点的交易进行分类排序:

1. 区块时间: blk.t,在创世纪,巴别塔等中。

2. 区块高度: blk.i 在创世纪,巴别塔等。

3.  真实世界时间:timestamp,在Chronos 中。

注意,blk.t 和timestamp 是绝对时间,而blk.i 是相对时间。

现在在《新世纪Neon Genesis》里,我们可以获得一个区块内的相对时间。这里有一个显示《新世纪》如何工作的简单方法:

unwriter|新世纪--拓扑排序的比特币数据库

相对时间线由一个具有新属性名为“i”的来表示。这个新属性表示一个区块中交易的相对顺序。例如,如果一个交易是包含在一个区块中的第7个交易,那么它的“i”属性应该是7。

这意味着你可以这样查询:

unwriter|新世纪--拓扑排序的比特币数据库

在这里,它只是获取最新的20个交易项,但是按以下方式排序:

1. 首先是区块高度(“blk.i”)

2. 然后是索引(“i”)

例如,如果当前块高度为582609,如果有:

·        1582607区块有14个交易

·        582608区块有7个交易

·        582609有3个交易

上面的查询将返回582609中的所有3个,582608中的所有7个,然后是区块582607中的最后10个交易(i的范围 在4到13之间) ,按照区块中的相对顺序排序。这意味着什么?

这意味着跨区块、区块内,乃至在整个区块链对交易进行分类排序是可能的。。

也意味着建立一个单一的标准时间线,作为绝对时间和相对时间的混合体是可能的。下面是一个例子:

unwriter|新世纪--拓扑排序的比特币数据库

黑色圆圈表示交易,圆圈内的数字表示区块内的相对顺序。从这个图表我们可以构建一个单一的按时间顺序排列的二维时间线:

(27182818, 0), (27182818, 1), (27182818, 2), (27182818,3), (27182818, 4),

(27182819, 0), (27182819, 1), (27182819, 2),

(27182820, 0), (27182820, 1), (27182820, 2), (27182820, 3), (27182820, 4),

(27182820, 0), (27182820, 1)

想玩玩数据库吗? 这里有另一个例子,你可以尝试一下:

https://neongenesis.bitdb.network/query/1hcbpzwokdl2fhcmbocqmluftysid73u1j/ewogicj2ijogmywkicaicsi6ihskicagicjkyii6ifsiyyjdlaogicagimzpbmqioib7fswkicagicjzb3j0ijogewogicagicaiymxrlmkioiatmswgimkioiatmqogicagfswkicagicjsaw1pdci6idewmaogih0sciaginiioib7ciagicaizii6icjblltdihwgeybvcmrlcjoglmksihr4awq6ic50ec5olcbibg9jazoglmjsay5pih1digogih0kfq==

unwriter|新世纪--拓扑排序的比特币数据库

时间(Chronos) vs 新世纪(NeonGenesis)

为了真正弄清这一切是如何工作的,以及意味着什么,我们比较一下 Chronos 和 Neon Genesis,只是为了好玩。

以下是两者之间的第一个区别:

·        Chronos: 由内存池中的绝对时间戳驱动

·        Neon Genesis: 由一个区块内的拓扑顺序驱动

第二个区别,

·        Chronos: 每个交易都有一个绝对时间戳(发现它们时的 Unix 时间戳)

·        Neon Genesis: 每个交易有一个二维时间戳: 一个绝对时间戳,一个相对时间戳。首先我们有区块时间blk.t的绝对时间戳(它们也有相对时间戳blk.i,但这超出了本文的范围),然后在同一个区块中,每个交易都有自己的相对索引i。这些索引不是绝对时间戳,而是仅仅告诉你它们在每个现实中发生的顺序

用法

您可以使用它来实现社交媒体的广告供稿、日志或任何与现实世界时间有关的东西。

就像 Chronos 一样,你可以用Neon Genesis 来处理各种与时间相关的事情,但是方式不同。事实上,你甚至可以同时使用 Chronos 和 Neon Genesis。

例如,想象 memo 已用Planaria 实现这项服务。它可以结合使用 Chronos 和 Neon Genesis:Chronos 作为备忘录中的帖子,而Neon Genesis 作为区块中的帖子。

看起来和中心化的社交媒体服务的工作方式有点不同,因为使用 Neon Genesis,时间戳看起来会像这样:

alice: just updating my memo         Block 27182818:Index 31415

rando: @_unwriter Hello! How are you? Block 27182818:Index 31414

_unwriter: Hello World!              Block 27182818:Index 31413

或者,如果它使用“时间之前”格式,可能会采用一个新的比特币相对时钟单位(为了简洁起见,我们在这里称之为“嘀嗒(tick)”) ,可能看起来像:

alice: just updating my memo                11 TICKS AGO

rando: @_unwriter Hello indeed! How are you?  12 TICKS AGO

_unwriter: Hello World!                     13 TICKS AGO

这是唯一可能,因为我们可以从比特币创世区块的第一笔交易开始,以所有方式为每一笔交易建立一个单一时间线。这种绝对时间和相对时间的混合概念,对于比特币中的各种事物,是一个非常强大的新维度。

总结

新世纪是一个可以被所有其他 Planaria 节点采用的实验,所以如果你喜欢它,请让我知道,我甚至可能扩大到对其他Planaria 节点的支持。

此外,这种实现利用了我正在研究的 Planaria 的一个新特性,我计划很快公开推出这个特性(这就是为什么新世纪还没有在 Planaria.net 工作上注册的原因) ,所以请继续关注这个特性。

比特币历史比特币是什么,比特币Satoshi Vision(BSV)是今天唯一遵循原始Satoshi Nakamoto白皮书的比特币项目,它遵循原始的Satoshi协议和设计。BSV是唯一一个维持比特币原始愿景的公共区块链,建设metanet,并将大规模扩展成为全球新的货币和企业区块链。

【免责声明】本文仅代表作者本人观点,与本站无关。网站对文中关于比特币,BSV,比特币SV,bitcoinsv等观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何保证。请读者仅作参考,特此声明!转载请注明出处:https://www.bsvers.com/956.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

QR code