Solidity 的 ABI 和 bytecode 是什么

本文深入探讨了Ethereum Virtual Machine (EVM)、Solidity编译后的bytecode和Application Binary Interface (ABI)。VM允许运行智能合约,bytecode是部署在区块链上的代码,而ABI定义了智能合约的接口,用于与合约交互。通过 Remix IDE,开发者可以方便地生成和使用bytecode及ABI。

当你作为 Solidity 开发者开始写 Ethereum 智能合约的时候,你会很快接触到一些概念像是EVM(Ethereum Virtual Machine),bytecode 和 ABI(application binary interface),如果你是一个 Javascript 开发者(就像我第一次学习代码的时候一样),这些专有名字可能对你来说并不陌生,你可能想知道在 Solidity 和 Ethereum 世界中,这些名字和你理解的意思一不一样。

这篇文章会从技术的角度去了解这三个概念,看完这篇文章以后,你会知道什么是 EVM,Bytecode 和 ABI,而且会了解怎么样在项目中快速生成和使用 bytecode 和 ABI。

VM 和 EVM

让我们从以太坊虚拟机(EVM)开始了解,首先先把 EVM 放在一边,理解什么是 VM。通俗的来讲,VM 也是一个能够在硬件上运行的软件,但是与其他软件不同的是,VM 主要是被设计来模拟硬件的。即这个软件是用来“假装”自己是一个硬件,就像音乐 App 是一个虚拟的播放系统一样,它不是一个物理的硬件,但是模拟了一个物理机器。

为什么我们需要虚拟机?答案是虚拟机可以有效地扩展,管理和升级软件运行所以来的基础设施。要使用 1000 个物理服务器的业务,你可能只需要使用 20 个然后在每一个物理服务器上跑 50 个虚拟机。你甚至可以让每一个虚拟机都运行不同的操作系统,比如一个虚拟机运行 Windows 服务器,第二个运行 Linux Debian,第三个运行 Gentoo Linux,然后第四个运行 ChromeOS!

2-1.png
在同一个硬件上的不同虚拟即运行多个操作系统


这样做的好处是你可以在这些虚拟机上运行多个应用,所有的这些都是运行在同一个硬件中的,所以这个硬件的计算资源和系统资源的使用效率更高,提升了基础设施的性价比。

以太坊虚拟机(EVM)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值