主页 > imtoken正版下载 > 区块链技术架构与技术路径解读

区块链技术架构与技术路径解读

imtoken正版下载 2023-02-10 07:52:06

以太坊区块链怎么下载_区块链和以太坊的相同点_以太坊开发区块链

文章目录

区块链技术架构图

网络层

共识层

数据层

契约层

应用层

知识图谱

基础知识

技术实现

开发环境

编程

C/C++实现

节点/Javascript

Python

区块链技术架构图

总体而言,区块链基础设施可以分为五层,包括网络层、共识层、数据层、智能合约层和应用层,如下图所示。每一层分别完成一个核心功能,每一层与彼此,从而实现去中心化的信任机制

以太坊区块链怎么下载_以太坊开发区块链_区块链和以太坊的相同点

网络层

网络层的主要目的是实现区块链网络节点之间的信息交换。 区块链的本质是一个点对点(P2P)网络。 每个节点都可以接收信息并产生信息。 节点通过维护公共区块链来保持通信。 在区块链网络中,每个节点都可以创建一个新区块。 新区块创建后区块链和以太坊的相同点,会以广播的形式通知其他节点,其他节点依次验证这个节点。 当区块链网络中超过 51% 的用户通过验证时,新区块将被添加到主链中。

以太坊区块链怎么下载_区块链和以太坊的相同点_以太坊开发区块链

共识层

共识层使高度分散的节点能够在去中心化系统中就区块数据的有效性达成共识。 区块链中常用的共识机制包括工作量证明、权益证明、共享授权证明等,这部分作者在前面的章节中已经详细讲解。 共识机制主要有两个作用,一个是奖励,一个是惩罚。 比特币和以太坊使用 PoW 工作量证明机制。 该机制根据计算能力进行奖励和惩罚。 如果一个节点作弊,计算能力就会丢失。

Bitshares、Steemit、EOS采用DPoS共享授权证明机制。 拥有代币的人可以参与节点的投票。 由大家选出的节点参与记账。 一旦他们作弊,他们将被系统投票淘汰。

激励功能主要是指给予代币奖励,鼓励节点参与区块链的安全验证。 例如,在比特币总量达到2100万之前,比特币有两种奖励机制:新区快速产生后系统奖励的比特币; 每笔交易扣除的比特币(手续费)。 当比特币总量达到2100万枚时,新产生的区块将不再产生比特币,此时的奖励主要是每笔交易扣除的手续费。

区块链和以太坊的相同点_以太坊区块链怎么下载_以太坊开发区块链

数据层

数据层是最底层的技术,主要功能是数据的存储、实现以及账户和交易的安全。 数据存储主要基于Merkle树,通过区块和链式结构实现,大部分以KV数据库的形式持久化,如比特币和以太坊采用的LevelDB。 基于数字签名、哈希函数、非对称加密技术等多种密码学算法和技术,以及账户和交易的实现和安全功能,可以在去中心化的环境中安全地进行交易。

设计区块链系统的技术人员首先建立初始节点,称为“创世区块”,然后在相同的规则下,创建相同规格的区块,通过链式结构依次连接形成主链。 随着运行时间的增加,新的区块经验证后不断加入主链,主链将不断延伸。

每个区块还包含很多技术,比如时间戳技术,它的作用是保证每个区块能够按时间顺序连接起来,比如哈希函数,它是任意长度的消息通过哈希算法压缩成固定的- length message digest函数,主要应用于信息安全领域的加密算法、文件校验、数字签名、认证协议等。

契约层

所谓合约层,主要是指各种脚本代码、算法机制和智能合约。 智能合约是运行在区块链上的一段代码,无需干预即可自动执行。 EVM 是运行在智能合约上的虚拟机。 通过智能合约,人类可以在没有任何中介干预的情况下转移资产。 同时,他们也可以开发一些有价值的去中心化应用。 以比特币为例,它是一种可编程的数字货币。 合约层封装的脚本规定了比特币的交易方式以及交易过程中涉及的各种细节。

也可以基于智能合约构建区块链应用,无需从头学习区块链技术,即可轻松开发自己的区块链应用(DAPP)。 例如,基于以太坊公链,开发者可以使用Solidity语言开发智能合约,构建去中心化应用; 基于EOS,开发者可以使用C++语言编写自己的智能合约。

以太坊区块链怎么下载_区块链和以太坊的相同点_以太坊开发区块链

应用层

应用层封装了区块链的各种应用场景和案例,比如基于区块链的跨境支付平台等,也是一个去中心化的应用DAPP。 一个完整的DAPP包括智能合约和web系统,web系统通过接口调用智能合约。 这一层类似于计算机中的各种软件程序。 是普通人可以直接使用的产品。 也可以理解为B/S架构产品中的浏览器。

从目前的情况来看,对于很多用户来说,除了数字货币之外,并没有现成的区块链应用。 区块链技术要想快速走进普通百姓,服务于大众,必须要有大量与人们生活、娱乐工具相结合的应用。

知识图谱

通过上面的分析,我们已经可以了解区块链是什么,知道如何实现了。 顺便梳理一下里面的编程技术知识,自然就清楚很多了。

以太坊开发区块链_以太坊区块链怎么下载_区块链和以太坊的相同点

基础知识

区块链是一项新技术,其背后涉及到大量的新概念、新理论。 这些知识虽然没有直接体现在代码中,但是是了解区块链,掌握区块链技术的基础知识。 因此,它应该成为区块链技术不可或缺的一部分。 这部分从基本概念开始,到工作原理的描述,可以涵盖区块链的所有基础知识。

技术实现

区块链是一种技术,但是从上面的分析可以看出它应该是一种架构的应用,而架构的实现应该是我们知识库的核心。 可以看到,对于任何区块链产品,协议层都必须包括四个部分:对等网络、加密签名、数据存储和分布式算法。 应用层还必须提供钱包、客户端浏览器等基础应用。 . 因此,将这部分分开是合理的。

在扩展层部分,区块链技术可以接入各种应用,比如:金融、物联网、网络安全、版权保护、电子商务等,很多现有的技术都可以在这里使用。 但是,如何与区块链结合,如何实现跨行业使用,自然是这部分研究的课题。 因此,这里所列或涉及的技术,应归类为技术实现的重要组成部分。

开发环境

区块链是多种技术的结合,具有自身的复杂性。 个别应用程序严重依赖开发环境。 开发工具和环境搭建是开发者快速上手的重要内容。 据说,短短几年时间,全球已经有上千种区块链产品,其中不乏创新应用。 一些优秀的开源产品和项目实践是最好的学习和研究资料。

编程

C/C++实现

这两种语言是不可逾越的。 任何发展遇到瓶颈,基本上都会找到。 自然是先介绍一下。 同时,作为区块链技术的鼻祖,比特币(协议层)是用C++语言开发的,迄今为止,没有比比特币更成功的区块链产品。 所以,不管你用什么语言开发,在正式进入这个行业的时候,都应该先研究一下比特币。

区块链和以太坊的相同点_以太坊区块链怎么下载_以太坊开发区块链

比特币官方客户端钱包使用的Qt,第三方钱包都是用Python语言开发的,尤其是第三方编译的开发库(Api包)大多是Nodejs设计的。 比特币的架构与上述架构设计基本相同。 此外,由于共识算法采用工作量证明机制(PoW:Proof of work),因此存在一些特殊的挖矿过程。 其他山寨币都是直接从比特币衍生出来的分支,所以编程语言是一样的,具体的技术选型和技术实现可能会有所改进。 例如,莱特币使用其他加密算法。

节点/Javascript

Nodejs平台强大的网络编程能力,以及js脚本语言的简洁和快速,在区块链领域自然少不了。 Yishu就是这样一款区块链产品,Yishucoin是它的协议层,使用著名的express开发框架,基于http协议开发。 同时采用授权权益证明机制(DPoS),算法的改进使其在处理交易时更加轻量化,处理能力大幅提升。

以太坊开发区块链_区块链和以太坊的相同点_以太坊区块链怎么下载

提供强大的协作机制,有利于数字出版和版权保护; 它扩展了侧链功能,任何去中心化应用都可以基于它开发,从而为专业作者、博主和开发者提供了很多便利。 《Development of Cryptocurrency with Nodejs》一书完整分享了其源码。 从区块链的基本概念到代码实现,从基本原理到开发设计思路,都进行了详细的探讨。 到目前为止,从协议层面深入到代码中,讲解区块链技术实现的书籍很少,这也算一本。

Python

如果你是Python语言爱好者,我推荐研究一下以太坊(Ethereum)的Python实现。 虽然因为The Dao事件闹得沸沸扬扬,但从技术实现的角度来说还是值得借鉴的。 以太坊官方定位为开发和管理分布式应用程序的平台。 主要攻击方向是“智能合约”,并为其定制了一种编程语言Solidity。 以太坊的核心是以太坊虚拟机 (EVM),它允许用户按照自己的意愿创建操作。 以太坊提供了 Go、Java 和 Python 等多语言实现。

区块链和以太坊的相同点_以太坊区块链怎么下载_以太坊开发区块链

基于python的实现主要包括三个部分:Pyethapp是客户端部分; pyethereum为核心库,实现区块链、以太坊模拟器、挖矿等功能; pydevp2p是一个点对点的网络库,实现了节点发现、合约代码传输、加密签名等功能,这三者结合起来就是一个完整的区块链实现,后两个核心库共同构成了协议层。 另外,go-ethereum是go语言的完整实现; Ethereum(J) 是一个纯 Java 实现,它作为一个库提供,可以嵌入到任何 Java/Scala 项目中。 在客户端,有Rust、Ruby、Javascript等语言的实现。

多核时代,Go语言大行其道。 它可以让你轻松地以同步的方式实现高并发,尤其是在分布式系统和网络编程领域。 它被广泛使用。 因此,在区块链开发领域,使用Go语言的项目也不在少数。 其中,由Linux基金会牵头的HyperLeger,仓库名称为Fabric,就是其中之一。 该项目旨在为新一代交易应用程序创建一个开放的分布式账本标准区块链和以太坊的相同点,支持许可区块链(一种可能无法复制比特币强大网络效应的方法)。

以太坊区块链怎么下载_区块链和以太坊的相同点_以太坊开发区块链

Fabric的开发环境建立在VirtualBox虚拟机之上。 部署环境可以是自建网络,也可以直接部署在BlueMix上。 部署方式可docker化,支持使用Go和JavaScript开发智能合约。 它使用PBFT分布式算法,在网络编程中使用gRPC进行P2P通信,使用Protocol Buffer序列化需要传输的数据结构。 在架构设计上,Fabric 可能与比特币等区块链产品有所不同,但上述基础组件仍然不可或缺。

以太坊开发区块链_以太坊区块链怎么下载_区块链和以太坊的相同点

以太坊开发区块链_以太坊区块链怎么下载_区块链和以太坊的相同点