mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-02-25 00:50:15 +08:00
commit
7371c7ce63
@ -0,0 +1,100 @@
|
||||
区块链进化简史:为什么开源是其核心所在
|
||||
======
|
||||
|
||||
> 从比特币到下一代区块链。
|
||||
|
||||

|
||||
|
||||
当开源项目开发下一个新版本时,用后缀 “-ng” 表示 “下一代”的情况并不鲜见。幸运的是,到目前为止,快速演进的区块链成功地避开了这个命名陷阱。但是在这个开源生态系统的演进过程中,改变是不断发生的,而好的创意以典型的开源方式在许多不同的项目中被采用、交融和演进。
|
||||
|
||||
在本文中,我将审视不同代次的区块链,并且看一看在处理这个生态系统遇到的问题时出现什么创意。当然,任何对生态系统进行分类的尝试都有其局限性的 —— 和不同意见者的 —— 但是这也将为混乱的区块链项目提供了一个粗略的指南。
|
||||
|
||||
### 始作俑者:比特币
|
||||
|
||||
第一代的区块链起源于 <ruby>[比特币][1]<rt>Bitcoin</rt></ruby> 区块链,这是以去中心化、点对点加密货币为基础的<ruby>总帐<rt>ledger</rt></ruby>,它从 [Slashdot][2] 网站上的杂谈变成了一个主流话题。
|
||||
|
||||
这个区块链是一个分布式总帐,它对所有用户的<ruby>交易<rt>transaction</rt></ruby>保持跟踪,以避免他们<ruby>双重支付<rt>double-spending</rt></ruby>(双花)货币(在历史上,这个任务是委托给第三方—— 银行 ——来做的)。为防范攻击者在系统上捣乱,总帐被复制到每个参与到比特币网络的计算机上,并且每次只允许一台计算机去更新总帐。为决定哪台计算机能够获得更新总帐的权力,系统安排在比特币网络上的计算机之间每 10 分钟进行一场竞赛,这将消耗它们的(许多)能源才能参与竞赛。赢家将获得将前 10 分钟发生的交易写入到总帐(区块链中的“区块”)的权力,并且为赢家写入区块链的工作给予一些比特币奖励。这种方式被称为<ruby>工作量证明<rt>proof of work</rt></ruby>(PoW)共识机制。
|
||||
|
||||
这就是区块链最有趣的地方。比特币以[开源项目][3]的方式发布于 2009 年 1 月 。在 2010 年,由于意识到这些元素中的许多是可以调整的,围绕比特币聚集起了一个社区 —— [bitcointalk 论坛][4],来开始各种实验。
|
||||
|
||||
起初,看到的比特币区块链是一个分布式数据库的形式, [Namecoin][5] 项目出现后,建议去保存任意数据到它的事务数据库中。如果区块链能够记录金钱的转移,那么它也应该能够记录其它资产的转移,比如域名。这正是 Namecoin 的主要使用场景,它上线于 2011 年 4 月 —— 也就是比特币出现两年后。
|
||||
|
||||
Namecoin 调整的地方是区块链的内容,<ruby>[莱特币][6]<rt>Litecoin</rt></ruby> 调整的是两个技术部分:一是将两个区块的时间间隔从 10 分钟减少到 2.5 分钟,二是改变了竞赛方式(用 [scrypt][7] 来替换了 SHA-256 安全哈希算法)。这是能够做到的,因为比特币是以开源软件的方式来发布的,而莱特币本质上与比特币在其它部分是完全相同的。莱特币是修改了比特币共识机制的第一个分叉,这也为其它的更多“币”铺平了道路。
|
||||
|
||||
沿着这条道路,基于比特币代码库的各种变种越来越多。其中一些扩展了比特币的用途,比如 [Zerocash][8] 协议,它专注于提供交易的匿名性和可替换性,但它最终分拆为它自己的货币 —— [Zcash][9]。
|
||||
|
||||
虽然 Zcash 带来了它自己的创新,使用了最近被称为“<ruby>零知识证明<rt>zero-knowledge proof</rt></ruby>”的加密技术,但它维持着与大多数主要的比特币代码库的兼容性,这意味着它能够从上游的比特币创新中获益。
|
||||
|
||||
另外的项目 —— [CryptoNote][10],它萌芽于相同的社区,但是并没有使用相同的代码,它以比特币为背景来构建的,但又与之不同。它发布于 2012 年 12 月,由于它的出现,导致了几种加密货币的诞生,最著名的 <ruby>[门罗币][11]<rt>Monero</rt></ruby> (2014)就是其中之一。门罗币与 Zcash 使用了不同的方法,但解决了相同的问题:隐私性和可替换性。
|
||||
|
||||
就像在开源世界中经常出现的案例一样,做同样的工作有不止一个的工具可用。
|
||||
|
||||
### 下一代:“Blockchain-ng”
|
||||
|
||||
但是,到目前为止,所有的这些变体只是改进加密货币或者扩展它们去支持其它类型的事务。因此,这就引出了第二代区块链。
|
||||
|
||||
一旦社区开始去修改区块链的用法和调整技术部分时,对于一些想去扩展和重新思考它们未来的人来说,这种调整花费不了多长时间的。比特币的长期追随者 —— [Vitalik Buterin][12] 在 2013 年底建议,区域链的事务应该能够表示一个状态机的状态变化,将区域链视为能够运行应用程序(“<ruby>智能合约<rt>smart contract</rt></ruby>”)的分布式计算机。这个项目 —— <ruby>[以太坊][13]<rt>Ethereum</rt></ruby>,上线于 2015 年 4 月。它在运行分布式应用程序方面取得了巨大的成功,它的一些非常流行的分布式应用程序(<ruby>[加密猫][14]<rt>CryptoKitties</rt></ruby>)甚至导致以太坊区块链变慢。
|
||||
|
||||
这证明了目前的区块链存在一个很大的局限性:速度和容量。(速度通常用每秒事务数来测量,简称 TPS)有几个提议都建议去解决这个速度问题,从<ruby>分片<rt>sharding</rt></ruby>到<ruby>侧链<rt>sidechain</rt></ruby>,以及一个被称为“<ruby>第二层<rt>second-layer</rt></ruby>”的解决方案。这里需要更多的创新。
|
||||
|
||||
随着“智能合约”这个词开始流行起来,并且用已经被证实仍然很慢的技术去运行它们,那么就需要实现其它的思路:<ruby>许可区块链<rt>Permissioned blockchain</rt></ruby>。到目前为止,我们所介绍的所有区块链网络有两个没有明说的特征:一是它们是公开的(任何人都可以看到它们的功能),二是它们不需要许可(任何人都可以加入它们)。这两个部分是运行一个分布式的、非基于第三方的货币应该具有的和必需具有的条件。
|
||||
|
||||
随着区块链被认为出现与加密货币越来越明显的分离趋势,开始去考虑一些隐私、许可场景是很有意义的。一个有业务关系但不需要彼此完全信任的财团类型的参与者,能够从这些区块链类型中获益 —— 比如,物流链上的参与者,定期进行双边结算或者使用一个清算中心的金融、保险、或医疗保健机构。
|
||||
|
||||
一旦你将设置从“任何人都可以加入”变为“仅邀请者方可加入”,进一步对区块链构建区块的方式进行改变和调整将变得可能,那么对一些人来说,结果将变得非常有趣。
|
||||
|
||||
首先,设计用来保护网络不受恶意或者垃圾参与者的影响的工作量证明(PoW)可以被替换为更简单的和更少资源消耗的一些东西,比如,基于 [Raft][15] 的共识协议。在更高级别的安全性和更快的速度之间进行权衡,采用更简单的共识算法。对于更多群体来说这样更理想,因为他们可以用基于加密技术的担保来取代其它的基于法律关系的担保,例如为避免由于竞争而产生的大量能源消耗,而工作量证明就是这种情况。另外一个创新的地方是,使用 <ruby>[股权证明][16]<rt>Proof of Stake</rt></ruby>(PoS),它是公共网络共识机制的一个重量级的竞争者。它将可能像许可链网络一样找到它自己的实现方式。
|
||||
|
||||
有几个项目可以让创建许可区块链变得更简单,包括 [Quorum][17] (以太坊的一个分叉)和 [Hyperledger][18] 的 [Fabric][19] 和 [Sawtooth][20],这是基于新代码的两个开源项目。
|
||||
|
||||
许可区块链可以避免公共的、非许可方式的区块链中某些错综复杂的问题,但是它自己也存在一些问题。正确地管理参与者是其中的一个问题:谁可以加入?如何辨别他们?如何将他们从网络上移除?网络上的一个实体是否去管理一个中央公共密钥基础设施(PKI)?
|
||||
|
||||
### 区块链的开放本质
|
||||
|
||||
到目前为止的所有案例中,有一件事情是很明确的:使用一个区块链的目标是去提升网络中的参与者和它产生的数据的信任水平,理想情况下,不需要做进一步的工作即可足以使用它。
|
||||
|
||||
只有为这个网络提供动力的软件是自由和开源的,才能达到这种信任水平。即便是一个正确的、专用的、分布式区块链,它的本质仍然是运行着相同的第三方代码的私有代理的集合。从本质上来说,区块链的源代码必须是开源的,但仅是开源还不够。随着生态系统持续成长,这既是最低限度的担保也是进一步创新的源头。
|
||||
|
||||
最后,值得一提的是,虽然区块链的开放本质被认为是创新和变化的源头,它也被认为是一种治理形式:代码治理,用户期望运行的任何一个特定版本,都应该包含他们认为的整个网络应该包含的功能和方法。在这方面,需要说明的一点是,一些区块链的开放本质正在“变味”。但是这一问题正在解决。
|
||||
|
||||
### 第三和第四代:治理
|
||||
|
||||
接下来,我正在考虑第三代和第四代区块链:区块链将内置治理工具,并且项目将去解决棘手的大量不同区块链之间互连互通的问题,以便于它们之间可以交换信息和价值。
|
||||
|
||||
---
|
||||
关于作者
|
||||
|
||||
axel simon: 长期的自由及开源软件爱好者,就职于 Red Hat ,关注安全和区块链技术,以及分布式系统和协议。致力于保护互联网及其成就(知识分享、信息访问、去中心化和网络中立)。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/6/blockchain-guide-next-generation
|
||||
|
||||
作者:[Axel Simon][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[qhwdw](https://github.com/qhwdw)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/axel
|
||||
[1]:https://bitcoin.org
|
||||
[2]:https://slashdot.org/
|
||||
[3]:https://github.com/bitcoin/bitcoin
|
||||
[4]:https://bitcointalk.org/
|
||||
[5]:https://www.namecoin.org/
|
||||
[6]:https://litecoin.org/
|
||||
[7]:https://en.wikipedia.org/wiki/Scrypt
|
||||
[8]:http://zerocash-project.org/index
|
||||
[9]:https://z.cash
|
||||
[10]:https://cryptonote.org/
|
||||
[11]:https://en.wikipedia.org/wiki/Monero_(cryptocurrency)
|
||||
[12]:https://en.wikipedia.org/wiki/Vitalik_Buterin
|
||||
[13]:https://ethereum.org
|
||||
[14]:http://cryptokitties.co/
|
||||
[15]:https://en.wikipedia.org/wiki/Raft_(computer_science)
|
||||
[16]:https://www.investopedia.com/terms/p/proof-stake-pos.asp
|
||||
[17]:https://www.jpmorgan.com/global/Quorum
|
||||
[18]:https://hyperledger.org/
|
||||
[19]:https://www.hyperledger.org/projects/fabric
|
||||
[20]:https://www.hyperledger.org/projects/sawtooth
|
@ -1,77 +0,0 @@
|
||||
translating---geekpi
|
||||
|
||||
6 RFCs for understanding how the internet works
|
||||
======
|
||||
|
||||

|
||||
|
||||
Reading the source is an important part of open source software. It means users have the ability to look at the code and see what it does.
|
||||
|
||||
But "read the source" doesn't apply only to code. Understanding the standards the code implements can be just as important. These standards are codified in documents called "Requests for Comments" (RFCs) published by the [Internet Engineering Task Force][1] (IETF). Thousands of RFCs have been published over the years, so we collected a few that our contributors consider must-reads.
|
||||
|
||||
### 6 must-read RFCs
|
||||
|
||||
#### RFC 2119—Key words for use in RFCs to indicate requirement levels
|
||||
|
||||
This is a quick read, but it's important to understanding other RFCs. [RFC 2119][2] defines the requirement levels used in subsequent RFCs. What does "MAY" really mean? If the standard says "SHOULD," do you really have to do it? By giving the requirements a well-defined taxonomy, RFC 2119 helps avoid ambiguity.
|
||||
|
||||
Time is the bane of programmers the world over. [RFC 3339][3] defines how timestamps are to be formatted. Based on the [ISO 8601][4] standard, 3339 gives us a common way to represent time and its relentless march. For example, redundant information like the day of the week should not be included in a stored timestamp since it is easy to compute.
|
||||
|
||||
#### RFC 1918—Address allocation for private internets
|
||||
|
||||
There's the internet that's everyone's and then there's the internet that's just yours. Private networks are used all the time, and [RFC 1918][5] defines those networks. Sure, you could set up your router to route public spaces internally, but that's a bad idea. Alternately, you could take your unused public IP addresses and treat them as an internal network. In either case, you're making it clear you've never read RFC 1918.
|
||||
|
||||
#### RFC 1912—Common DNS operational and configuration errors
|
||||
|
||||
Everything is a #@%@ DNS problem, right? [RFC 1912][6] lays out mistakes that admins make when they're just trying to keep the internet running. Although it was published in 1996, DNS (and the mistakes people make with it) hasn't really changed all that much. To understand why we need DNS in the first place, consider what [RFC 289—What we hope is an official list of host names][7] would look like today.
|
||||
|
||||
#### RFC 2822—Internet message format
|
||||
|
||||
Think you know what a valid email address looks like? If the number of sites that won't accept a "+" in my address is any indication, you don't. [RFC 2822][8] defines what a valid email address looks like. It also goes into detail about the rest of an email message.
|
||||
|
||||
#### RFC 7231—Hypertext Transfer Protocol (HTTP/1.1): Semantics and content
|
||||
|
||||
When you stop to think about it, almost everything we do online relies on HTTP. [RFC 7231][9] is among the most recent updates to that protocol. Weighing in at just over 100 pages, it defines methods, headers, and status codes.
|
||||
|
||||
### 3 should-read RFCs
|
||||
|
||||
Okay, not every RFC is serious business.
|
||||
|
||||
#### RFC 1149—A standard for the transmission of IP datagrams on avian carriers
|
||||
|
||||
Networks pass packets in many different ways. [RFC 1149][10] describes the use of carrier pigeons. They can't be any less reliable than my mobile provider when I'm more than a mile away from an interstate highway.
|
||||
|
||||
#### RFC 2324—Hypertext coffee pot control protocol (HTCPCP/1.0)
|
||||
|
||||
Coffee is very important to getting work done, so of course, we need a programmatic interface for managing our coffee pots. [RFC 2324][11] defines a protocol for interacting with coffee pots and adds HTTP 418 ("I am a teapot").
|
||||
|
||||
#### RFC 69—Distribution list change for M.I.T.
|
||||
|
||||
Is [RFC 69][12] the first published example of a misdirected unsubscribe request?
|
||||
|
||||
What are your must-read RFCs (whether they're serious or not)? Share your list in the comments.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/7/requests-for-comments-to-know
|
||||
|
||||
作者:[Ben Cotton][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/bcotton
|
||||
[1]:https://www.ietf.org
|
||||
[2]:https://www.rfc-editor.org/rfc/rfc2119.txt
|
||||
[3]:https://www.rfc-editor.org/rfc/rfc3339.txt
|
||||
[4]:https://www.iso.org/iso-8601-date-and-time-format.html
|
||||
[5]:https://www.rfc-editor.org/rfc/rfc1918.txt
|
||||
[6]:https://www.rfc-editor.org/rfc/rfc1912.txt
|
||||
[7]:https://www.rfc-editor.org/rfc/rfc289.txt
|
||||
[8]:https://www.rfc-editor.org/rfc/rfc2822.txt
|
||||
[9]:https://www.rfc-editor.org/rfc/rfc7231.txt
|
||||
[10]:https://www.rfc-editor.org/rfc/rfc1149.txt
|
||||
[11]:https://www.rfc-editor.org/rfc/rfc2324.txt
|
||||
[12]:https://www.rfc-editor.org/rfc/rfc69.txt
|
@ -0,0 +1,404 @@
|
||||
How To View Detailed Information About A Package In Linux
|
||||
======
|
||||
This is know topic and we can write so many articles because most of the time we would stick with package managers for many reasons.
|
||||
|
||||
Each distribution clones has their own package manager, each has comes with their unique features that allow users to perform many actions such as installing new software packages, removing unnecessary software packages, updating the existing software packages, searching for specific software packages, and updating the system to latest available version, etc.
|
||||
|
||||
Whoever is sticking with command-line most of the time they would preferring the CLI based package managers. The major CLI package managers for Linux are Yum, Dnf, Rpm,Apt, Apt-Get, Deb, pacman and zypper.
|
||||
|
||||
**Suggested Read :**
|
||||
**(#)** [List of Command line Package Managers For Linux & Usage][1]
|
||||
**(#)** [A Graphical frontend tool for Linux Package Manager][2]
|
||||
**(#)** [How To Search If A Package Is Available On Your Linux Distribution Or Not][3]
|
||||
**(#)** [How To Add, Enable And Disable A Repository By Using The DNF/YUM Config Manager Command On Linux][4]
|
||||
|
||||
As a system administrator you should aware of from where packages are coming, which repository, version of the package, size of the package, release, package source url, license info, etc,.
|
||||
|
||||
This will help you to understand the package usage in simple way since it’s coming with package summary & Description. Run the below commands based on your distribution to get detailed information about given package.
|
||||
|
||||
### [YUM Command][5] : View Package Information On RHEL & CentOS Systems
|
||||
|
||||
YUM stands for Yellowdog Updater, Modified is an open-source command-line front-end package-management utility for RPM based systems such as Red Hat Enterprise Linux (RHEL) and CentOS.
|
||||
|
||||
Yum is the primary tool for getting, installing, deleting, querying, and managing RPM packages from distribution repositories, as well as other third-party repositories.
|
||||
```
|
||||
# yum info python
|
||||
Loaded plugins: fastestmirror, security
|
||||
Loading mirror speeds from cached hostfile
|
||||
* epel: epel.mirror.constant.com
|
||||
Installed Packages
|
||||
Name : python
|
||||
Arch : x86_64
|
||||
Version : 2.6.6
|
||||
Release : 66.el6_8
|
||||
Size : 78 k
|
||||
Repo : installed
|
||||
From repo : updates
|
||||
Summary : An interpreted, interactive, object-oriented programming language
|
||||
URL : http://www.python.org/
|
||||
License : Python
|
||||
Description : Python is an interpreted, interactive, object-oriented programming
|
||||
: language often compared to Tcl, Perl, Scheme or Java. Python includes
|
||||
: modules, classes, exceptions, very high level dynamic data types and
|
||||
: dynamic typing. Python supports interfaces to many system calls and
|
||||
: libraries, as well as to various windowing systems (X11, Motif, Tk,
|
||||
: Mac and MFC).
|
||||
:
|
||||
: Programmers can write new built-in modules for Python in C or C++.
|
||||
: Python can be used as an extension language for applications that need
|
||||
: a programmable interface.
|
||||
:
|
||||
: Note that documentation for Python is provided in the python-docs
|
||||
: package.
|
||||
:
|
||||
: This package provides the "python" executable; most of the actual
|
||||
: implementation is within the "python-libs" package.
|
||||
|
||||
```
|
||||
|
||||
### YUMDB Command : View Package Information On RHEL & CentOS Systems
|
||||
|
||||
Yumdb info provides information similar to yum info but additionally it provides package checksum data, type, user info (who installed the package). Since yum 3.2.26 yum has started storing additional information outside of the rpmdatabase (where user indicates it was installed by the user, and dep means it was brought in as a dependency).
|
||||
```
|
||||
# yumdb info python
|
||||
Loaded plugins: fastestmirror
|
||||
python-2.6.6-66.el6_8.x86_64
|
||||
changed_by = 4294967295
|
||||
checksum_data = 53c75a1756e5b4f6564c5229a37948c9b4561e0bf58076bd7dab7aff85a417f2
|
||||
checksum_type = sha256
|
||||
command_line = update -y
|
||||
from_repo = updates
|
||||
from_repo_revision = 1488370672
|
||||
from_repo_timestamp = 1488371100
|
||||
installed_by = 4294967295
|
||||
reason = dep
|
||||
releasever = 6
|
||||
|
||||
|
||||
```
|
||||
|
||||
### [RPM Command][6] : View Package Information On RHEL/CentOS/Fedora Systems
|
||||
|
||||
RPM stands for Red Hat Package Manager is a powerful, command line Package Management utility for Red Hat based system such as (RHEL, CentOS, Fedora, openSUSE & Mageia) distributions. The utility allow you to install, upgrade, remove, query & verify the software on your Linux system/server. RPM files comes with .rpm extension. RPM package built with required libraries and dependency which will not conflicts other packages were installed on your system.
|
||||
```
|
||||
# rpm -qi nano
|
||||
Name : nano Relocations: (not relocatable)
|
||||
Version : 2.0.9 Vendor: CentOS
|
||||
Release : 7.el6 Build Date: Fri 12 Nov 2010 02:18:36 AM EST
|
||||
Install Date: Fri 03 Mar 2017 08:57:47 AM EST Build Host: c5b2.bsys.dev.centos.org
|
||||
Group : Applications/Editors Source RPM: nano-2.0.9-7.el6.src.rpm
|
||||
Size : 1588347 License: GPLv3+
|
||||
Signature : RSA/8, Sun 03 Jul 2011 12:46:50 AM EDT, Key ID 0946fca2c105b9de
|
||||
Packager : CentOS BuildSystem
|
||||
URL : http://www.nano-editor.org
|
||||
Summary : A small text editor
|
||||
Description :
|
||||
GNU nano is a small and friendly text editor.
|
||||
|
||||
```
|
||||
|
||||
### [DNF Command][7] : View Package Information On Fedora System
|
||||
|
||||
DNF stands for Dandified yum. We can tell DNF, the next generation of yum package manager (Fork of Yum) using hawkey/libsolv library for backend. Aleš Kozumplík started working on DNF since Fedora 18 and its implemented/launched in Fedora 22 finally. Dnf command is used to install, update, search & remove packages on Fedora 22 and later system. It automatically resolve dependencies and make it smooth package installation without any trouble.
|
||||
```
|
||||
$ dnf info tilix
|
||||
Last metadata expiration check: 27 days, 10:00:23 ago on Wed 04 Oct 2017 06:43:27 AM IST.
|
||||
Installed Packages
|
||||
Name : tilix
|
||||
Version : 1.6.4
|
||||
Release : 1.fc26
|
||||
Arch : x86_64
|
||||
Size : 3.6 M
|
||||
Source : tilix-1.6.4-1.fc26.src.rpm
|
||||
Repo : @System
|
||||
From repo : @commandline
|
||||
Summary : Tiling terminal emulator
|
||||
URL : https://github.com/gnunn1/tilix
|
||||
License : MPLv2.0 and GPLv3+ and CC-BY-SA
|
||||
Description : Tilix is a tiling terminal emulator with the following features:
|
||||
:
|
||||
: - Layout terminals in any fashion by splitting them horizontally or vertically
|
||||
: - Terminals can be re-arranged using drag and drop both within and between
|
||||
: windows
|
||||
: - Terminals can be detached into a new window via drag and drop
|
||||
: - Input can be synchronized between terminals so commands typed in one
|
||||
: terminal are replicated to the others
|
||||
: - The grouping of terminals can be saved and loaded from disk
|
||||
: - Terminals support custom titles
|
||||
: - Color schemes are stored in files and custom color schemes can be created by
|
||||
: simply creating a new file
|
||||
: - Transparent background
|
||||
: - Supports notifications when processes are completed out of view
|
||||
:
|
||||
: The application was written using GTK 3 and an effort was made to conform to
|
||||
: GNOME Human Interface Guidelines (HIG).
|
||||
|
||||
```
|
||||
|
||||
### [Zypper Command][8] : View Package Information On openSUSE System
|
||||
|
||||
Zypper is a command line package manager which makes use of libzypp. Zypper provides functions like repository access, dependency solving, package installation, etc.
|
||||
```
|
||||
$ zypper info nano
|
||||
|
||||
Loading repository data...
|
||||
Reading installed packages...
|
||||
|
||||
|
||||
Information for package nano:
|
||||
-----------------------------
|
||||
Repository : Main Repository (OSS)
|
||||
Name : nano
|
||||
Version : 2.4.2-5.3
|
||||
Arch : x86_64
|
||||
Vendor : openSUSE
|
||||
Installed Size : 1017.8 KiB
|
||||
Installed : No
|
||||
Status : not installed
|
||||
Source package : nano-2.4.2-5.3.src
|
||||
Summary : Pico editor clone with enhancements
|
||||
Description :
|
||||
GNU nano is a small and friendly text editor. It aims to emulate
|
||||
the Pico text editor while also offering a few enhancements.
|
||||
|
||||
```
|
||||
|
||||
### [pacman Command][9] : View Package Information On Arch Linux & Manjaro Systems
|
||||
|
||||
Pacman stands for package manager utility. pacman is a simple command-line utility to install, build, remove and manage Arch Linux packages. Pacman uses libalpm (Arch Linux Package Management (ALPM) library) as a back-end to perform all the actions.
|
||||
```
|
||||
$ pacman -Qi bash
|
||||
Name : bash
|
||||
Version : 4.4.012-2
|
||||
Description : The GNU Bourne Again shell
|
||||
Architecture : x86_64
|
||||
URL : http://www.gnu.org/software/bash/bash.html
|
||||
Licenses : GPL
|
||||
Groups : base
|
||||
Provides : sh
|
||||
Depends On : readline>=7.0 glibc ncurses
|
||||
Optional Deps : bash-completion: for tab completion
|
||||
Required By : autoconf automake bison bzip2 ca-certificates-utils db
|
||||
dhcpcd diffutils e2fsprogs fakeroot figlet findutils
|
||||
flex freetype2 gawk gdbm gettext gmp grub gzip icu
|
||||
iptables keyutils libgpg-error libksba libpcap libpng
|
||||
libtool lvm2 m4 man-db mkinitcpio nano neofetch nspr
|
||||
nss openresolv os-prober pacman pcre pcre2 shadow
|
||||
systemd texinfo vte-common which xdg-user-dirs xdg-utils
|
||||
xfsprogs xorg-mkfontdir xorg-xpr xz
|
||||
Optional For : None
|
||||
Conflicts With : None
|
||||
Replaces : None
|
||||
Installed Size : 7.13 MiB
|
||||
Packager : Jan Alexander Steffens (heftig)
|
||||
Build Date : Tue 14 Feb 2017 01:16:51 PM UTC
|
||||
Install Date : Thu 24 Aug 2017 06:08:12 AM UTC
|
||||
Install Reason : Explicitly installed
|
||||
Install Script : No
|
||||
Validated By : Signature
|
||||
|
||||
```
|
||||
|
||||
### [Apt-Cache Command][10] : View Package Information On Debian/Ubuntu/Mint Systems
|
||||
|
||||
The apt-cache command can display much of the information stored in APT’s internal database. This information is a sort of cache since it is gathered from the different sources listed in the sources.list file. This happens during the apt update operation.
|
||||
```
|
||||
$ sudo apt-cache show apache2
|
||||
Package: apache2
|
||||
Priority: optional
|
||||
Section: web
|
||||
Installed-Size: 473
|
||||
Maintainer: Ubuntu Developers
|
||||
Original-Maintainer: Debian Apache Maintainers
|
||||
Architecture: amd64
|
||||
Version: 2.4.12-2ubuntu2
|
||||
Replaces: apache2.2-common
|
||||
Provides: httpd, httpd-cgi
|
||||
Depends: lsb-base, procps, perl, mime-support, apache2-bin (= 2.4.12-2ubuntu2), apache2-utils (>= 2.4), apache2-data (= 2.4.12-2ubuntu2)
|
||||
Pre-Depends: dpkg (>= 1.17.14)
|
||||
Recommends: ssl-cert
|
||||
Suggests: www-browser, apache2-doc, apache2-suexec-pristine | apache2-suexec-custom, ufw
|
||||
Conflicts: apache2.2-common (<< 2.3~)
|
||||
Filename: pool/main/a/apache2/apache2_2.4.12-2ubuntu2_amd64.deb
|
||||
Size: 91348
|
||||
MD5sum: ab0ee0b0d1c6b3d19bd87aa2a9537125
|
||||
SHA1: 350c9a1a954906088ed032aebb77de3d5bb24004
|
||||
SHA256: 03f515f7ebc3b67b050b06e82ebca34b5e83e34a528868498fce020bf1dbbe34
|
||||
Description-en: Apache HTTP Server
|
||||
The Apache HTTP Server Project's goal is to build a secure, efficient and
|
||||
extensible HTTP server as standards-compliant open source software. The
|
||||
result has long been the number one web server on the Internet.
|
||||
.
|
||||
Installing this package results in a full installation, including the
|
||||
configuration files, init scripts and support scripts.
|
||||
Description-md5: d02426bc360345e5acd45367716dc35c
|
||||
Homepage: http://httpd.apache.org/
|
||||
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
|
||||
Origin: Ubuntu
|
||||
Supported: 9m
|
||||
Task: lamp-server, mythbuntu-frontend, mythbuntu-desktop, mythbuntu-backend-slave, mythbuntu-backend-master, mythbuntu-backend-master
|
||||
|
||||
```
|
||||
|
||||
### [APT Command][11] : View Package Information On Debian/Ubuntu/Mint Systems
|
||||
|
||||
APT stands for Advanced Packaging Tool (APT) which is replacement for apt-get, like how DNF came to picture instead of YUM. It’s feature rich command-line tools with included all the futures in one command (APT) such as apt-cache, apt-search, dpkg, apt-cdrom, apt-config, apt-key, etc..,. and several other unique features. For example we can easily install .dpkg packages through APT but we can’t do through Apt-Get similar more features are included into APT command. APT-GET replaced by APT Due to lock of futures missing in apt-get which was not solved.
|
||||
```
|
||||
$ apt show nano
|
||||
Package: nano
|
||||
Version: 2.8.6-3
|
||||
Priority: standard
|
||||
Section: editors
|
||||
Origin: Ubuntu
|
||||
Maintainer: Ubuntu Developers
|
||||
Original-Maintainer: Jordi Mallach
|
||||
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
|
||||
Installed-Size: 766 kB
|
||||
Depends: libc6 (>= 2.14), libncursesw5 (>= 6), libtinfo5 (>= 6)
|
||||
Suggests: spell
|
||||
Conflicts: pico
|
||||
Breaks: nano-tiny (<< 2.8.6-2)
|
||||
Replaces: nano-tiny (<< 2.8.6-2), pico
|
||||
Homepage: https://www.nano-editor.org/
|
||||
Task: standard, ubuntu-touch-core, ubuntu-touch
|
||||
Supported: 9m
|
||||
Download-Size: 222 kB
|
||||
APT-Manual-Installed: yes
|
||||
APT-Sources: http://in.archive.ubuntu.com/ubuntu artful/main amd64 Packages
|
||||
Description: small, friendly text editor inspired by Pico
|
||||
GNU nano is an easy-to-use text editor originally designed as a replacement
|
||||
for Pico, the ncurses-based editor from the non-free mailer package Pine
|
||||
(itself now available under the Apache License as Alpine).
|
||||
.
|
||||
However, GNU nano also implements many features missing in pico, including:
|
||||
- undo/redo
|
||||
- line numbering
|
||||
- syntax coloring
|
||||
- soft-wrapping of overlong lines
|
||||
- selecting text by holding Shift
|
||||
- interactive search and replace (with regular expression support)
|
||||
- a go-to line (and column) command
|
||||
- support for multiple file buffers
|
||||
- auto-indentation
|
||||
- tab completion of filenames and search terms
|
||||
- toggling features while running
|
||||
- and full internationalization support
|
||||
|
||||
```
|
||||
|
||||
### [dpkg Command][12] : View Package Information On Debian/Ubuntu/Mint Systems
|
||||
|
||||
dpkg stands for Debian package manager (dpkg). dpkg is a command-line tool to install, build, remove and manage Debian packages. dpkg uses Aptitude (primary and more user-friendly) as a front-end to perform all the actions. Other utility such as dpkg-deb and dpkg-query uses dpkg as a front-end to perform some action. Now a days most of the administrator using Apt, Apt-Get & Aptitude to manage packages easily without headache and its robust management too. Even though still we need to use dpkg to perform some software installation where it’s necessary.
|
||||
```
|
||||
$ dpkg -s python
|
||||
Package: python
|
||||
Status: install ok installed
|
||||
Priority: optional
|
||||
Section: python
|
||||
Installed-Size: 626
|
||||
Maintainer: Ubuntu Developers
|
||||
Architecture: amd64
|
||||
Multi-Arch: allowed
|
||||
Source: python-defaults
|
||||
Version: 2.7.14-2ubuntu1
|
||||
Replaces: python-dev (<< 2.6.5-2)
|
||||
Provides: python-ctypes, python-email, python-importlib, python-profiler, python-wsgiref
|
||||
Depends: python2.7 (>= 2.7.14-1~), libpython-stdlib (= 2.7.14-2ubuntu1)
|
||||
Pre-Depends: python-minimal (= 2.7.14-2ubuntu1)
|
||||
Suggests: python-doc (= 2.7.14-2ubuntu1), python-tk (>= 2.7.14-1~)
|
||||
Breaks: update-manager-core (<< 0.200.5-2)
|
||||
Conflicts: python-central (<< 0.5.5)
|
||||
Description: interactive high-level object-oriented language (default version)
|
||||
Python, the high-level, interactive object oriented language,
|
||||
includes an extensive class library with lots of goodies for
|
||||
network programming, system administration, sounds and graphics.
|
||||
.
|
||||
This package is a dependency package, which depends on Debian's default
|
||||
Python version (currently v2.7).
|
||||
Homepage: http://www.python.org/
|
||||
Original-Maintainer: Matthias Klose
|
||||
|
||||
```
|
||||
|
||||
Alternatively we can use `-p` option with dpkg that provides information similar to `dpkg -s` info but additionally it provides package checksum data and type.
|
||||
```
|
||||
$ dpkg -p python3
|
||||
Package: python3
|
||||
Priority: important
|
||||
Section: python
|
||||
Installed-Size: 67
|
||||
Origin: Ubuntu
|
||||
Maintainer: Ubuntu Developers
|
||||
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
|
||||
Architecture: amd64
|
||||
Multi-Arch: allowed
|
||||
Source: python3-defaults
|
||||
Version: 3.6.3-0ubuntu2
|
||||
Replaces: python3-minimal (<< 3.1.2-2)
|
||||
Provides: python3-profiler
|
||||
Depends: python3.6 (>= 3.6.3-1~), libpython3-stdlib (= 3.6.3-0ubuntu2), dh-python
|
||||
Pre-Depends: python3-minimal (= 3.6.3-0ubuntu2)
|
||||
Suggests: python3-doc (>= 3.6.3-0ubuntu2), python3-tk (>= 3.6.3-1~), python3-venv (>= 3.6.3-0ubuntu2)
|
||||
Filename: pool/main/p/python3-defaults/python3_3.6.3-0ubuntu2_amd64.deb
|
||||
Size: 8712
|
||||
MD5sum: a8bae494c6e5d1896287675faf40d373
|
||||
Description: interactive high-level object-oriented language (default python3 version)
|
||||
Original-Maintainer: Matthias Klose
|
||||
SHA1: 2daec885cea7d4dc83c284301c3bebf42b23e095
|
||||
SHA256: 865e509c91d2504a16c4b573dbe27e260c36fceec2add3fa43a30c1751d7e9bb
|
||||
Homepage: http://www.python.org/
|
||||
Task: minimal, ubuntu-core, ubuntu-core
|
||||
Description-md5: 950ebd8122c0a7340f0a740c295b9eab
|
||||
Supported: 9m
|
||||
|
||||
```
|
||||
|
||||
### Aptitude Command : View Package Information On Debian/Ubuntu/Mint Systems
|
||||
|
||||
aptitude is a text-based interface to the Debian GNU/Linux package system. It allows the user to view the list of packages and to perform package management tasks such as installing, upgrading, and removing packages. Actions may be performed from a visual interface or from the command-line.
|
||||
```
|
||||
$ aptitude show htop
|
||||
Package: htop
|
||||
Version: 2.0.2-1
|
||||
State: installed
|
||||
Automatically installed: no
|
||||
Priority: optional
|
||||
Section: universe/utils
|
||||
Maintainer: Ubuntu Developers
|
||||
Architecture: amd64
|
||||
Uncompressed Size: 216 k
|
||||
Depends: libc6 (>= 2.15), libncursesw5 (>= 6), libtinfo5 (>= 6)
|
||||
Suggests: lsof, strace
|
||||
Conflicts: htop:i386
|
||||
Description: interactive processes viewer
|
||||
Htop is an ncursed-based process viewer similar to top, but it allows one to scroll the list vertically and horizontally to see all processes and their full command lines.
|
||||
|
||||
Tasks related to processes (killing, renicing) can be done without entering their PIDs.
|
||||
Homepage: http://hisham.hm/htop/
|
||||
|
||||
```
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.2daygeek.com/how-to-view-detailed-information-about-a-package-in-linux/
|
||||
|
||||
作者:[Prakash Subramanian][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://www.2daygeek.com/author/prakash/
|
||||
[1]:https://www.2daygeek.com/list-of-command-line-package-manager-for-linux/
|
||||
[2]:https://www.2daygeek.com/list-of-graphical-frontend-tool-for-linux-package-manager/
|
||||
[3]:https://www.2daygeek.com/how-to-search-if-a-package-is-available-on-your-linux-distribution-or-not/
|
||||
[4]:https://www.2daygeek.com/how-to-add-enable-disable-a-repository-dnf-yum-config-manager-on-linux/
|
||||
[5]:https://www.2daygeek.com/yum-command-examples-manage-packages-rhel-centos-systems/
|
||||
[6]:https://www.2daygeek.com/rpm-command-examples/
|
||||
[7]:https://www.2daygeek.com/dnf-command-examples-manage-packages-fedora-system/
|
||||
[8]:https://www.2daygeek.com/zypper-command-examples-manage-packages-opensuse-system/
|
||||
[9]:https://www.2daygeek.com/pacman-command-examples-manage-packages-arch-linux-system/
|
||||
[10]:https://www.2daygeek.com/apt-get-apt-cache-command-examples-manage-packages-debian-ubuntu-systems/
|
||||
[11]:https://www.2daygeek.com/apt-command-examples-manage-packages-debian-ubuntu-systems/
|
||||
[12]:https://www.2daygeek.com/dpkg-command-to-manage-packages-on-debian-ubuntu-linux-mint-systems/
|
@ -1,3 +1,5 @@
|
||||
translating---geekpi
|
||||
|
||||
4 add-ons to improve your privacy on Thunderbird
|
||||
======
|
||||
|
||||
|
@ -1,97 +0,0 @@
|
||||
区块链进化史:一个快速导览和为什么开源是其核心所在
|
||||
======
|
||||
|
||||

|
||||
|
||||
当在开源项目的一个新版本上工作时,用后缀 "-ng" 表示 ”下一代“的情况并不鲜见。幸运的是,到目前为止,快速演进的区块链成功地避开了这个命名陷阱。但是在这个开源生态系统的演进过程中,改变是不断发生的,而好的创意被采用、融入、并以典型的开源方式进化到许多不同的项目中。
|
||||
|
||||
在本文中,我将审视不同代次的区块链,并且看一看他们在处理生态系统遇到的问题时采用了什么创意。当然,任何对生态系统进行分类的尝试都有其局限性的 —— 和反对者的 —— 但是这也将为混乱的区块链项目提供了一个粗略的指南。
|
||||
|
||||
### 始作蛹者:比特币(Bitcoin)
|
||||
|
||||
第一代的区块链起源于 [比特币][1] 区块链,以去中心化为基础的总帐,从 [Slashdot][2] 杂集变成主流话题的点对点加密货币。
|
||||
|
||||
这个区块链是一个分布式总帐,它对所有用户的事务保持跟踪,以避免它们的货币重复支付(在历史上,这个任务是委托给第三方—— 银行 ——来做的)。为防范攻击者在系统上捣乱,总帐被复制到每个参与到比特币网络的计算机上,并且每次只允许一台计算机去更新总帐。为决定哪台计算机能够获得更新总帐的权力,系统安排在比特币网络上的计算机之间每 10 分钟进行一场竞赛,这将消耗它们的(许多)能源。赢家将获得将前 10 分钟发生的事务写入到总帐(区块链中的“区块”)的权力,并且为赢家写入区块链的工作给予一些比特币奖励。这些设置被称为一个 _工作量证明_ 共识机制。
|
||||
|
||||
使用区块链的目标是提升网络中参与者的信任水平。
|
||||
|
||||
这就是区块链最有趣的地方。比特币是发布于 2009 年 1 月的一个 [开源项目][3]。在 2010 年,由于意识到这些元素中的许多是可以调整的,围绕比特币聚集起了一个社区 —— [bitcointalk forums][4],来开始各种实验。
|
||||
|
||||
起初,看到的比特币区块链是一个分布式数据库的形式, [Namecoin][5] 项目出现后,建议去保存任意数据到它的事务数据库中。如果区块链能够记录金钱的转移,那么它也应该能够记录其它资产的转移,比如域名。这确实是 Namecoin 的主要使用案例,它上线于 2011 年 4 月 —— 也就是比特币出现两年后。
|
||||
|
||||
Namecoin 调整的地方是区块链的内容,[莱特币(Litecoin)][6] 调整了两个技术部分:一是将两个区块的时间间隔从 10 分钟减少到 2.5 分钟,二是改变了竞赛方式(用 [scrypt][7] 来替换 SHA-256 安全哈希算法)。这是能够做到的,因为比特币是以开源软件的方式来发布的,而莱特币本质上与比特币在其它部分是完全相同的。莱特币是修改了比特币共识机制的第一个分叉,这也为其它的更多“币”铺平了道路。
|
||||
|
||||
沿着这条道路,基于比特币代码库的各种变种越来越多。其中一些扩展了比特币的用途,比如 [Zerocash][8] 协议,它专注于提供交易的匿名性和可替换性,但它最终分拆为它自己的货币 —— [Zcash][9]。
|
||||
|
||||
虽然 Zcash 带来了它自己的创新,使用了最近被称为“零知识证明”的加密技术,但它维持着与大多数主要的比特币代码库的兼容性,这意味着它能够从上游的比特币创新中获益。
|
||||
|
||||
另外的项目 —— [CryptoNote][10],它萌芽于相同的社区,但是并没有使用相同的代码,它以比特币为背景来构建的,但又与之不同。它发行于 2012 年 12 月,由于它的出现,导致了几种加密货币的诞生,最著名的 [Monero][11] (2014) 就是其中之一。Monero 与 Zcash 使用了不同的方法,但解决了相同的问题:隐私性和可替换性。
|
||||
|
||||
就像在开源世界中经常出现的案例一样,做同样的工作有不止一个的工具可用。
|
||||
|
||||
### 下一代:"Blockchain-ng"
|
||||
|
||||
但是,到目前为止,所有的这些变体只是改进加密货币或者扩展它们去支持其它类型的事务。因此,这就引出了第二代区块链。
|
||||
|
||||
一旦社区开始去修改区块链的用法和调整技术部分时,对于一些想去扩展和重新思考它们未来的人来说,这种调整花费不了多长时间的。比特币的长期追随者 —— [Vitalik Buterin][12] 在 2013 年底建议,区域链的事务应该能够表示一个状态机的状态变化,将区域链识为能够运行应用程序(“智能合约”)的分布式计算机。这个项目 —— [以太坊(Ethereum)][13],上线于 2015 年 4 月。它在运行分布式应用程序方面取得了巨大的成功,它的一些非常流行的分布式应用程序([CryptoKitties][14])甚至导致以太坊区块链变得很慢。
|
||||
|
||||
这证明了目前的区块链存在一个很大的局限性:速度和容量。(速度通常用每秒事务数来测量,简称 TPS)有几个提议都建议去解决这个速度问题,从分片到侧链,以及一个被称为“第二层(second-layer)”的解决方案。这里需要更多的创新。
|
||||
|
||||
随着“智能合约”这个词开始流行起来,并且一件被证明的事情是 —— 如果仍然用很慢的技术去运行它们,那么就需要另外的即将要实现的创意:许可区块链(Permissioned blockchains)。到目前为止,所有的区块链网络上,我们有两个没有明说的特征:一是它们是公开的(任何人都可以看到它们的功能),二是它们没有许可(任何人都可以加入它们)。这两个部分是运行一个分布式的、非基于第三方货币应该具有的和必需具有的条件。
|
||||
|
||||
随着区块链被认为出现与加密货币越来越明显的分离趋势,开始去考虑一些隐私、许可设置是很有意义的。一个有业务关系但相互之间完全不信任的财团类型的参与者,能够从这些区块链类型中获益 —— 比如,物流链上的参与者,定期进行双边结算或者使用一个清算中心的金融、保险、或医疗保健机构。
|
||||
|
||||
一旦你将设置从“任何人都可以加入”变为“仅邀请者方可加入”,进一步对区块链构建区块的方式进行改变和调整将变得可能,那么对一些人来说,结果将变得非常有趣。
|
||||
|
||||
首先,为了保护网络不受恶意或者垃圾参与者的影响,工作量证明被替换为更简单的和更少资源消耗的一些东西,比如,基于 [Raft][15] 的共识协议。在更高级别的安全性和更快的速度之间进行权衡,采用更简单的共识算法。对于更多群体来说这样更理想,因为他们可以用基于加密技术的担保来取代其它的基于法律关系的担保,例如为避免由于竞争而产生的大量能源消耗,而工作量证明就是这种情况。另外一个创新的地方是,使用 [股权证明(Proof of Stake)][16],它是公共网络共识机制的一个重量级的竞争者。它将可能像许可网络一样找到它自己的实现方式。
|
||||
|
||||
有几个项目可以让创建许可区块链变得更简单,包括 [Quorum][17] (以太坊的一个分叉)和 [Hyperledger][18] 的 [Fabric][19] 和 [Sawtooth][20],基于新代码的两个开源项目。
|
||||
|
||||
许可区块链可以避免公共的、非许可方式的区块链中某些错综复杂的问题,但是它自己也存在一些问题。正确地管理参与者是其中的一个问题:谁可以加入?如何辨别他们?如何将他们从网络上移除?网络上的一个实体是否去管理一个中央公共密钥基础设施(PKI)?
|
||||
|
||||
区块链的开放本质被识为一种治理形式。
|
||||
|
||||
### 区块链的开放本质
|
||||
|
||||
到目前为止的所有案例中,有一件事情是很明确的:使用一个区块链的目标是去提升网络中的参与者和它产生的数据的信任水平,理想情况下,不需要做进一步的工作即可足以使用它。
|
||||
|
||||
只有为这个网络提供动力的软件是自由和开源的,才能达到这种信任水平。即便是一个正确的、专用的、分布式区块链,它的本质仍然是运行着相同的第三方代码的私有代理的集合。从本质上来说,区块链的源代码必须是开源的,但仅是开源还不够,随着生态系统持续成长,这既是最低限度的担保也是进一步创新的源头。
|
||||
|
||||
最后,值得一提的是,虽然区块链的开放本质被认为是创新和变化的源头,它也被认为是一种治理形式:代码治理,用户期望运行的任何一个特定版本,都应该包含他们认为的整个网络应该包含的功能和方法。在这方面,需要说明的一点是,一些区块链的开放本质正在“变味”。但是这一问题正在解决。
|
||||
|
||||
### 第三和第四代:治理
|
||||
|
||||
接下来,我正在考虑第三和第四代区块链:区块链将内置治理工具,以及项目将去解决棘手的大量不同区块链之间互连互通的问题,以便于它们之间可以交换信息和价值。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/6/blockchain-guide-next-generation
|
||||
|
||||
作者:[Axel Simon][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[qhwdw](https://github.com/qhwdw)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/axel
|
||||
[1]:https://bitcoin.org
|
||||
[2]:https://slashdot.org/
|
||||
[3]:https://github.com/bitcoin/bitcoin
|
||||
[4]:https://bitcointalk.org/
|
||||
[5]:https://www.namecoin.org/
|
||||
[6]:https://litecoin.org/
|
||||
[7]:https://en.wikipedia.org/wiki/Scrypt
|
||||
[8]:http://zerocash-project.org/index
|
||||
[9]:https://z.cash
|
||||
[10]:https://cryptonote.org/
|
||||
[11]:https://en.wikipedia.org/wiki/Monero_(cryptocurrency)
|
||||
[12]:https://en.wikipedia.org/wiki/Vitalik_Buterin
|
||||
[13]:https://ethereum.org
|
||||
[14]:http://cryptokitties.co/
|
||||
[15]:https://en.wikipedia.org/wiki/Raft_(computer_science)
|
||||
[16]:https://www.investopedia.com/terms/p/proof-stake-pos.asp
|
||||
[17]:https://www.jpmorgan.com/global/Quorum
|
||||
[18]:https://hyperledger.org/
|
||||
[19]:https://www.hyperledger.org/projects/fabric
|
||||
[20]:https://www.hyperledger.org/projects/sawtooth
|
@ -0,0 +1,75 @@
|
||||
6 个用于了解互联网工作原理的 RFC
|
||||
======
|
||||
|
||||

|
||||
|
||||
阅读源码是开源软件的重要组成部分。这意味着用户可以查看代码并了解做了什么。
|
||||
|
||||
但“阅读源码”并不仅适用于代码。理解代码实现的标准同样重要。这些标准由[互联网工程任务组][1](IETF)发布的称为“注释请求”(RFC)的文档中编写的。多年来已经发布了数以千计的 RFC,因此我们收集了一些我们的贡献者认为必读的内容。
|
||||
|
||||
### 6 个必读的 RFC
|
||||
|
||||
#### RFC 2119-在 RFC 中用于指示需求级别的关键字
|
||||
|
||||
这是一个快速阅读,但它对了解其他 RFC 非常重要。 [RFC 2119][2] 定义了后续 RFC 中使用的需求级别。 “MAY” 究竟意味着什么?如果标准说 “SHOULD”,你真的必须这样做吗?通过为需求提供明确定义的分类,RFC 2119 有助于避免歧义。
|
||||
|
||||
时间是全世界程序员的祸根。 [RFC 3339][3] 定义了如何格式化时间戳。基于 [ISO 8601][4] 标准,3339 为我们提供了一种表达时间的常用方法。例如,像星期几这样的冗余信息不应该包含在存储的时间戳中,因为它很容易计算。
|
||||
|
||||
#### RFC 1918—私有互联网的地址分配
|
||||
|
||||
有属于每个人的互联网,也有只属于你的互联网。专用网络一直在使用,[RFC 1918][5] 定义了这些网络。当然,你可以在路由器上设置路由公网地址,但这是一个坏主意。或者,你可以将未使用的公共 IP 地址视为内部网络。在任何一种情况下都表明你从未阅读过 RFC 1918。
|
||||
|
||||
#### RFC 1912—常见的 DNS 操作和配置错误
|
||||
|
||||
一切都是 #@%@ DNS 问题,对吧? [RFC 1912][6] 列出了管理员在试图保持互联网运行时所犯的错误。虽然它是在 1996 年发布的,但 DNS(以及人们犯的错误)并没有真正改变这么多。为了理解我们为什么首先需要 DNS,请考虑[ RFC 289-What we hope is an official list of host names]][7]如今看起来像什么。
|
||||
|
||||
#### RFC 2822—互联网邮件格式
|
||||
|
||||
想想你知道什么是有效的电子邮件地址么?如果不接受我地址中 “+” 的站点的数量是任何迹象, 你就不会。 [RFC 2822][8] 定义了有效的电子邮件地址。它还详细介绍了电子邮件的其余部分。
|
||||
|
||||
#### RFC 7231—超文本传输协议(HTTP/1.1):语义和内容
|
||||
|
||||
当你停下来思考它时,我们在网上做的几乎所有东西都依赖于 HTTP。 [RFC 7231][9] 是该协议的最新更新。它有超过 100 页,定义了方法、头和状态代码。
|
||||
|
||||
### 3个应该阅读的 RFC
|
||||
|
||||
好吧,并非每个RFC都是严肃的业务。
|
||||
|
||||
#### RFC 1149—在禽类载体上传输 IP 数据报的标准
|
||||
|
||||
网络以多种不同方式传递数据包。 [RFC 1149][10] 描述了鸽子载体的使用。当我距离州际高速公路一英里以外时,它们的可靠性不会低于我的移动提供商。
|
||||
|
||||
#### RFC 2324—超文本咖啡壶控制协议(HTCPCP/1.0)
|
||||
|
||||
咖啡对于完成工作非常重要,当然,我们需要一个用于管理咖啡壶的程序化界面。 [RFC 2324][11] 定义了一个用于与咖啡壶交互的协议,并添加了 HTTP 418(“我是一个茶壶”)。
|
||||
|
||||
#### RFC 69—M.I.T.的分发列表更改
|
||||
|
||||
[RFC 69] [12]是否是第一个误导取消订阅请求的发布示例?
|
||||
|
||||
你必须阅读的 RFC 是什么(无论它们是否严肃)?在评论中分享你的列表。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/18/7/requests-for-comments-to-know
|
||||
|
||||
作者:[Ben Cotton][a]
|
||||
选题:[lujun9972](https://github.com/lujun9972)
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://opensource.com/users/bcotton
|
||||
[1]:https://www.ietf.org
|
||||
[2]:https://www.rfc-editor.org/rfc/rfc2119.txt
|
||||
[3]:https://www.rfc-editor.org/rfc/rfc3339.txt
|
||||
[4]:https://www.iso.org/iso-8601-date-and-time-format.html
|
||||
[5]:https://www.rfc-editor.org/rfc/rfc1918.txt
|
||||
[6]:https://www.rfc-editor.org/rfc/rfc1912.txt
|
||||
[7]:https://www.rfc-editor.org/rfc/rfc289.txt
|
||||
[8]:https://www.rfc-editor.org/rfc/rfc2822.txt
|
||||
[9]:https://www.rfc-editor.org/rfc/rfc7231.txt
|
||||
[10]:https://www.rfc-editor.org/rfc/rfc1149.txt
|
||||
[11]:https://www.rfc-editor.org/rfc/rfc2324.txt
|
||||
[12]:https://www.rfc-editor.org/rfc/rfc69.txt
|
Loading…
Reference in New Issue
Block a user