社区
尹成的课程社区_NO_3
以太坊源码分析
帖子详情
EVM执行智能合约代码
尹成学院
2023-01-13 01:38:50
课时名称
课时知识点
EVM执行智能合约代码
EVM执行智能合约代码
...全文
26
回复
打赏
收藏
EVM执行智能合约代码
课时名称课时知识点EVM执行智能合约代码EVM执行智能合约代码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
以太坊
智能合约
虚拟机(
EVM
)原理与实现
以太坊
EVM
原理与实现 以太坊底层通过
EVM
模块支持合约的
执行
与调用,调用时根据合约地址获取到
代码
,生成环境后载入到
EVM
中运行。通常
智能合约
的开发流程是用solidlity编写逻辑
代码
,再通过编译器编译元数据,最后再发布到以太坊上。
代码
结构 . ├── analysis.go //跳转目标判定 ├── common.go ├── contract.go //合约数据结构 ├── contracts.go //预编译好的合约 ├── errors.go ├──
evm
.go //
执行
器 对外提
evm
_llvm:
EVM
LLVM项目的官方仓库
如今,在
EVM
上处理
智能合约
有很多限制。 由于
EVM
平台是一个非常特定于区块链的
执行
环境,因此编程语言,性能,成本,分析工具都受到限制。 它与我们的日常编译器有很大不同。 这是一台堆叠机; 资源有限; 它没有堆空间; 等,等等。 由于这些差异,区块链社区不得不从头开始重建
智能合约
基础设施。 但是,要使软件基础架构成熟,需要花费很长时间和巨大的努力。 随着区块链升级的快速开展,
智能合约
设施的增长相对慢于其他区块链设施。 我们想改变这一点。 通过这个项目,我们证明了业界强大的LLVM编译器框架仍然适用于
EVM
平台,即使LLVM不是专门为此类架构创建的。
EVM
LLVM是LLVM的
EVM
体系结构后端。 使用
EVM
LLVM,您可以使用基于LLVM的编译器生成
EVM
二进制
代码
。 该项目是一个Codegen后端,它不使用语言前端,因此,只要前端不生成特定于语言/平台的指令,开发人员就应该能够插入新的
智能合约
语言前端来生成
EVM
二进制文件。 但是,
EVM
体系结构引入了一些限制。 作为一种软件指令集体系结构,
EVM
操作码旨在为社区提供最佳的安全度量,而不是性能。 因此,我们不能假设在x86
公链开发与
智能合约
开发
根据区块链网络中心化程度的不同,分化出3种不同应用场景下的区块链:(1)全网公开,无用户授权机制的区块链,称为公有链;(2)允许授权的节点加入网络,可根据权限查看信息,往往被用于机构间的区块链,称为联盟链或行业链;(3)所有网络中的节点都掌握在一家机构手中,称为私有链。联盟链和私有链也统称为许可链,公有链称为非许可链。 公有区块链系统 公有链中,任何节点无须任何许可便可随时加入或脱离网络。从最早的比特币系统人手介绍公有链系统的发展现状。 点对点电子现金系统:比特币与传统分布式系统的C/S , B/S或三层架构不同,比特币系统基于P2P网络,所有节点对等,且都运行同样的节点程序。节点程序总体上分为两部分:一部分是前台程序,包括钱包或图形化界面;另一部分是后台程序,包括挖矿、区块链管理、脚本引擎及网络管理等。区块链管理:涉及初始区块链下载、连接区块、断开区块、校验区块和保存区块,以及发现最长链条的顶区块。内存池管理:即交易池管理。节点将通过验证的交易放在一个交易池中,并准备好将其放入下一步挖到的区块中。邻接点管理:当一个新比特币节点初始启动时,它需要发现网络中的其他节点,并与至少一个节点连接。共识管理:比特币中的共识管理包括挖矿、区块验证和交易验证规则。比特币采用PoW共识机制,依赖机器进行哈希运算来获取记账权,同时每次达成共识需要全网共同参与运算,允许全网50%节点出错。密码模块:比特币采用RIMEMD和SHA-256算法及Base-58编码生成比特币地址。签名模块:比特币采用椭圆曲线secp256k1及数字签名算法ECDSA来实现数字签名并生成公钥。脚本引擎:比特币的脚本语言是一种基于堆栈的编程脚本,共有256个指令,是非图灵完备的运算平台,没有能力计算任意带复杂功能的任务。本课程从零到一带领你实践一个小型公链。
智能合约
,Smart Contract,是一种旨在以信息化方式传播、验证或
执行
合同的计算机协议。 区块链领域的
智能合约
有以下特点:规则公开透明,合约内的规则以及数据对外部可见;所有交易公开可见,不会存在任何虚假或者隐藏的交易。 所以我们常说区块链技术具有“公开透明”“不可篡改”的特点,这些其实都是
智能合约
赋予区块链的。 程序员的世界里一致有个认知:相较于程序和机器,人更加不可控。人会作恶,但是
代码
并不会主观主动作恶。 而传统的契约行为,都是由人来制定规则,由人去
执行
。当然,遇到边界问题或者异常,也是由人去做界定。 但有了
智能合约
之后,这些就变得不一样了。 开发者通过
智能合约
去制定一套规则,然后发布到线上,人与
智能合约
进行交互,由机器去完成业务的部分,这样就规避了由人来做
执行
时可能造成的作弊行为。 静态类型的编程语言——Solidity,是以太坊的
智能合约
实现的编程语言,运行在以太坊的虚拟机 Ethereum Virtual Machine(
EVM
)上。 借由 Solidity,开发人员能够编写出可自我
执行
的应用程序,该程式可被视为一份具权威性且永不可悔改的交易合约,对已具备程式编辑能力的人而言,编写 Solidity 的难易度就如同编写一般的编程语言。 关于
智能合约
的应用,大名鼎鼎的 ICO 就是其中之一。除了 ICO 之外,与物联网结合赋能智能家居、投票等等,都是
智能合约
的应用场景。换言之,能够用机器去实现既定的规则、提高效率,且能够规避人类的作弊行为的场景,基本都是
智能合约
的应用场景。
burrow
超级账本洞穴 分支 Linux 掌握 开发 Hyperledger Burrow是被许可的以太坊
智能合约
区块链节点。它
执行
复仇
EVM
智能合约
代码
(通常写在一个许可管理虚拟机上)。 Burrow权益证明的共识引擎提供了交易终结性和高交易吞吐量。 什么是洞穴 Hyperledger Burrow是一个许可的区块链节点,它按照以太坊规范
执行
智能合约
代码
。 Burrow为多链世界而构建,同时考虑了特定于应用程序的优化。作为一个节点的洞穴是由三个主要组件构成的:共识引擎,许可的以太坊虚拟机和rpc网关。更具体地说,Burrow由以下各项组成: 共识引擎:使用拜占庭式容错Tendermint协议对事务进行排序和完成。 Tendermint协议通过一组已知的验证程序提供高事务吞吐量,并防止区块链分叉。 应用程序区块链接口(ABCI):
智能合约
应用程序通过与共识引擎接口。 ABCI允许共识引擎在
智能合约
洞穴:https://wiki.hyperledger.orgdisplayburrow
Hyperledger Burrow是被许可的以太坊
智能合约
区块链节点。 它
执行
复仇
EVM
和WASM
智能合约
代码
(通常写在一个许可管理虚拟机上)。 Burrow权益证明的共识引擎提供了交易终结性和高交易吞吐量。 什么是洞穴 Burrow是一个成熟的区块链节点和
智能合约
执行
引擎-一种
执行
代码
的分布式数据库。 Burrow运行以太坊虚拟机(
EVM
)和Web Assembly(WASM)
智能合约
。 使用共识算法对Burrow网络进行同步。 重点包括: 防篡改的Merkle状态-节点可以检测其状态是否已损坏,或者验证程序是否不诚实地
执行
了该协议。 权益证明支持-运行私有或公共许可的网络。 链上
尹成的课程社区_NO_3
1
社区成员
621
社区内容
发帖
与我相关
我的任务
尹成的课程社区_NO_3
尹成学院
复制链接
扫一扫
分享
社区描述
尹成学院
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章