-
web3 以太坊开发-38-以太坊 JAVASCRIPT 应用编程接口库
JS 应用编程接口库
为了使软件应用程序能够与以太坊区块链进行交互(例如:读取区块链数据或发送交易信息到网络),软件必须连接到以太坊节点。
为此目的,每个以太坊客户端都执行 JSON-RPC 规范,所以应用程序可以依赖统一的端点集。
如果您想要用 JavaScript 连接到一个以太坊节点, 可以使用原生 JavaScript,不过生态系统中存在一些方便的库,使得这个事情变得更加容易。...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-37-以太坊开发框架 frameworks
去中心化应用程序开发框架
构建一个完整的去中心化应用程序需要不同的技术。
软件框架包括许多需要的功能,或提供简单的插件系统来选择您需要的工具。
这些框架带有很多非常规的功能,比如:
编一个本地区块链的程序功能。
编辑和测试您智能合约的实用工具。
客户开发附加功能,在同一个项目、仓库中来搭建您面向客户的应用程序。
...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-36-以太坊开发网络 development-networks
开发网络
当使用智能合约来开发一个以太坊应用时,您可能想要在部署之前在本地查看它是如何工作的。
这和在本地运行一个本地网页服务器相似。为了测试您的去中心化应用程序,您可以使用开发网络创建一个本地的区块链。
这些以太坊开发网络提供了能够比公共测试网更快的迭代功能(例如您不需要从测试网获取以太币)。
什么是开发网络?
实质上开发网络是指哪些对本地开发特殊设计的以太坊客户端(会对以太坊进...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-35-以太坊智能合约组合 smart contracts composability
智能合约的可组合性
智能合约在以太坊上是公开的,可视为开放式应用程序接口。
您不需要写自己的智能合约才能成为一个去中心化应用程序开发者,您只需要知道如何与它们交互。
例如,您可以使用现有的智能合约 Uniswap,一个去中心化的交易所,在您的应用中处理代币交易逻辑 – 您并不需要一切从零开始。 看看他们的一些 v2 和 v3 合约。
什么是可组合性?
可组合性是将独立的组件结合起来...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-34-以太坊智能合约形式化验证 smart contracts formal-verification
形式验证
智能合约使得创建去中心化、去信任和强大的应用程序成为可能,这些应用程序可以引入新的用例并为用户释放价值。
由于智能合约处理大量价值,因此安全性是开发人员的关键考虑因素。
形式验证是提高智能合约安全性的推荐技术之一。
形式验证使用形式化方法来指定、设计和验证程序,多年来一直用于确保关键硬件和软件系统的正确性。
在智能合约中实现时,形式验证可以证明合约的业务逻辑符合预定义的规...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-33-以太坊智能合约安全 smart contracts security
智能合约安全性
以太坊智能合约是极为灵活的。
它能够存储超过非常大量的虚拟货币(超过十亿美元),并且根据先前部署的智能合约运行不可修改的代码。
虽然这创造了一个充满活力和创造性的生态系统,但其中包含的无信任、相互关联的智能合约,也吸引了攻击者利用智能合约中的漏洞和以太坊中的未知错误来赚取利润。
智能合约代码通常无法修改来修复安全漏洞,因此从智能合约中被盗窃的资产是无法收回的,且被盗资...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-32-以太坊智能合约升级 smart contracts upgrading
以太坊智能合约升级
以太坊上的智能合约是在以太坊虚拟机 (EVM) 中运行的自动执行程序。
这些程序在设计上是不可变的,一旦部署了合约,就会阻止对业务逻辑的任何更新。
虽然不可变性对于智能合约的去信任、去中心化和安全性是必要的,但在某些情况下它可能是一个缺点。
例如,不可变代码可能使开发人员无法修复易受攻击的合约。
然而,对改进智能合约的更多研究导致引入了几种升级模式。
这些升级...
2022-10-28 13:01:55 |
web3
-
web3 以太坊开发-30-以太坊智能合约验证 smart contracts verifying
验证
智能合约被设计为“无需信任”,这意味着用户在与合约交互之前不必信任第三方(例如开发人员和公司)。
作为去信任的必要条件,用户和其他开发人员必须能够验证智能合约的源代码。
源代码验证向用户和开发人员保证,发布的合约代码与在以太坊区块链上的合约地址上运行的代码相同。
重要的是要区分“源代码验证”和“形式验证”。
源代码验证,后面会详细解释,是指验证给定的智能合约的高级语言(例如S...
2022-10-28 13:01:55 |
web3