努力提高
挖矿的姿势水平

【翻译】PegNet第一部分:概述和挖掘Oracle

原文 https://factomize.com/pegnet-part-one-overview-and-mining-the-oracle/

介绍

在过去的几周里,我参与了PegNet项目,我想分享我对它是什么以及它如何与世界其他地方合作的理解。我是开发人员而不是经济学家,所以我的观点更多地关注技术方面,而不是如何掌握市场。由于该项目的范围很广,本博客将分为多个部分,第一部分专注于Oracle。

PegNet是Pegged Network的缩写,是一组与现有货币挂钩的代币。它构建在Factom协议之上的Factom资产令牌(“FAT”)标准,意味着值和事务位于链和条目内并使用它将要求您使用EC。我们仍处于开发的早期阶段,在撰写本文时,我们正在准备启动PegNet测试网络的第一次公开测试,该网络涵盖了采矿过程。

虽然您不需要了解Factom协议如何深入工作,但您需要了解如何使用它的基础知识:

  • Factoids(FCT)是代币
  • Entry Credits(EC)用于写入条目
  • MainNet阻止时间为10分钟
  • 资助EC地址以支付采矿费用

概观

首先,让我们从PegNet的愿景开始:一个数字系统,可以让您将资产存储为美元,欧元,黄金甚至比特币等知名资产的等价物。目标是允许您以实际汇率在它们之间自由转换,而无需您处理实物黄金或进入交易所。汇率通过工作量证明挖掘过程确定。

PegNet内的资产标有“p”,然后是ISO 4217代码(或类似的等价物)。例如,美元是pUSD欧元pEUR,比特币是比特币pXBT,唯一的例外是PegNet自己的代币:PNT。每个Factoid地址都包含所有可用资产,这意味着FA...地址将能够发送和接收PegNet资产。总共有32个资产,包括美元基础和可开采的PNT。撰写本文时的完整资产清单

PegNet的三个功能是:

  • 您可以开采,这决定了汇率,并获得PNT奖励。更多细节如下。
  • 您可以将Factoids(FCT)刻录到Pegged Factoids(pFCT)。博客第二部分的更多细节。
  • 您可以按当前汇率将资产转换为彼此,或将其发送到另一个地址。博客第二部分的更多细节。

共识

PegNet是Factom之上的第2层应用程序。这意味着Factom的权威证明共识模型可以保证数据的可用性和不变性。PegNet本身是使用Trust Yourself概念对该数据的解释。这意味着您从Factom读取所有数据并确定哪些条目遵循规则,哪些条目不遵守规则。通过应用所有有效条目,您到达某个州,并且运行相同规则的任何其他人也将得出相同的结论。这允许您编写将被其他参与者视为有效的条目。

如果您选择更改规则,则其他参与者可能最终会忽略这些条目。您无法通过更改自己的规则来更改其他PegNet参与者的行为。

工作证明

在本文的其余部分,我将经常提到OPR的“难度”。这个难度是工作证明的结果。

PegNet使用名为LXRHash的自定义哈希,设计为GPU和ASIC抗性。其背后的想法是通过在内存中保留一个大表并以不可缓存的方式访问它来超载CPU缓存。PegNet使用一个gibibyte(2 ^ 30)表,其中包含种子0xFAFAECECFAFAECEC,映射大小30位,散列大小的256位和5传递。

OPR的难度计算如下:

  1. 计算整个Factom Entry内容的LXRHash,称为 OPR Hash
  2. 计算OPR Hash附加的NonceLXRHash,即Factom Entry的第一个ExtId的字节(ExtId [0])
  3. 获取步骤2中生成的哈希的前8个字节,并将其用作Big Endian无符号64位整数。这是Difficulty更高更好的地方。

在伪代码中,这看起来像:

func Difficulty(entry) uint64 {
    oprhash = LXRHash(entry.content)
    noncehash = LXRHash(oprhash | entry.extids[0])
    return (uint64)(noncehash[0-7])
}

甲骨文

Oracle决定了特定区块中使用的汇率。要点是所有矿工都会在每个Factom目录区块提交一些Oracle Price Records(OPR),这些记录将被评分,前十名接收PNT,获胜者设置交换价值。这个过程是一个连续的循环,一个循环持续十分钟,一个Factom目录块的持续时间:

  1. 等级:采取一切获得OPR的最新目录块和档次它们,这产生了十大获得OPR的名单内。这些是赢家,最好的记录设定了该区块的价格。
  2. 创建:从各种来源收集货币兑换数据,相对于美元。将这些与获奖者名单和您的信息相结合,形成下一个OPR。
  3. MINE:把你的OPR和我的大部分区块的持续时间,试图找到工作,你可以最高证据。
  4. WRITE:在块结束之前将要提交的OPR写入Factom区块链,以便可以对下一个块进行分级。

年级

目标是找到十个最佳OPR,其中“最佳”意味着最接近真实汇率。它依赖于这样的假设,即大多数矿工提交的真实数据非常相似,没有太多的偏差。如果块中的有效OPR少于10个,则没有获胜者,并且直到下一个获胜块才处理所有事务。

  1. 获取目录块中的所有OPR并丢弃格式无效的OPR
  2. 按照难度排序OPR,从最好到最差
  3. 扔掉除前50名以外的所有人
  4. 拿剩余的OPR和
    a。计算平均资产价值(留下32个平均值)
    b。对每个OPR进行评级,其中等级是OPR资产价值与平均值之间所有差异的总和,使用平均值归一化,升至4
    c 的幂。抛出最高等级的记录
  5. 重复步骤4.直到只剩下10个OPR(通常为40次迭代)
  6. 最后一次评分
  7. 按其等级对剩余的10个OPR进行排序,从最低到最高

在关系的情况下,首先出现在输入区块中的OPR赢得了决胜局。

有关详细示例,请参阅此Wiki页面

创建

目标是创建我们将提交的OPR。请注意,我们只需要创建一个我们可以多次提交的OPR。具有相同OPR哈希的提交但具有不同的随机数作为单独的条目。

要构建OPR,我们需要以下数据:

  • 上一个区块中的10个获胜者名单
  • 资产汇率
  • 您的信息,包括您的付款地址

矿工希望选择最接近其他人选择的值的平均值的值(请参阅评分)。PegNet软件在块的开头查询各种API(可在ini中配置),这应该建立一个难以破解的先例。API列表将随着时间的推移而增长,但这是一个每个矿工(或采矿池)可以实现他们自己的财务数据获取方式的领域,其目标是在其他人的中间。

所有这些信息都被编译成JSON格式,其具体规格在PegNet FATIP中有详细说明:https//github.com/Factom-Asset-Tokens/FAT/blob/FATIP-2-Pegged-Asset-Token-标准/ fatips / 2.md#opr-entry(在实施身份时可能会发生变化)

然后JSON被LXR哈希形成OPR Hash

目标是为具有高难度的OPR找到一个Nonce。计算OPR哈希本身的输入大约为800-900字节,从而产生32字节的哈希值。这只需要做一次。计算特定随机数的难度使用32 + size of nonce字节。你可以选择你想要的任何Nonce但是出于性能原因,保持它尽可能短是更有意义的,因为更长的输入将需要更长的时间来进行散列:

PegNet矿工运行int64(2 ^ 64个不同的nonce)范围,只在绝对必要时才生成新的字节。然后,此计数器以每个goroutine的单字节ID为前缀,每个实例最多允许256个矿工。在一台机器上运行更多的矿工比拥有CPU核心没有任何好处,但是:

您运行的矿工数量是配置文件中的设置,这在很大程度上取决于您的系统和首选项。一台机器需要至少1 GiBi的ram来保存字节映射,加上开销和操作系统。在同一台机器上运行的所有矿工将共享相同的RAM表。

目标是提交进入前50名的OPR,使其进入评分。如果他们提交的OPR进入前十名,矿工将获得报酬:

  • 第一名:800 PNT
  • 第二名:600 PNT
  • 第三到第十位:450 PNT

这导致每个目录块共支付5,000 PNT。一名矿工可以在列表中多次获胜,从而可以赢得所有5,000个PNT。这意味着提交的最佳OPR数量是您最好的。通过让软件自动检查最后几个街区的平均难度,看看进入前50名和前10名的预期门槛是多少,将来可以进一步优化。

现在需要注意的是:提交OPR需要花钱。OPR的字节大小低于1KiBi,只需要提交一个Entry Credit。可以购买一个入场券,相当于0.001美元。24小时窗口中最多有144个目录块,为我们提供了一个简单的价格表:

获得OPR 每块 每天 每个星期
1 1 EC
$ 0.001
144 EC
$ 0.144
1008 EC
$ 1.008
2 2 EC
$ 0.002
288 EC
$ 0.288
2016 EC
$ 2.016
10 10 EC
$ 0.01
1440 EC
$ 1.44
10080 EC
$ 10.08

您提交的OPR数量与您运行的矿工数量无关,并且可以通过配置进行配置RecordsPerBlock。由于这基本上是一个货币拨号,您可以选择要提交的OPR数量,但应该注意的是,每个块提交超过10个OPR并没有获得奖励的好处。

LXRHash属性

  • 较长的输入需要更长的时间来散列
  • 结果均匀分布
  • 不同输入的结果是独立的

我对LXR哈希统一分布的原因的分析可以在这里找到:https//github.com/WhoSoup/pegnet/wiki/LXRHash-Difficulty-D​​istribution-Analysis

这意味着我们可以将LXR Hash视为抛硬币。不同投入的结果彼此独立。如果您知道哈希率,则可以使用相对简单的数学计算到达某些目标的可能性。

这可能是未来博客的主题,但您可以查看我对GitHub主题的初步研究:https//github.com/pegnet/pegnet/issues/83

幕间休息

就可能性而言,PegNet是一个非常有趣的项目。还有更多的分析和基准测试没有进入博客,我欢迎所有读者加入PegNet Discord,或者在https://pegnet.org/查看参与该项目的其他方式。

下一部分将重点关注市场方面和存在的各种交易。

赞(0)
未经允许不得转载:币挖挖 » 【翻译】PegNet第一部分:概述和挖掘Oracle
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址