首页 > SNT > 正文

在轻客户端上使用去中心化的预测市场

分类:教程HUTCH,CERIStatusIM 2018-08-12 20:35

  现在使用以太坊的方式可以说令人沮丧。依靠像 Infura 这样的中心化服务提供商来连接去中心化的网络, 依靠第三方在 web3 之间交互,就像是向前迈出一步, 然后向后倒退两步。

  我非常感谢我们有 infura,没有它现在的 Status 不会有今天的形势;此外, 他们的目标是去中心化他们的基础设施, 这是非常好的一件事。

  不是所有的希望都失去了, 因为通过一点点挖掘,拥有自己的轻节点是非常简单的。Status 自从第一天以来就已经设置好了他们的指南针, 谢天谢地, 在 ULC (超轻型客户端) 和进一步的轻节点物质奖励实验将容易以默认方式引导移动设备上的轻客户端连接到 Status,更多的内容很快会发布。这一天还没有到来, 但我可以设想一下未来, 通过Status 或者其他以太坊客户端,未来只需一步就可以连接,而不是4步。

  我在这个周末开始了一个任务, 以打破过去的挑战, 即必须弄明白目前轻客户端在笔记本电脑里运行一个 Geth 轻客户端并且以适当方式与去中心化的网页互动有多大可能性。我特别想运行 Augur, 而不需要连接到 infura, 因为这是整个实验的关键!

  有多难?:)

  进入 VIPNode.org, 一个 LES2处于零碎状态下所需要的说明。轻客户端现在基本上是不稳定的, 因为没有足够的完整节点来满足需求, 还有一些其他问题列在这个总结中。(https://medium.com/@shazow/an-economic-incentive-for-running-ethereum-full-nodes-ecc0c9ebe22)。

  但这有多容易呢?它会奏效吗?我不是开发人员-我是否足够聪明, 使用正确的一组密钥来让我的去中心化网络得到修复?

  所有这些问题的答案在下文查找。

  跟着网站的说明做使它变得超级简单,只需一点点坚持。我也运行 MacOS 来接受任何人的任何批评, 因为我可能没有做到一切完美。

  我首先确保我已经安装最新的 Geth 客户端 (我使用 Brew 更新我已经安装在 MacOS 的 Geth 客户端; 您可以按照您的计算机的特定说明在这里进行初始安装 https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum)

  $brew upgrade geth

  非常的成功;我现在有一个新的 Geth 的副本, 但猜怎么着, 我不想运行删减过的节点, 因为我的 80GB 硬盘驱动器的可以保留其他有趣的东西而不仅仅是区中心化的网站, 这应该很容易并且不会卡顿,对吧?

  步骤 1:

  从我的新 Geth 客户端得到我的 Enode;很简单, 这里甚至提供操作说明

  (首先这需要启动 Geth , 我进入需要一会)。

  我在我的终端运行一个简单的命令,首先启动 Geth 找到我的 bootnode

  >open terminal

  $geth

  现在 Geth 启动并且运行 (没有配置, 你仍然需要遵循第一步的指令说明, 以创建一个新的 keypair 等等。https://github.com/ethereum/go-ethereum/wiki/Command-Line-Options)

  现在, 我需要启动 Javascript 控制台, 以便我可以查看 Geth 启动了什么, 特别是打印出来 Enode,我需要这个 Enode 告诉 VIPNode 预留一个轻客户空位给我。

  New terminal tab > $geth attach

  > admin.nodeInfo.enode

  完美!我的 Enode 信息用字符串打印出来了。

  我现在可以关闭我的 Geth 终端, 因为我们需要一个轻型客户端, 而不是一个完整的节点。

  步骤 2: 复制-粘贴!

  在填写信息后 EG:(Enode://0x000)和用我的默认 Brave 浏览器连接到 MetaMask;我付给我的朋友 Andrey 至少15美元, 因为这是一个服务, 我真的很感激 (尽管你可以支付尽可能的少)-轻客户端让我对未来的 web3 相当的兴奋。

  单击,单击

  Execute smart contract

  酷!现在怎么办?

  哦-在我开始运行真正的轻客户端, 并试图在只有 P2P 而没有第三方提供商的情况下连接 DApp 到我自己的节点之前,看起来还有一步。(应该怎么做)。

  步骤 3:

  将你的/geth/ static-nodes.json 设置为:

  `[

  enode://yourstringhere

  ]`

  所以现在我需要找出我的 Geth 客户端在哪里 (提示: 它在这里https://github.com/ethereum/go-ethereum/wiki/Backup-&-restore)

  $cd ~/Library/Ethereum/geth/

  查找一下发现我没有默认的 static-nodes.json, 所以让我创建一个,这样我可以装载这个 static-nodes.json 文件!

  $touch static-nodes.json

  现在我们正在创建一个空的 JSON 文件, 我可以打开和粘贴上述 Enode 信息。

  我使用我最喜欢的文件编辑软件, 粘贴字符串并保存它。

  步骤 4: 轻客户端

  如果一切顺利的话(我希望到目前为止一切顺利),我们应该准备好运行我们的轻客户端了。Geth 应该有一个从 VIPNode 智能合约中保留的空位,专门为你访问轻客户端。

  经过一番研究,我决定在 Geth 上运行这些标记,看看我的轻客户端是否开始同步。

  $geth——unlock0——rpc——ws——

  rpccorsdomain

  “http://localhost:8080”——

  wsorigins=“*”——syncmode=“light”

  我听说过一些关于——wsorigins=" * "标志的冲突。最好把它缩小到你想要打开的范围,所以请一定要记住这一点,我把它们都打开了,只是为了确保 Augur 会回应我的轻客户:)

  您可以在这里查看所有标记的作用:https://github.com/ethereum/go-ethereum/wiki/- line - options,但是对于我的实验来说,这个命令很有用。如果你不知道自己在做什么,一定要小心。

  好了,现在来看看我们能否在本地同步节点。

  哇!几分钟之内;我已经同步到最新的块;我的 Javascript 控制台证明了这一点。

  > New terminal tab

  $geth attach

  >eth.blockNumber 6102139

  很酷——让我们用一个本地客户端加载 Augur,真正体验 web3 的当前形式。

  打开 Augur 并将你的连接方法更改为本地。

  这部分需要一点耐心(至少对我来说是这样的);但是,如果你已经运行了所有内容,那么你的数据库应该在几分钟内与本地节点同步。

  它应该是这样的:

  在打开 Augur 之后,我被以下震惊了:

  1、连接到 EVM 世界计算机

  2、能够在去中心化的环境和本地参与全球预测市场

  3、使用比闪存驱动器更少的存储空间与轻客户端同步。

  在树莓派上运行一个 Geth 节点似乎是我的下一个冒险,希望它能发展成其他以太坊节点的实验。

  轻客户端是一件鼓舞人心的事情,随着 Ethereum 2.0的不断接近,以及 web3最初的愿景逐渐成为现实,我很高兴看到来自 Geth、Status、parity 和其他客户端开发人员的优秀工作成果。

  特别感谢 DustinBrody 在我遇到一些关于 Geth 标志的 websocket 问题时的帮助,还有Ceri 的语法修正和 Jacek 的额外帮助。

上一篇:羞愧之墙

下一篇:欢迎 Pixura 作为孵化器第二个孵化项目加入 Status

猜您喜欢
关于我们联系我们作者投稿APP下载