关于区块链:ApeWorX-新的基于-Python-语言的区块链开发框架

0次阅读

共计 2428 个字符,预计需要花费 7 分钟才能阅读完成。

Brownie 是 Python 开发人员常常应用智能合约框架。当初呈现了一个 Brownie 的继任者,能够让 Python Web3 开发人员取得更好的体验。

在本文中,我将探讨这个 Brownie 的继任者 ApeWorX,也称为“Ape”。

ApeWorX 是一个基于 Python 的智能合约开发和部署框架,有很强的可定制性和平安的私钥管理机制。

你们中的许多人都晓得我(Patrick Collins)很喜爱 Python,所以在进入 Web3 畛域后,我爱上了 Brownie 框架。自从我进入这个畛域以来,仿佛所有原创的 Web3 框架都是两种后果:曾经胜利或者被另一个竞争对手替换:

  • DappTools 正式抵赖 Foundry 作为其继任者。
  • 在 Truffle 风行过很长一段时间之后,Hardhat 成为了 DeFi 中最罕用的框架。
  • ApeWorX 仿佛有朝一日会成为 Brownie 框架的继任者。

以太坊 Python 社区是协作性最强、成员之间分割最严密的社区之一。在 Ape contributor 中能够看到许多 Vyper 和 Brownie 的 contributor,包含 Doggie B、Banteg 和 Skellet0r(甚至还有我本人!)

此外,Python 爱好者和 Curve 等 DeFi 协定都开始应用 Ape 作为其智能合约的框架。

明天,咱们将从 Brownie 用户的角度对 ApeWorX 进行疾速的理解和学习。

疾速理解

你能够在 Chainlink 的 repo ApeWorX-starter-kit 中找到一个最简 ApeWorX & Vyper 模板,其中蕴含代码示例以帮忙你疾速理解。

应用 pipx install eth-apepip 装置 ape 后,你就能够拜访 ape 命令行界面了。

初始化一个新我的项目的最快办法是应用 ape init,它会生成一个空白配置的我的项目文件夹,如下所示:

.

├── ape-config.yaml

├── contracts

├── scripts

└── tests

以下是每个文件夹蕴含的内容:

  • Contracts:你所有的 Vyper、Solidity 或其余合约文件都将放在这里。
  • Scripts:所有 Python 代码的寄存地位。
  • Tests:你的 Python 测试文件。
  • ape-config.yaml:我的项目的配置文件。就相似于 brownie-config.yaml 或 hardhat.config.js。

在 scripts 文件夹中,你能够写一个如下的文件:

def main():

 print("Hello!")

在 ape 中想要运行任何一个 Python 脚本,运行:

ape run scripts/my_script.py

Ape 的插件零碎

默认状况下,Ape 没有 Vyper、Solidity 或任何其余货色,而是须要应用插件零碎使得 ApeWorX 齐全可定制,以满足开发者特定的智能合约开发需要。两个最受欢迎的插件是用于 Solidity 和 Alchemy 的插件,它们容许你编译 Solidity 智能合约并且轻松通过 Alchemy 部署。

ape plugins install solidity alchemy

当你实现配置当前,你能够在 Contracts 文件夹中编写 Solidity 的合约而后对其进行编译。

ape compile

Networks

Ape 采纳特定办法解决 network。大多数框架,包含 Hardhat、Brownie 和 Foundry,都以相似的形式解决 EVM 链,但 ApeWorX 是不同的。

ApeWorX 将 network 分成 生态系统和链。例如,以太坊生态系统分为 mainnet、ropsten、kovan、goerli 等。如果你想应用 Fantom 之类的 network,你能够装置 fantom 的 network 插件:

ape plugins install fantom

而后在 ape 网络中,你会看到一个新的 network 列表:

fantom                                                                                                      

├── opera                                                                                                   

│   └── geth  (default)                                                                                     

├── testnet                                                                                                 

│   └── geth  (default)                                                                                     

└── local  (default)                                                                                        

   └── test  (default)

如果你不想为某个 network 装置插件,也能够应用长期办法,只需将 RPC URL 配置到 network 中。这样 ape 就会认为这个网络是能够发送交易的。

ape run scripts/my_script.py --network https://my_rpc_url.com

账户

框架之间最大的区别之一是它们如何解决帐户。大多数框架都让你设置一个 .env 文件来存储私钥。然而,将您的私钥放在 .env 中其实始终困扰着开发人员。你 也能够 在 ape 中执行此操作,但 ape 的默认的设置形式更加平安。

Ape 容许你导入私钥,而后它将私钥加密并将存储在你的计算机上。每当您想应用该帐户或私钥时,您都须要明码来解密。这意味着再也不会不小心将你的密钥 push 到 GitHub 了!

ape accounts import my_key

而后它会提醒你输出密钥和明码。在你的 Python 脚本中,您能够应用 load 函数来获取你的私钥。

from ape import accounts

accounts.load("local-default")

当你运行这个脚本的时候,会有提醒让你输出明码。

其余

框架的其余部分可能和你预期的应用习惯差不多。你能够应用 pytest(最风行的 Python 测试框架之一)编写测试。你能够进入 ape console,在 Python 环境中应用 shell 与你所抉择的网络交互。

Ape 中有你心愿从智能合约开发框架中取得的所有性能。

Ape 是框架畛域的新成员,它也是一个很棒的 Repo,你能够去 contribute。如果你喜爱 Python 并且对如何改良 ape 有想法,请去提一个 issue、PR,或者给他们一个 star!

Happy Ape-ing!

这篇文章中表白的观点仅代表作者,并不反映 Chainlink。

欢送关注 Chainlink 预言机并且私信退出开发者社区,有大量对于智能合约的学习材料以及对于区块链的话题!

正文完
 0