以太坊架构简析

简介: 包含以太坊架构图、部分模块的简介等

4fe00bb0155c6142537cf6a03888fca8e99f1978


HTTPClient:支持HTTP协议、实现get、post等HTTP方法。

Whisper协议:DApp间通信的协议,提供低层次API

HTTP/JSON RPC/IPC [1]:实现程序/进程间的通信。外部程序可以通过JSON RPC调用API。

Swarm:一个web应用开发框架,其允许程序分布在多台计算机上,并能够动态分配运算以提升运算效率。

容器:包含程序和程序运行所需的完整环境,相当于轻量虚拟机。可以无视环境难题,被快速部署

P2P网络:对等节点组成的网络,每个节点都同时起到客户端和服务端的作用。

挖矿:节点争夺记账权,并在记账成功后获取代币奖励。

LevelDB:高效的kv(key-value)数据库[2]。

Crypto:加密。以太坊使用SHA3、secp256k1加密算法。

rlp:recursive length prefix,即递归长度前缀。在以太坊中对对象进行序列化[3]和反序列化编码。

校验:包含区块、交易合法性校验,Merkle Patricia Tree校验,交易池校验。

区块链管理:涉及区块的下载、连接、断开、校验、保存

交易池管理:节点将通过验证的交易存在交易池中,准备放在一个挖到的区块里。

EVM:Ethereum Virtual Machine,即以太坊虚拟机。智能合约在EVM之上运行。

智能合约:可以理解为:包含价值且只有在满足一定条件时才会打开的加密箱子。其具有图灵完备性。

web3.js:封装了以太坊JSON RPC API的js库,包含与区块链交互的js对象和函数。有查看网络状态、查询本地账户、查询交易和区块、发送交易、编译/部署合约等的API

交易:一个账户向另一个账户发送被签名的数据包的过程

 

[1] ipc:inter-progress communication,即进程间通信。Ipc包含lpc(local progress call)和rpc(remote procedure call)。可以认为rpc是:把分割的程序通过网络重组。通过网络,像操作本机代码一样调用远程机器上的代码。JSON RPC是以JSON为协议的RPC,传输的内容是JSON本体。

[2] kv数据库中的数据按照kv对进行组织、索引、存储。kv数据库没有固定的数据结构,而SQL数据库的数据一般都具有固定的数据结构。这里的key一般与hash相关,value一般存储rlp编码。

[3] 序列化:把对象转化为字节序列的过程。反序列化是它的逆过程。

相关文章
|
27天前
|
JSON JavaScript 前端开发
Vue3源码架构简析及Monorepo流程构建
【10月更文挑战第12天】Vue3源码架构简析及Monorepo流程构建
Vue3源码架构简析及Monorepo流程构建
|
6月前
|
安全 NoSQL Java
[网络安全]shiro安全框架基本原理及架构功能简析
[网络安全]shiro安全框架基本原理及架构功能简析
190 0
|
Java 调度
架构系列——定时任务中的Timer类使用简析
架构系列——定时任务中的Timer类使用简析
|
SQL 存储 前端开发
是时候更新手里的武器了—Jetpack架构组件简析(下)
最近两年,MVVM的呼声越来越高,说实话,在经历了MVP的臃肿,MVP的繁琐,我有点怕了。但是这次Google官方带来的一系列为MVVM架构设计的武器—Jetpack,真的让我惊喜到了。
125 0
|
XML 前端开发 安全
是时候更新手里的武器了—Jetpack架构组件简析(上)
最近两年,MVVM的呼声越来越高,说实话,在经历了MVP的臃肿,MVP的繁琐,我有点怕了。但是这次Google官方带来的一系列为MVVM架构设计的武器—Jetpack,真的让我惊喜到了。
122 0
|
存储 Kubernetes 安全
容器服务Kubernetes版产品架构简析
容器服务 Kubernetes 版基于原生 Kubernetes 进行适配和增强,简化集群的搭建和扩容等工作,整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes 容器化应用运行环境。本文档为您介绍阿里云容器服务平台的产品架构。
1229 0
|
3天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
2天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
11 1
服务架构的演进:从单体到微服务的探索之旅
|
1天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
15 5