主页 > imtoken官方网址 > 比特币开发者指南@EthereumEnthusiast

比特币开发者指南@EthereumEnthusiast

imtoken官方网址 2023-02-12 07:16:29

过去几年,比特币扩容问题引发热议,让公众对比特币协议演进背后的发展过程产生了前所未有的关注。 虽然开源软件项目一直处于利益竞争的重压下,应对不同开发团队所倡导的不同愿景,但就比特币而言,与系统相关的利益范围和类型以及人们对开发的兴趣 激励机制表达意见的过程浓缩成一个完全独特的情况。

在应对这些挑战时比特币基于什么技术而产生,大型开源项目仔细定义了目的、使命和原则来指导贡献者的工作。 互联网工程任务组 (IETF) 的“IETF 方式:互联网工程任务组初学者入门”就是一个众所周知的例子。 作为拥有全球成员的最大标准组织之一,IETF 在组织志愿者发展工作方面拥有数十年的经验。 更何况,IETF的“粗略共识”与比特币开发的决策过程惊人的相似。

过去,社区内部未能理解影响比特币协议方向的正确方法会造成不必要的冲突。 现在,这个问题再次制约了比特币的发展,尽管相关人员的意图是好的。 我们应该记住,开源项目的开发需要大家一起努力。 如何让社会上的每一个人都有机会汇聚各方正能量,更高效地产出成果,是我们现在需要解决的挑战。

本文旨在以 IETF 指南为范本,促进比特币社区成员之间的相互理解。 除了如何为比特币做贡献外,本文还概述了如何在此过程中达成共识。 本文所描述的概念只是我门外汉的个人观点,不代表官方观点和正式标准。

比特币和股票交易技术_比特币基于什么技术而产生_比特币多久产生一个区块

比特币开发领域

目前,比特币核心项目是比特币开发活动中最活跃、最多产的支柱。 它有一个相对松散的开发团队,聚集了来自世界各地的数百名志愿者,为比特币的实施做出贡献。 他们的工作保存在 Github.com/Bitcoin 存储库中。

Bitcoin Core 项目没有管理机构,也没有会员资格:它向所有人开放,任何人都可以成为贡献者并根据过去贡献的质量获得影响力(类似于同行评审)。 为了促进开发,首席维护者任命专门的维护者来监督发布周期以推动项目向前发展。 这种等级制度和相关的头衔反映了客观情况,不带有任何特权或权力。 如果任何实体滥用对比特币核心项目代码库的控制,其余成员可以自由地分叉该项目并继续他们的工作。

虽然 Bitcoin Core 项目从未正式定义其使命,但我们可以从过去的交流中推断出一些具体目标。 比特币核心致力于:

比特币和股票交易技术_比特币多久产生一个区块_比特币基于什么技术而产生

以最高性能标准维护网络健康 为所有用户确保比特币安全 为比特币社区维护和发布软件时考虑到用户 支持向后兼容升级,以便用户保留他们当前选择保护的网络核心功能:去中心化、安全和无许可创新虽然大多数贡献者都是自愿的,但也有一些实体通过赠款或直接雇用来提供资金,以确保开发工作的可持续性。 这些实体包括但不限于 Blockstream、ChainCode Labs、Ciphrex、MIT DCI 和 Purse.io。 这些实体几乎总是有特定的合同条款和协议,以保持开发人员的独立性,并帮助他们避免与比特币及其用户发生利益冲突。 Bitcoin Core - 2016 年开发活动报告:多年的合作、高水平的高级开发团队和可靠的成就记录使 Bitcoin Core 成为比特币领域最值得信赖的实现。 然而,Bitcoin Core项目之所以能够成为比特币协议的技术支柱,只是因为全世界比特币用户的自发行为。 Bitcoin Core 既不能控制比特币,也不能单方面强制改变其共识规则。 许多用户和企业运行自己的比特币核心软件。 其他开发人员已经创建了他们自己的实现,或者基于比特币核心代码库,或者从头开始使用另一种语言。

众所周知的例子有 btcd、Libbitcoin、Bcoin 和 NBitcoin。 然而,比特币开发的整个领域远远超出了比特币核心项目和这些个人开发者。 数百名学者对比特币及其生态系统及相关技术进行了研究,共发表论文1150余篇。 自 2015 年开始举办的 Scaling Bitcoin Workshop 为开发人员和研究人员提供了一个难得的机会来合作协议开发并从学术角度讨论比特币技术的演变。 此外,斯坦福大学、普林斯顿大学、苏黎世联邦理工学院等机构在比特币研究方面也拥有丰富的资源。 如何贡献? 目前有几种方法可以为比特币的发展做出贡献。 任何了解当前流程并尊重多年来制定的标准和惯例的人都可以参与。 新贡献者面临的最大挑战之一是代码库的广度和相关技术的复杂性。 具体来说,新人往往会发现,所谓的新想法很少有创新,十有八九是以前提出过或想过的。 为了使开发人员能够做出富有成效的贡献并避免走上错误的道路,还鼓励开发人员在提出正式建议之前查阅下面列出的各种在线资源。 自由和开源软件 (FOSS) 开发侧重于开放式通信。

迄今为止,已经建立了各种平台,为贡献者提供了对提案进行反馈的渠道。 参与之前须知 比特币开发以 bitcoin-dev 邮件列表为中心。 bitcoin-dev 列表对所有实现一视同仁,目前由 Linux 基金会管理。 有兴趣参与比特币开发的贡献者应该查阅邮件列表上的档案,以便提前熟悉开发过程并发现可能与他们的工作相关的内容。 为了专注于技术讨论和提案,此邮件列表上的讨论已被略微删减。 原始讨论可以在比特币讨论邮件列表中找到。 对比特币开发有任何想法或疑问的贡献者也可以在其他平台上寻求评论和答案,例如免费 IRC 节点上的#bitcoin-dev、#bitcoin-core-dev 和#bitcoin-wizards 等频道。 这些通道的历史日志也包含很多可能对贡献者有价值的信息,可以通过点击下面的链接查看:#bitcoin-dev #bitcoin-core-dev #bitcoin-wizards(点此查看较早的内容)此外,多年来在各个圈子讨论的想法被收集并存档在许多个人维护的网站上。 其中,开发人员 Bryan Bishop 的 wiki 拥有最全面的信息,尽管它确实很难理解。

其他社区资源包括 Bitcoin Wiki 和 Bitcointalk 的开发与技术讨论部分。 最后,近年来也出现了线下聚会,通过另类的社交场景支持技术合作和推广新想法。 这方面的例子包括但不限于 SF Bitcoin Devs Meetup、NYC Bitcoin Devs、Bitcoin Milano Meetup、Paralelni Polis Bitcoin Meetup、Scaling Bitcoin Conference 和 S3ND Roundtables。 建议和实施 对贡献代码和参与代码审查感兴趣的开发人员应该阅读本指南。 考虑到对整个生态的影响,如果开发者想要改变比特币的共识规则,或者引入需要标准化的功能,都需要付出很大的努力。 比特币采用的Bitcoin Improvement Proposal(BIP)机制类似于IETF的Request For Comment(RFC)。 RFC 用于记录与 Internet 背后的核心系统相关的新标准、方法或技术。 开发者 Amir Taaki 将这一概念应用于比特币。 比特币 BIP 的初始规范主要改编自 Python 的 PEP-0001,后来由开发人员 Luke-Jr 进行了修订。

比特币和股票交易技术_比特币基于什么技术而产生_比特币多久产生一个区块

我们的意图是让 BIP 成为提出新功能、收集社区对某个问题的意见以及记录采用的比特币设计决策的主要机制。 BIP 的作者负责在社区内建立共识并记录反对意见。 - BIP2,BIP 流程(修订版) BIP2 的“BIP 工作流程”部分强调 BIP 流程本质上是一种协作工具。 鉴于比特币的分布式信任特性和开源原则,开发者需要严格遵守科学的同行评审模型。 透明度和公开对话对于任何提案的成功至关重要,实际上对于比特币的健康发展也是如此。 新贡献者在参与开发过程中应保持谦虚的态度,不要因为提案在前期被拒绝而气馁,因为比特币社区多年积累的知识和经验绝不是一个人的功劳. 这个严格的审查过程需要尽可能多的参与者加入,以便就提案达成共识。 涉及改变比特币系统共识规则的提案尤为重要。 虽然有些人可能会觉得这个公约很麻烦,但不遵守它有可能导致不信任和内讧,从而阻碍发展进程。 即使一个技术方案非常合理,也可能因为其作者试图绕过既定流程而被拖延,从而被怀疑动机不纯。 为避免此类情况比特币基于什么技术而产生,贡献者应积极加入比特币生态系统中的相关组织并与之沟通,尤其是与其他开发者。 如果您想了解不同参与者的责任和达成共识的要求,您可以阅读 BIP0002 的“基本原理”部分。

如果您决定尝试编写一份 IETF 标准文档,请做好准备:虽然每一步都非常简单,但整个过程可能会很乏味。 尽管如此,还是有很多人毫发无损,并且有很多书面指南可以帮助作者或多或少地保持自我。 — IETF 方式:互联网工程任务组初学者入门,2012 一旦新想法满足上述要求,其支持者就会编写与当前规范兼容的工作实现。 此举旨在保持向后兼容性并尽可能减少破坏性。 为了实现互操作性,开发人员 Eric Lombrozo 提出了 BIP123,它根据与其交互的网络层对提案进行分类。 粗略的共识和运行代码 在许多方面,IETF 都是根据其参与者的信念运作的。 其中一个“基本信念”正如 David Clark 在 IETF 早期所说的那样:“我们不需要国王、总统和选票。我们相信粗略的共识和运行代码。” -- IETF 之道:互联网工程任务 组新手入门,2012 年 多年来,有许多文章探讨了比特币的治理模型(及其缺陷)。 当中本聪在 2010 年消失时,他没有留下任何关于如何做出重要共识决定的指示或指导。 纵观比特币的历史,这几乎没有引起什么问题。 对协议的技术修改很少引起争议,用户信任同行评审过程。

审查参与者根据技术优点评估提案,一旦提案被认为符合“包含的最低标准”,它就会被纳入比特币的代码库。 随着时间的推移,随着生态系统中参与者的多样性增加以及参与者之间的利益和期望分歧加剧,正如预期的那样,建立共识的潜在挑战出现了。 许多人认为,比特币系统的社会复杂性阻碍了其技术发展。 在没有权威机构的情况下,不同的利益相关者如何在比特币协议基本规则的辩论中达成可接受的结果? 不耐烦的参与者提倡一种正式的治理模型,该模型赋予知名参与者以指导比特币协议方向的特权。 不幸的是,这种治理模式与比特币的共识机制背道而驰,因为比特币系统的规则是由用户驱动的共识(user-driven consensus)维护的。 公众人物一旦被赋予过多的权力,就会成为敌对势力威逼利诱的对象。 粗略的共识有很多定义; 一个简单的版本是,对于非常强烈的反对意见,人们必须继续讨论,直到绝大多数人同意这些反对意见是错误的。 ——《The IETF Way: A Primer for Beginners to Internet Engineering Task Forces》,2012 IETF 采用的“粗略共识”模型可以推导出更完整的决策过程。

“论 IETF 共识与分歧”的一些章节提供了见解,以帮助比特币开发人员正确看待共识驱动的开发。 没有分歧比共识更重要推动比特币发展的很大一部分是获得对协议的支持。 不幸的是,广泛支持的表象常常被误认为是共识。 即使一个想法符合协议的标准,它也可能只会受到社区的青睐。 只要有人明确反对,就不能判断社区已经就该想法达成共识。 即使只有一个贡献者提出有效的技术异议,也必须集体解决,如果异议足够严重,甚至可以阻止提案的实施。 因此,开发商在考虑提案时应采用“最少分歧”的原则。 虽然让每个人都同意是不切实际的,但我们可以通过权衡所有差异并确定它们是不可调和的问题还是工程偏好来达成“粗略的共识”。 只要考虑到所有问题,就可以达成普遍共识。 没有必要解决提案的所有潜在问题。 仔细考虑提案的潜在问题很重要,但也必须认识到,工程中总是存在权衡取舍,需要以最务实的方式加以处理。 另一种方法是不要让“完美成为优秀的敌人”。 开发团队应在不带偏见的情况下权衡每个反对意见,对审查过程持开放态度,并确定最终决定。 当每个人的关注点都得到彻底检查时,开发过程就会取得重大进展,从而使开发团队能够更好地了解潜在的替代方案并展示其优势。

比特币和股票交易技术_比特币基于什么技术而产生_比特币多久产生一个区块

如果只是绝大多数人不同意反对,还不足以称之为普遍共识。 团队必须诚实地考虑反对意见并评估它是否会导致其他问题。 如果不能论证或评估,就不能算作真正的共识。 - “关于 IETF 的共识与分歧”,2014 年 不同问题的性质和重要性各不相同,但团队更有可能取得最佳技术成果,只要他们承认所有潜在的权衡都得到妥善解决。 团队应该警惕任何试图通过“讨价还价”加速开发过程的尝试,尽管存在合理的反对意见,但仍做出让步。 开源开发不容忍任何为了内斗而进行的工程妥协,尤其是在比特币系统中,利益集团不应凌驾于用户安全之上。 共识是道路,而不是终点。 虽然IETF在普遍共识方面不可能有完善的原则,但如果我们不能警醒自己坚持这些原则,未来只会越来越难坚持,最终导致技术成果下滑. ——《论 IETF 的共识与分歧》,2014 在讨论共识问题时,最常见的问题之一就是如何评估是否达成共识。 典型的例子是人数统计和其他很容易被误解或操纵的社交信号。 这些做法过于注重结果而忽视了过程,可以说是小有收获。 更准确地说,建立共识是一种开放协作的系统方法,即根据生态系统中每个参与者的输入得出最佳技术成果的迭代过程。

只要生态系统中的每个参与者都同意一套最佳规则并共同遵守基本的开源原则,就会增加获得满意结果的可能性。 这背后的透明度至关重要,这样没有直接参与的用户就可以判断他们想要采用的更改的合法性。 我之所以要强调这一点,是因为系统的共识最终取决于用户运行的代码以及用户通过自己的验证节点执行的规则。 虽然有些更改无需经过冗长繁琐的生态审查过程即可实施,但涉及共识层的更改需要相关参与者之间进行大量协调。 如果仓促行事,随之而来的时间压力会让一些参会者觉得自己的意见没有得到应有的考虑,最终导致一事无成。 对于新手来说也非常重要:IETF 不以任何方式“管理互联网”,尽管有些人可能有误解。 尽管 IETF 制定的自愿性标准经常被互联网用户采用,但 IETF 并不以任何方式控制甚至审查互联网。 如果您因为想成为审稿人而对 IETF 感兴趣,那么 IETF 会让您失望。 — IETF 方式:互联网工程任务组初学者入门,2012 比特币的社会经济影响在协调利益和维护协议的去中心化性质方面提出了独特的挑战。 幸运的是,这有先例,互联网协议标准的发展历史为我们提供了如何应对这些挑战的宝贵信息。 本文中强调的 IETF 准则并非凭空出现,而是随着时间的推移而得到磨练。 今天很少有用户记得 Internet 也经历过它必须处理自身扩展问题的阶段,以及各方为控制它而斗争的阶段。 IETF 对开放开发的承诺在维护系统的自愿性和技术完整性方面发挥了关键作用。

图片

-摘自麻省理工学院的大卫·克拉克在 1992 年 IETF 会议上的重要演讲-

比特币基于什么技术而产生_比特币多久产生一个区块_比特币和股票交易技术

翻译:随着 Internet 及其社区的发展,我们如何管理变化和发展过程? 今天,我们的社区面临着 20 多年前互联网所面临的同样困境。 在不久的将来,我们做出的集体决定有可能对比特币的发展产生深远的影响。 虽然商业利益对整个生态系统的发展至关重要,但我们应该尽量避免让它们干扰发展过程,我们不应该让短期利益阻碍​​协议实现长期弹性所需的工程。 归根结底,比特币网络由世界各地成千上万的独立用户提供支持,他们自愿运行该软件的实例。 在这种情况下,任何破坏开源开发过程的行为都不可避免地会导致用户之间的不信任。 虽然一些用户可能认为自上而下的举措会加速比特币技术的进步,但它更有可能阻碍它。 更糟糕的是,加速开发的冲动有可能对比特币协议造成无法弥补的损害。 可以合理地假设,许多参与者都将自己的利益放在心上,并且可能担心这种缓慢、渐进的过程会影响他们自己的业务。 因此,我们希望让每个人都参与到开放的沟通和协作中,以确保在不牺牲比特币技术的长期愿景的情况下解决短期问题。 比特币技术有望比我们这一代走得更远。 毕竟,比特币就是未来。

(结束)

(本文链接较多,可点击左下方“阅读原文”从EthFans网站获取)

原文链接:

@bergealex4/the-tao-of-bitcoin-development-ff093c6155cd