我们邀请了来自Minima的Jonathan MacDonald关于 Web3 的话题来谈论 Web 3,他建议只有在完全去中心化的情况下才有可能,而加密世界还没有 – 还没有!
他在下面更详细地解释:
2021 Wired 对Gavin Wood 的采访(他在 2014 年创造了“Web3”一词)明确区分了“Web 1.0”(包含开放、去中心化协议的最早版本的万维网)和“Web 2.0”与今天的网络由封闭的中心化平台(想想 Facebook、谷歌和亚马逊)控制,而“Web3”是一个建立在区块链上的去中心化在线生态系统,旨在“打破世界的垄断控制”。其理念是,基于 Web3 构建的任何东西都不会归任何中心参与者所有,相反,用户可以控制自己的体验并通过开发和维护 Web3 服务来获得所有权。
这种方法暗示了通过消除第三方来实现内在的去中介化、分散的基础设施带来的内在弹性、自动可访问性意味着没有任何限制,以及每个人都可以控制其信息的个人数据所有权。矛盾的是,如果我们粗略地看一下今天宣称是 Web3 的组织,就会注意到许多(如果不是全部)都是以与 Web 2.0 完全相同的方式运作的中心化参与者。
Web 2.0 是关于控制的,Web3 是关于自由的。
Web 2.0 是关于企业集团的,Web3 是关于人的。
然而,当前的趋势是 Web 2.0 公司通过将自己与当今的关键字(例如“元节”,当然还有 Web3 )保持一致来尝试“更大的相关性”。然而,标语并不是基础设施制造的。
相反,将任何东西构建为 Web3 产品、释放协作合作潜力的唯一方法是扭转 Web 2.0 的组织结构并开发网络和服务,其中唯一可以控制的人就是人。
这是一个大胆的举动。主要是因为它需要交出控制权——有多少 Web 2.0 组织愿意这样做?
2021 年,万维网的发明者和长期自由倡导者 Tim Berners-Lee 设想回归 Web 1.0 的原始、开放协议和原则,其中“发布任何内容都不需要中央机构的许可……没有中央控制节点,因此没有单点故障……没有终止开关”。这是对我们今天所处位置的根本性重新思考。
今天,我们阅读的新闻、我们分享的图像和我们进行的对话,都可以由少数有自己议程的中心化平台控制。对于 Web3 的未来,我们需要将权力牢牢掌握在人民手中。这种以人为本的方法是 Minima 的默认起点,Minima 是一个完全去中心化的网络,使每个人都可以自由连接,但希望许多人能够在此基础上构建产品。Minima 是一个启用协议,在上面的应用程序的可能性实际上是无限的。
这种差异化作为一个概念很简单,但在实践中,很难将其推向市场;尤其是因为以前没有人尝试过。另一个挑战是,世界已经如此受中央机构的制约和控制,以至于需要进行大量的教育,以便人们相信他们被允许拥有权力。与此相邻的是对流行术语的过度使用,因此实际上是Web3 的产品被视为与其他产品一样的另一种产品。
Web3 和 Web 2.0 会并存吗?是的。我相信 Web3 的整个构造并不适合所有人和所有事物。组织的商业结构不应该被放弃或忽视。然而,同样,以人为本并不意味着不可能盈利。除了双重否定之外,也许最有利可图的方法是从人们认为最有价值的东西开始。可以说,这就是 Web3 的全部意义所在。自由。
只有当网络由每个人都拥有平等权力并且没有任何东西可以关闭它的人运行时,我们才会毫无疑问地看到 DINO(仅以名称去中心化)结构和区块链产品的姿态。作为所有人的更美好数字未来的支持者,我们必须努力深入了解索赔背后的情况。我们必须保持公民至上倡议的优先地位。这并不容易,不,绕过 Web3 的真正语义本质并直接跳到“拥有 Web4”也不是答案。实现承诺的唯一方法是在基层重新组织我们的方法。
Web3 需要对网络架构和人类赋权的另一种观点做出哲学承诺……但对于那些分享它的人来说,下一个万维网正在等待。
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只
它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput
我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串