Metanet 开发者指南

Metanet 开发者指南

元网 (Metanet) 是世界上第一台四维计算机,由比特币本地驱动,生存于比特币。

元网具有强大的特性,比如:

  1. ** 绝对的数据所有权 **:许许多多 “去中心化” 的崇拜者试图解决这个问题,但一一失败了。元网通过使用比特币从根本上解决了这个问题。

  2. ** 可替代的计算 **: 如果正确使用,比特币是隐私的和可替代的。元网充分利用了这个特性,提供了一种可替代的计算框架,而其他任何 “区块链平台” 从无这种可能性。

  3. ** 无限计算 **:两种强大方案的结合,开启了一个新的计算维度。

就在今天,我发布了一个系统,可以帮助驱动元网,叫元网变形虫(Metanet Planaria)。

. . .

Metanet 开发者指南

它不是大多数人想的那样。

目录:

  1. Metanet 介绍
  2. 建立 Metanet 应用程序
  3. 结论

Metanet 介绍

自去冬以来,许多人一直在*讨论 “Metanet” 有多伟大。但事实是,这些都不是 Metanet。Metanet 从未存在过。

上周末情况发生了变化。它现在已经存在。

在你恐慌之前,让我澄清一下,Metanet 并没有让你在比特币上已建立的任何东西失效。它像是对现有协议的扩展,意味着你不必用它,但是如果你用它,它将会更加强大。请继续阅读以学习更多。

创世纪的 Metanet 图是上周末完成的:

Metanet 开发者指南

大多数人不理解: Metanet 不是什么哲学概念。它也不是一个模因(meme)。Metanet 是一个非常具体的协议,同时也是非常通用的协议,如此通用以至于它变得哲学化。

听起来很矛盾吗?生活中最好的东西就是矛盾。

那么什么是 Metanet 呢?

下面是一个很棒的演示:

Metanet 开发者指南

我把它分解成一句话:

Metanet** 是基于比特币的数据结构。**

Metanet: 基于比特币的数据结构

Metanet 是一个简单协议,允许你在比特币上创建虚拟数据结构。通过有向无环图 (DAG) 的形式,让你创建计算科学中使用的任何典型数据结构。

  1. 数组是按时间 / 拓扑顺序排列的父 + 子树。
  2. 图是父 + 子树,每一个节点由唯一的私钥识别。
  3. 你甚至可以发明自己的数据结构。

它不只是一个任意数据结构。它是一种可以存储、传输和赋予真实价值的数据结构。所有这些都由比特币本地驱动,可以用你想到的任何方式在比特币编程运行。

比特币 + 元网(Metanet): 最高效的可编程数据账本

比特币是最有效的 ** 数据存储协议 **,元网是位于比特币之上的最有效的数据结构协议。

首先阅读下面的贴子,了解一下高效的 ** 数据存储协议 ** 意味着什么。

Metanet 开发者指南

其他臃肿的 “区块链” 项目剽窃了比特币,却以一种完全天真和业余的方式将它们的全部历史状态存储在链上,以致根本不能扩容。比特币与它们不同,比特币基于 UTXO (未花费交易输出)。

最小的 UTXO 结构,允许链上与链外计算之间的强大交互,并且可以 ** 无限扩容 **。

当你可以在区块链上建造薛定谔的猫时,为什么要在区块链上建造猫?

Metanet 开发者指南

在这里,函数式编程与面向对象编程(OOP)两个范式之间的差异是巨大的。对于初学者来说,函数式编程可以做任何 OOP 可以做的事情,但更小、更可扩展和更健壮。正如我在前面推特提到的,所有大企业都将他们的关键任务系统从面向对象式转移到函数式,是有原因的。

但更重要的是,函数编程范式是 Metanet 如何增加一个计算维度,这一点没有其他系统可以做到,因为它们是基于面向对象编程范式的原始刚性结构。

用最小的 ** 数据存储协议 **(即比特币),在顶部构建最小的 ** 数据结构协议 **(即 Metanet),当两者产生 ** 化学反应 ** 时,最终得到的是最简单但最强大的可编程账本。

** 简单是终极的复杂。**

Metanet 上有它自己的维度。当你看到它时,其他的东西看起来像玩具一样。如果你不相信我,或者不理解,那就忽略它,并继续玩你的业余计算器吧。我们将用超级计算机来灭迹。

Metanet: 可替代的超级计算机

人们一直在比特币中谈论 “可替代性(fungibility)”, 但是绝大多数人完全误解了“可替代性” 的工作原理。这就是为什么你会看到一些不幸的、低级的、非法的解决方案比如混币服务,即将多人的交易混在一起,以模糊资金流向。

当他们在热烈谈论 “区块链的透明度” 时,又在谈论如何模糊交易。

当他们在称赞比特币是 “真相机” 时,又致力于将交易移到链外,以隐藏真相。

他们不理解比特币区块链的强大在于“链”。他们不理解,可能还有更好的方法在保持资金透明流动的同时,实现隐私。仅仅因为你缺乏足够想象力而没有找到解决方案,不意味着不存在方案,只意味着你的想象力不够。

又,发明者自己也在白皮书的整个章节中明确提到了所有这些内容(阅读全文) :

Metanet 开发者指南

比特币可替代性的关键不在于非法混币。可替代性的关键是 ** 永远不要重用**,每进行一次交易都生成一个新** **。当然,有时重用**是方便的或者不可避免的,但是对于绝大多数情况,你可以通过每次派生一个新**来实现可替代性。

** 但 Metanet 走得更远。**

如果你认为可替代交易很酷,那么稍等等,等你了解了 ** 可替代计算 ** 之后再说吧。

过去有各种各样的将 “区块链作为一个计算机” 的尝试,但他们全部失败在可替代性上。

所有将自己称为 “DApp 平台” 的区块链系统都属于这一类。所有这些所谓的 “作为一个计算机的区块链” 都是简单化系统,在结构上有内在限制,原因是它们放弃了 UTXO 系统,导致缺乏可替代性,并限制了计算能力

如果深入研究这些“DApp 区块链平台”,它们不过是非常原始的 key/value 数据库系统。事实上,如果你将它们与我们今天使用的企业和消费者 APPs 中的任何一个典型应用程序比较,它们看起来就像玩具一样。

我们可以把它们视作 “2D” 计算。既原始且有限。

Metanet 开发者指南

接下来是“3D 计算”。这些系统没有犯下抛弃比特币发明的优雅 UTXO 系统的错误。其中绝大多数协议建立在比特币之上。然而,他们的能力也很有限。由于采用 UTXO 架构,它们有些潜力,但无一展现它们了的全部潜力。因为它们没有一个像 Metanet 那样找到使用**的方法,他们都受困于脆弱的系统,没有什么可用性,最重要的是,** 缺乏可替代性 **。

最后我们有了 Metanet,一个基于 UTXO 的四维计算机。通过为每个新交易生成一个新**,并用生成的**标识数据结构中的每个节点,Metanet 树与 HD **树组合,** 打开了通往一个全新维度的大门。**

由于比特币、 Metanet 和**之间强大的交互作用,我们不仅有可替代的交易,而且还有一种实现可替代计算的方法。

值得注意的是, Metanet 不是一种关于 “去中心化但原始与业余的计算” 的业余想法。

** 目标不是建立一些业余的 “去中心化” 科学项目。**

** 目标是建立一个前所未有的全新的确定性的超级计算范式。** 如果你这样看,所有其他的 “区块链项目” 看起来像一个玩具或一个可爱的社会实验。

最重要的是,与所有的 “DApp 平台” 不同,比特币 + Metanet 的工作方式是 100% 合法的、可扩容的,并且得到了开启整个行业的共识机制的保护: 工作量证明挖矿。

Metanet 是比特币的无限转换函数

去年我发布了这条消息:

Metanet 开发者指南

Metanet 就是比特币缺失的这种 " 转换函数”。但并没有改变比特币的工作方式。相反,它以最强大的方式利用了比特币现有的独特性性。它可以无限扩容。只需要你以开放的心态去管窥这个新的维度。

现在我已经简要地介绍了 Metanet,下面看看如何在 Metanet 上构建实际的应用程序(APPs)。

构建 Metanet 应用程序

** Metanet 范式 **

那么 Metanet 在实践中是如何工作呢?什么是范式?

它就像存在于比特币上的云。不,它根本不是“一个类似 Dropbox 的系统”。我嘲笑那些曾经说过“因此它就像一个 Dropbox?" 的人。跳出你的小 Dropbox,开放式思考。这是一个全新的范式。

当我说云时,我不是说传统意义上的“云“,我是指真正生活在区块链上的云。由于这种微妙但重要的区别,你能够最终拥有自己的真正数据。

而且它比任何现有的云平台更安全,因为所有的同步都是通过你自己的**执行的只要你拥有密匙,你可以从任何地点、任何时间立即“同步“区块链。结合派生的 HD **,它给了我们另一个计算维度,可以实现许多前所未有的事情。

下面是 Metanet 演示中的一个图表:

Metanet 开发者指南

这里有两个部分:

  1. 区块链数据提供者: 由于直接从区块链同步是低效的,你可以连接到数据提供者比如 Planaria 或 Bitbus 上,只请求和同步你需要的数据 (Planaria,当你想运行一个无服务器的应用程序时;Bitbus,当你想构建你自己的专业化后端,并作为你自己的一个 Planaria 节点提供时)。这些数据提供者有一个确定性的数据派生机制,可以将区块链变成一个可查询的 API。另外,需要注意的是,这些都是“傻瓜式” 的 API,没有降低应用程序跨平台的锁定机制

  2. SPV(简单支付验证): 使用 SPV 来验证你从上述数据提供者那里收到的数据的真实性。这一部分是可选的,但随着更多关键任务的应用程序围绕这一范式构建,这一部分将变得越来越重要。这部分还需要做更多的工作,但我们会做到的。

这与 Planaria 的最初愿景是一致的 (我在 Planaria 文档的“从读取中分离写入” 章节讨论了这一点) :

Metanet 开发者指南

重要的是,这些数据载体解除了从写入到读取的捆绑。

同样重要的是,这些数据载体解除了身份验证与数据传输之间的捆绑,赋予钱包全部权利,同时向用户提供 “傻瓜式” 服务,在非捆绑的各方之间创建了强大的交互作用 (请阅读 Planaria 文档中的“去中心化认证” 部分)

Metanet 开发者指南

从现在开始,你可以更进一步,使用 Neon Planaria 这样的系统构建一个强大的计算框架,甚至可以回溯计算区块链,但这是以后的事情了。今天让我们把注意力集中在阅读部分。

Bitcom + Metanet

不久前,我提出了一个新的,去中心化的注册比特币应用协议的方法,叫做 Bitcom: https://bitcom.planaria.network.

Bitcom 是一个“协议的协议”,一个用于注册协议的协议。

在 Bitcom 之前,区分一个应用程序协议交易和另一个应用程序协议交易的传统方法是由应用程序协议管理员提出一个任意的 OP-RETURN“前缀”约定,这是位于 OP_ RETURN 之后的第一个推送数据。

Metanet 开发者指南

这种方式自然而然地使得应用程序协议的处理变成中心化了,因为应用程序开发人员必须任意提出自己的协议前缀,然后注册到一个中心化目录的某个地方,在这里,总有一群中心化的委员会来同意或拒绝列出许可清单。为了避免名称空间的冲突,这是必要的。

创建 Bitcom 就是为了解决这个问题。

解决方案是 使用随机生成的比特币地址作为前缀,并将其发布到区块链。随机地址的唯一性确保了在避免名称冲突的同时不需要一个中心化的目录,直接发布到区块链,并提供一个去中心化的协议注册。

Metanet 开发者指南

从那以后,许多比特币 SV 应用程序开发者社区已经接受了这个约定,推动了诸如 B://、C:// 、 D://、 MAP、BCAT、AIP 等协议的产生。

你可以在这里看到全局日志:

Metanet 开发者指南

那么 Bitcom 如何使用 Metanet 呢

感谢 Metanet 协议的优雅设计,Bitcom 和 Metanet 具有完美的兼容性。事实上,这两份协议似乎是天生一对。

一个很好的思考方式是:

  • Bitcom 是一种数据模式协议
  • Metanet 是一种数据结构协议

Metanet 开发者指南

在 Metanet,每个节点都可能有一个附加的推送数据序列来实现应用程序协议,同时 Metanet 协议创建一个覆式数据结构来组成这些节点。在下面的示例中,我们看到一个 Metanet 节点交易包括了 B Bitcom 协议。

Metanet 开发者指南

Metanet** 查询:**** 简单的方法 **

Metanet 使用前缀 meta 来表示该交易属于 Metanet 交易。由于 Metanet 交易都正好是比特币交易,你已经能在 Neon Genesis 上看到 Metanet 交易:

https://neongenesis.bitdb.network/query/1HcBPzWoKDL2FhCMbocQmLuFTYsiD73u1j/ewogICJ2IjogMywKICAicSI6IHsKICAgICJmaW5kIjogewogICAgICAib3V0LnMxIjogIm1ldGEiCiAgICB9CiAgfQp9

Metanet 开发者指南

这里的问题是,它只是一个全球 Metanet 交易数据的傻瓜式列表。

** 然而,Metanet 的真正力量也在这个图表中 **

针对上面的数据,实际上你没有什么可以做的,因为它不支持一个图的遍历查询。

我们需要某种能够处理图表的东西。

这就是元网变形虫 (MetanetPlanaria ) 所做的。

元网变形虫 (Metanet Planaria) 介绍

上面我经提到 Metanet 有两个部分:

  1. 数据提供者

2.SPV(简单支付验证)

** 变形虫 ** 可以解决第一个难题: 数据提供者。

Metanet 开发者指南

下面是 Metanet 与 Planaria 其他节点如《创世纪(Genesis)》、《巴别塔(Babel)》和《时间(Chronos)》之间的区别。

  1. ** 只索引 Metanet**: 以 meta 前缀的所有交易,再无其他。

2.** 图遍历 **: 只查询 Metanet 子图的能力

这意味着当你简单查询时,你能得到全局 Metanet:

{

“v”: 3,

“q”: {

“find”: {}

}

}

来自 metanet planaria。

但是最重要的在第二部分,即图查询。让我们来看看。

** 变形虫的元网查询(PlanariaMetanet Query)**

下面是一个 Metanet 图的例子。我们先假设 “Domain P0” 是 Bitstagram 的世界。

Bitstgram 当前版本的的问题在于它只是一个全球 feed,没有用户的概念。但是我们可以想象一个支持用户账户的 Bitstagram,由 Metanet 驱动。

Metanet 开发者指南

“Domain P1,P2,…”可能是它的用户帐户。每个用户都有子节点,每个子节点用于组织其子树的数据结构。

例如 “Domain P1,1” 可能代表用户的时间线。为了能够得到用户的时间线,我们可能需要作如下查询:

查找 DomainP1,1 下的所有节点,这些节点遵循 Bitcom 协议

19HxigV4QyBv3tHpQVcUEQyq1pzZVdoAut

为此,首先要选择节点(P1,1–TxID1,1),然后遍历其所有后代(P1,1,1- TxID1,1, 和 P1,1,2- TxID1,1,2) ,以便过滤只包含 19hxigv4qybv3thqvcueqyq1pzzvdoaut 前缀的交易。

也有可能,有时你需要降低遍历水平。有时你希望遍历,同时按属性进行过滤。有时你希望将过滤后的结果只返回到某些特定属性。

听起来很强大?是的,今天这一切都是可能的。

那么它到底是如何工作的呢?你应该查询什么?

** 比特查询(Bitquery): Metanet 版 **

能够有效地进行灵活的图查询, 意味着以下类型的查询是可能的:

  1. 获取一个 Bitcom 协议 X 后面的全局 Metanet 图的所有项(例如, B)。

  2. 获取一个单一用户在 Metanet 图中的所有“文件”。

  3. 筛选 metanet 中出现在子树中任何位置的特定属性。

  4. 获取一个包含特定属性的某组织的子树图,但是运行部分遍历(不是完全遍历叶节点)。

为了提供这个特性,我们为 Bitquery 引入了一个新特性:“选择”。

Metanet 开发者指南

基本上,它通过三个属性中的任何一个选择一个节点:

  • “a”: 地址
  • “tx”: 交易 id
  • **“id”????*H(地址 || 交易 id)

然后从那里遍历它的后代,并准确地过滤你正在寻找的东西。如果你以前使用过 Bitquery,那么查询语言的其余部分应该很熟悉,因为它与所有 Planaria 公共节点以及 Bitbus 中使用的 Bitquery 是相同的。

注意它只是 Bitquery 的一个扩展,支持所有你已经熟悉的特性,比如“映射(project),甚至是 JQ 提供支持的转换函数“r.f”。

以下是一些查询示例:

在这里,我们选择根节点 (A0,Tx0) 并从那里运行查询。查询将过滤子树并返回响应。

Metanet 开发者指南

下面我们选择(A2,Tx2) ,然后从那里遍历图并查询它的后代。

Metanet 开发者指南

最后在下面的图中,我们选择 (A3,Tx3) 并从那里开始查询:

Metanet 开发者指南

结论

Metanet 是一个强大的协议,可以从比特币交易中创建数据结构。

  • 它是第一个也是唯一一个可替代的计算平台。
  • 它是有史以来第一个真正让你拥有自己数据的解决方案。
  • 它可以让你构建一个便携式无限计算机。

今天,它已经为你的建设准备好了。

访问元网变形虫:https://metanet.planaria.network

阅读元网白皮书: https://bico.media/bit://15DHFxWZJT58f9nhyGnsRBqrgwK4W6h4Up/d774b792301a3fe5dc1f4ffce53d28ee3997732b5cc7b1a49b6fe5abe76fff8d

分类:

技术点:

相关文章: