开源是如何支撑区块链技术发展的
创造出区块链安全性和可靠性的原因：是开放，而非监管。当人们发现以安全性而闻名的区块链技术居然是建立在开源软件代码之上时，通常会感到非常惊讶。事实上，正是这种开放性才赋予了区块链技术的安全性和可靠性。以开源方式构建的任何事物，其核心价值之一就是为了提高效率。建立起一个有着不同观点和技能的开发人员社区，这些开发人员工作在同一个代码库的时候，可以成倍增加构建出来的应用程序数量以及复杂性。开源比人们想象中的要更加普遍开源的 Linux，就是一种比较流行的操作系统。Linux 为服务器提供了许多服务，这些服务让我们可以轻松地共享个人信息。其中包括 Google、Facebook 和数千个主要网站。当我们使用这些服务时，就是在和这些在网络上运行着 Linux 系统的计算机进行交互。Chromebook 也使用 Linux，Android 手机使用的操作系统也是基于 Linux 的。Linux 不属于任何一家公司，人们可以免费使用并且可以共同协作来完善创造它。自 2005 年推出以来，已经有来自 1,700 多家公司的 20,000 多名开发人员 为其中的代码做出了贡献 。这就是开源软件的运作方式。大量的人为此贡献，并不断添加、修改或构建开源代码库来创建新的应用程序和平台。区块链和加密货币的大部分代码都是使用开源软件开发的。开源软件是由充满热情的用户构建的，这些用户对错误、故障或缺陷时刻保持警惕。当发现问题时，开源社区中的开发人员将一起努力来解决问题。区块链和开源整个开源区块链开发者社区都在不断地添加和完善代码库。以下是区块链的基本表现方式：区块链平台具有一个交易数据库，该交易数据库允许对等方在任何时候彼此进行交易。附有用户识别标签，以方便交易。平台一定有一种安全的方式来在交易批准前对交易进行验证。无法被验证的交易不会进行。开源软件允许开发者在 去中心化应用程序（Dapp）中创建这些平台，这是区块链中交易的安全、保障和可变性的关键。这种去中心化的方式意味着没有中央权威机构来调解交易，没有人能控制发生的事情。直接的点对点的交易可以更快速、安全的进行。由于交易被记录在分类账簿中，它们也会分发到整个生态系统中。区块链使用密码学来保证安全。每一笔交易都携带着与前一笔交易相关联的信息，以验证其真实性。这可以防止威胁者篡改数据，因为一旦数据被添加到公共分类账中，其他用户就不能更改。区块链是开源的吗？虽然区块链本身在技术上可以是不开源的，但区块链系统通常是使用开源软件实现的，因为没有政府机构对其进行监管，所以这些开源软件使用的概念体现了一种开放文化。私人公司开发的用于处理金融交易的专有软件很可能受到 政府机构 的监管。在美国，这可能包括美国证券交易委员会（SEC）、联邦储备委员会和联邦存款保险公司（FDIC）。区块链技术在开放环境下使用不需要政府监管，实际上，用来验证交易的是用户社区。你可以称它为一种极端的众包形式，既用于开发构建区块链平台的开源软件，也用于验证交易。这就是区块链得到如此多关注的原因之一：它有可能颠覆整个行业，因为它可以作为处理和验证交易的权威中介。比特币，以太坊和其他加密货币截至 2020 年 6 月，超过 5000 万人拥有区块链钱包 。他们大多数用于金融交易，例如交易比特币、以太坊和其他加密货币。对许多人来说，像交易员观察股票价格一样，查看加密货币价格 已成为主流。加密货币平台也使用开源软件。以太坊项目 开发出了任何人都可以免费使用的开源软件，社区中大量的开发者都为此贡献了代码。比特币客户端的参考实现版是由 450 多个开发人员和工程师进行开发的，他们已经贡献了超过 150,000 个贡献。加密货币区块链是一个持续增长的记录。每个被称作为块的记录按顺序链接在一起，它们互相链接形成一条链。每个块都有其自己的唯一标记，这个标记称为 哈希 。一个块包含自身的哈希值和前一个块的加密计算出的哈希值。从本质上讲，每个块都链接到前一个块，形成了无法中断的长链，每个块都包含其它区块的信息，用于验证交易。在金融或是加密货币的区块链中没有中央银行。这些分布在整个互联网中的区块，建立了一个性能强大的审计跟踪系统。任何人都能够通过区块链来验证交易，但却不能更改上面的记录。牢不可破的区块链尽管区块链不受任何政府或机构的监管，但分布式的网络保证了它们的安全。随着链的增长，每一笔交易都会增加伪造的难度。区块分布在世界各地的网络中，它们使用的信任标记不可被改变，这条链条几乎变得牢不可破。这种去中心化的网络，其背后的代码是开源的，这也是用户在交易中不必使用诸如银行或经纪人之类的中介就可以相互信任的原因之一。支撑加密货币平台的软件是由相互独立的开发者组建的联盟创建的，并且任何人都可以免费使用。这创造了世界上最大的制衡体系之一。via: https://opensource.com/article/20/10/open-source-blockchain作者：Matt Shealy 选题：lujun9972 译者：xiao-song-123 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
对许多开源程序员来说，夜间的工作计划是创造力和生产力来源的关键。如果你问大多数开发人员更喜欢在什么时候工作，大部人会说他们最高效的时间在晚上。这对于那些在工作之余为开源项目做贡献的人来说更是如此（尽管如此，希望在他们的健康范围内避免透支）。有些人喜欢从晚上开始，一直工作到凌晨，而另一些人则很早就起床（例如，凌晨 4 点），以便在开始日常工作之前完成大部分编程工作。这种工作习惯可能会使许多开发人员看起来像个怪人，不合时宜。但是，为什么有这么多的程序员喜欢在非正常时间工作，原因有很多：制造者日程根据 保罗·格雷厄姆 Paul Graham 的观点，“生产东西”的人倾向于遵守 制造者日程 —— 他们更愿意以半天或更长时间为单位使用时间。事实上，大多数开发人员也有相同的偏好。（LCTT 译注：保罗·格雷厄姆有一篇文章述及制造者日程和管理者日程。）一方面，开发人员从事大型抽象系统工作，需要思维空间来处理整个模型。将他们的日程分割成 15 分钟或 30 分钟的时间段来处理电子邮件、会议、电话以及来自同事的打断，工作效果只会适得其反。另一方面，通常不可能以小时为单位进行有效编程。因为这么短的时间几乎不够让你把思绪放在手头的任务上并开始工作。上下文切换也会对编程产生不利影响。在晚上工作，开发人员可以避免尽可能多的干扰。在没有不断的干扰的情况下，他们可以花几个小时专注于手头任务，并尽可能提高工作效率。平和安静的环境由于晚上或凌晨不太会有来自各种活动的噪音（例如，办公室闲谈、街道上的交通），这使许多程序员感到放松，促使他们更具创造力和生产力，特别是在处理诸如编码之类的精神刺激任务时。独处与平静，加上他们知道自己将有几个小时不被中断的工作时间，通常会使他们摆脱白天工作计划相关的时间压力，从而产出高质量的工作。更不用说了，当解决了一个棘手的问题后，没有什么比尽情享受自己最喜欢的午夜小吃更美好的事情了！沟通与在公司内工作的程序员相比，从事开源项目的开发人员可以拥有不同的沟通节奏。大多数开源项目的沟通都是通过邮件或 GitHub 上的评论等渠道异步完成的。很多时候，其他程序员在不同的国家和时区，因此实时交流通常需要开发人员变成一个夜猫子。昏昏欲睡的大脑这听起来可能违反直觉，但是随着时间的推移，大脑会变得非常疲倦，因此只能专注于一项任务。晚上工作从根本上消除了多任务处理，而这是保持专注和高效的主要障碍。当大脑处于昏昏欲睡的状态时，你是无法保持专注的！此外，许多开发人员在入睡时思考要解决的问题通常会取得重大进展。潜意识开始工作，答案通常在他们半睡半醒的凌晨时分就出现了。这不足为奇，因为睡眠可增强大脑功能，可帮助我们理解新信息并进行更有创造性的思考。当解决方案在凌晨出现时，这些开发人员便会起来开始工作，不错过任何机会。灵活和创造性思考许多程序员体会到晚上创造力会提升。前额叶皮层，即大脑中与集中能力有关的部分，在一天结束时会感到疲倦。这似乎为某些人提供了更灵活和更具创造性的思考。匹兹堡大学医学院精神病学助理教授 Brant Hasler 表示：“由于自上而下的控制和‘认知抑制’的减少，大脑可能会解放出来进行更发散的思考，从而使人们更容易地将不同概念之间的联系建立起来。” 结合轻松环境所带来的积极情绪，开发人员可以更轻松地产生创新想法。此外，在没有干扰的情况下集中精力几个小时，“沉浸在你做的事情中”。这可以帮助你更好地专注于项目并参与其中，而不必担心周围发生的事情。明亮的电脑屏幕因为整天看着明亮的屏幕, 许多程序员的睡眠周期被延迟。电脑屏幕发出的蓝光扰乱我们的昼夜节律，延迟了释放诱发睡眠的褪黑激素和提高人的机敏性，并将人体生物钟重置到更晚的时间。从而导致，开发人员往往睡得越来越晚。来自过去的影响过去，大多数开发人员是出于必要在晚上工作，因为在白天当公司其他人都在使用服务器时，共享服务器的计算能力支撑不了编程工作，所以开发人员需要等到深夜才能执行白天无法进行的任务，例如测试项目、运行大量的“编码-编译-运行-调试”周期以及部署新代码。现在尽管服务器功能变强大了，大多数可以满足需求，但夜间工作的趋势仍是这种文化的一部分。结语尽管开发人员喜欢在晚上工作的原因很多，但请记住，做为夜猫子并不意味着你应该克扣睡眠时间。睡眠不足会导致压力和焦虑，并最终导致倦怠。获得足够质量的睡眠是维持良好身体健康和大脑功能的关键。例如，它可以帮助你整合新信息、巩固记忆、创造性思考、清除身体积聚的毒素、调节食欲并防止过早衰老。无论你是哪种日程，请确保让你的大脑得到充分的休息，这样你就可以在一整天及每天的工作中发挥最大的作用！via: https://opensource.com/article/20/2/why-developers-code-night作者：Matt Shealy 选题：lujun9972 译者：Morisun029 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出