欢迎光临散文网 会员登陆 & 注册

搭建开发环境

2023-03-09 15:37 作者:DoraHacks  | 我要投稿

Hacker  Dōjō Web3前沿技术 workshop文稿

研究种类:TONFun|翻译—TON 社区开发专栏Blog内容汉化

资助金额:120 USDT

Bounty链接:https://dorahacks.io/daobounty/247

本项目由Hacker Dōjō 资助,文章转载请注明出处。

🔸学习量子计算、密码学、Space等Web3前沿技术

🔸认领Bounty,赚取赏金

🔸参与Hackathon,获得资助

更多Web3精彩技术分享尽在Dōjō👇

WeChat: @HackerDojo0


搭建开发环境

在这篇文章中,我们将介绍如何在TON生态系统搭建完整的开发环境。以下几个工具将被讨论到:

  • TON二进制文件(binaries )(lite-clienttonlibfuncfift...)

  • toncli

  • ton-contract-executor

  • tonstarter-contracts

  • MyLocalTON

TON二进制文件

注意:完成这一步,对于在TON区块链上进行开发来说非常重要。

要在TON区块链上开发和交互,你需要编译器、客户端、节点的二进制文件,有两种方式可以获得:

  • 从源代码编译

  • 从Auto Builds获得二进制文件

我们需要采取前一种方式,因为Auto Builds不适用于我们的目标分支。另外,官方TON二进制文件可以从ton仓库的Auto Builds下载。然而,我们将使用TON的分叉链,来提供后续所需的测试功能。请按照以下步骤操作:

1. 安装最新版本的:

make

cmake >= 3.0.2

g++ or clang (or another C++ 14 compatible compiler)

OpenSSL (with C Headers) >= 1.1.1

2.复制[SpyChesses's TON](<https://github.com/SpyCheese/ton/actions>)并切换  到 toncli-local 分支:

3. 在任意位置创建一个生成目录,我们可以将其命名为 <ton-build>。假定你已经将 ton 复制到 <ton-rep>中,在终端执行以下命令:

4. 生成每个目标

5.这些步骤将会花费一些时间,等完成后,二进制文件将会在以下目录中:

   你可以将它们复制到特定的目录并将它们增加到你的 PATH

 6. TON二进制文件创建完成。


toncli

[toncli](<https://github.com/disintar/toncli>) 是TON的跨平台命令行界面,它让区块链的智能合约操作和交互变得更简单。

我们将使用一个带有新测试框架的 toncli 分叉版,因此也需要分叉的TON二进制文件。请按照以下步骤安装:

  1. 确定完成了 TON Binaries 部分的设置。

  2. 从官方网站安装python(>=3.9)到你的系统。

注意1:如果你使用windows系统,请不要使用Microsoft商店版本。

注意2:确定将python添加到 PATH (windows上只需选中 Add Python 3.xx to PATH 选项即可)

  3.使用以下命令安装 toncli :

注意:如果你看到 WARNING: The script toncli is installed in '.../Python/3.X/bin' which is not on PATH提示,需要将提示中的地址增加到PATH 环境变量中。

4. 进入到TON二进制文件的文件夹中,打开终端,然后在其中运行 toncli 命令。你可以看到它会自动检测二进制文件并设置它们。如果因为任何原因无法找到二进制文件,只需按要求提供二进制文件的抽象路径即可。如果检测成功,你将看到以下输出:

正如你看到的,toncli带有多个命令,可以帮助智能合约的开发和交互。这些命令都有很好的文档说明,这里我们将介绍它们的用法。


配置项目

要配置一个项目,我们可以使用 start 命令从示例项目创建一个新项目。目前有4个选项: walletexternal_dataexternal_code和 simple_storage。我们将使用 simple_storage 选项:

你可以看到合约是怎样部署在 simple_storage/func/ 中的,也可以看到测试是怎样部署在 simple_storage/tests/中的。


项目yaml文件

project.yaml 文件包含项目的结构和元数据。你可以在其中指定合约数据单元/fift文件、功能合约和测试,以便toncli检测并使用它们。


测试合约

测试在合约开发过程中非常重要,它可以确保合约的安全性,防止意外事件发生。运行测试:

这个命令会运行 project.yaml 文件中指定合约的所有测试。

你可以通过传递 -c 参数来测试某个特定的合约。


部署合约

你可以使用以下命令将合约部署到主网或测试网:

如果你没有钱包,它将为你创建一个,并要求你发送一些TON到钱包中,以便支付部署合约的费用。

更多详细说明请查阅 [toncli's docs](<https://github.com/disintar/toncli/tree/master/docs>)。


ton-contract-executor

注意:这个库依赖于 ton-compiler ,该编译器在撰写本文时只支持 macOS,如果你不是macOS用户,你将无法使用这个库,直到支持被添加。

ton-contract-executor 允许你在本地运行TVM 和执行合约,可以帮助你在将合约部署到网络之前编写、调试和全面测试合约。

你可以按以下步骤设置:

1. 安装 [Node.js](<https://nodejs.org/en/download/>)

2. 安装 yarn 包管理器:

3. 创建一个代表你的项目根目录的目录,并初始化:

4. 安装 ton-contract-executor  ton

5. 创建内容文件 contract.js 

6. 成功执行后,你将看到结果正确的控制台日志。

这仅仅是一个基础的示例,你可以开发脚本来读取合约文件的代码,执行并测试其中的方法。更多示例可以查阅 主资源库。


tonstarter-contracts

这个项目是在TON上开发aApp的起始模版,它目前包含了合约开发的代码,未来还将包含与合约交互的前端和telegram机器人模版。

按以下步骤设置:

1. 安装最新版本的 [Node.js](<https://nodejs.org/en/download/>)

2. 确定已完成 TON Binaries 步骤并将二进制文件增加到 PATH 环境变量。(fift 和 func 必须可以被检测到)

3. 复制资源库:

4. 安装依赖包:

5. 配置完成。

    写代码

    合约存放在 contracts/目录下,每个子文件夹的行为以及文件夹的扩展结构如下:

    • contracts/*.fc:独立的根合约

    • contracts/imports/*.fc:合约间共享导入文件

    • contracts/imports/<contract>/*.fc:特定合约导入——非共享

    • contracts/<contract>.tld:用于数据和消息操作的可选 TL-B 方案

    • contracts/<contract>.ts:编码数据和消息操作的可选typescript文件

    构建代码

    在资源根目录下运行 npm run build 来创建合约,如果出现任何错误,它们都将显示出来;如果没有出现错误,生成的文件如下所示:

    • <contract>.merged.fc - 合并并扁平化所有导入的 FunC 源代码文件

    • <contract>.fif - 按Fift汇编文件编译的合约

    • <contract>.cell - 编译合约的二进制代码单元(用于部署)

    测试

    在进行测试之前,你必须先构建代码。使用 npm run test 运行测试,该测试是由TVM使用 ton-contract-executor运行的。

    注意:如前所述,在撰写本文时, ton-contract-executor 由于其依赖性只能在macOS上运行,因此如果您不使用macOS将无法运行测试。

    部署

    首先,先创建合约,每个要部署的合约应该要有一个 build/<contract>.deploy.ts 的脚本来返回它的初始数据单元。

    可以通过在 .env 文件中的 DEPLOYER_MNEMONIC 变量来配置部署钱包,你要在 .env 中提供24个助记词,比如:

    运行 npm run deploy 在主网部署,运行 npm run deploy:testnet 在测试网部署,然后按照屏幕上的提示进行操作。

    更多细节可以查阅 主资源库(<https://github.com/ton-defi-org/tonstarter-contracts>)。


    MyLocalTON

    MyLocalTON 是一个跨平台的本地TON区块链。它以 .jar 文件的形式作为独立应用程序使用。

    它可以用于简化测试和检查区块链的状态,无需使用和部署到 testnet

    设置 MyLocalTON

    1. 确保安装了OpenJDK17,如果你已经安装了,请跳过此步骤。

    如有需要,以下是安装OpenJDK的一些指导:

    • Ubuntu(<https://techviewleo.com/install-java-openjdk-on-ubuntu-linux/>)

    • Windows(<https://java.tutorials24x7.com/blog/how-to-install-openjdk-17-on-windows>)

    • MacOS(<https://knasmueller.net/how-to-install-java-openjdk-17-on-macos-big-sur>)

    2. 进入 MyLocalTON里的 Auto Builds(<https://github.com/neodiX42/MyLocalTon/actions>),打开最新成功构建的代码,从生成的构建文件中下载 MyLocalTon 。

    3. 解压下载的文件并用java运行:

    4. 你将看到如下屏幕,它将花费一点时间来初始化TON区块链:

    5. 成功初始化之后,区块链就准备好了:

    关于Hacker Dōjō 

    由Hacker共建的加密、Web3前沿技术开源知识社区。Dōjō 会以直播/音频/文字等形式定期组织分享session, 分享主题主要覆盖L1和L2的共识算法,架构,GitHub repo相关内容,包括不限于以下话题:Scroll / Polygon zkEVM、 Eigen的混合证明系统、Starkware、azTec、 Optimism、Zecrey、Aptos、 Move、密码学(零知识证明、公钥加密、哈希函数、格密码) 、 分布式系统、 以太坊协议栈、 量子计算和量子信息、卫星通信系统和航天器系统设计等。

    ✨Bounty详情及认领进度详情:https://innovative-laser af4.notion.site/174922df15884848b6ac8b57cb4f2fae?v=612e13dc6b9d44dd8197f755abb9fe9c

    ✨加入 Dōjō 中文社区微信联系:@HackerDojo0


    有关DoraHacks

    DoraHacks 是一个全球范围内的极客运动,全球黑客马拉松组织者,也是全球最活跃的多链 Web3 开发者平台之一。DoraHacks.io平台使得世界各地的Hacker和开源开发者可以参与黑客马拉松、Bounty、Grant、Grant DAO,以及公共物品质押等加密原生协议和基础设施进行协作并获得资助。到目前为止,DoraHacks 社区的 4000 多个项目已经获得了来自全球行业支持者超过 3000 万美元的资助。大量开源社区、DAO 和 超过50个主要区块链生态系统正在积极使用 Dora 的基础设(DoraHacks.io)进行开源融资和社区治理。

    官网:https://dorahacks.io/


    搭建开发环境的评论 (共 条)

    分享到微博请遵守国家法律