tron 波场笔记 2

本贴最后更新于 2203 天前,其中的信息可能已经时移世易

入门完全指南

Issue #1 · maxisacoder/tron-dapp-demo

本章节我们通过一个 Token 合约,来讲解基本的合约开发和 dapp 开发流程。本例中的所有代码都可以在该 Repo 中找到。

TRON 开发工具链

TRON 提供了完整的工具链为开发者提供合约开发,测试,部署,接口。尤其是对于熟悉以太坊智能合约的开发者,从语言到工具一定都非常熟悉。

tron-web:JavaScript 接口,用于提供常用的账户,地址,转账,合约相关操作。相当于 Ethereum 的 web3js。

tron-box:提供合约编译,部署,测试的命令行工具。作用相当于 Ethereum 的 truffle 工具链。

npm install -g tronbox
Contract Compiler
tronbox compile

tronLink,tronPay: 提供浏览器环境的钱包插件,为 dapp 提供便利和安全的执行环境,相当于 Ethereum 的 MetaMask,Scatter。

tron-grid:社区维护的主网和测试网 HTTP API 接口,相当于 Ethereum 社区中的 Infura。

tron-studio: TRON 集成开发环境,相当于以太坊中的 Remix,不过现在功能和稳定性都有待提高,不推荐使用。

区块浏览器

主网 https://tronscan.org/#/

测试网 https://explorer.shasta.trongrid.io/#/

环境搭建

如果希望自己搭建一条本地私链进行调试。根据官方文档,TRON 的私链可以通过官方提供的 docker 镜像来部署,以下为部署的指令:

docker run -it -p 8091:8091 -p 8092:8092 -p 8090:8090 -p 50051:50051 -p 50052:50052 --rm --name tron trontools/quickstart:1.2.4

TRON network 中,一共有 4 种节点分别为:

Witness:作为超级节点,负责收集网络中的交易,负责出块,不为客户端暴露 API。
FullNode:Full Node 广播交易和区块,同时为提供的 API 进行账户,交易和区块的查询和操作。在本例中,端口 8090 为其 HTTP 接口,端口 50051 为其 GRPC 接口。
SolidityNode:SolidityNode 只负责从 FullNodo 中拉取区块数据,不会主动发送数据,其区块数据落后于 FullNode 几个区块,故其暴露的 API 适合已经确认的交易。客户端需要同时和 FullNode 和 SolidityNode 想链接,以获得不同的 API 功能。其具体 API 列表在这里。在本例中,端口 8091 为其 HTTP 接口,端口 50052 为其 GRPC 接口。
EventSever: 在 TRON 的合约中,像 Ehereum 一样支持事件,不同的是,TRON 中的事件是从 EventServer 中来监听。在本例中,端口 8092 为其 HTTP 接口。
同时,社区提供了 Shasta 测试网,用户也可以方便的输入自己地址来获取测试代币,同时提供测试网的区块链浏览器,非常方便开发调试,由于 TRON 测试网速度比以太坊的快非常多,我们在开发测试中,本教程直接使用测试网进行调试和部署,以简化读者的操作和学习路径。

合约开发编译部署

https://developers.tron.network/docs/getting-started-1

https://github.com/whitespur/tron-dapp-demo/tree/master/contracts

TRON 中的合约采用 Solidity 来编写,故以太坊开发者在合约开发层,可以零学习成本迁移至 TRON 网络。下面我们编写一个标准的 ERC20 的代币 Transfer 合约,并将其部署至 TRON。
合约部署
合约代码完成后, 我们新建一个目录,利用 tronbox 来初始化一个基础的 dapp 工程。

npm install -g tronbox

tronbox init

ls

Contract Compiler

tronbox compile

tronbox migrate
tronbox migrate --reset

tronbox console

tronbox test

tronbox migrate --network shasta

dapp 与合约交互

https://github.com/whitespur/tron-dapp-demo

主要是写前端 react 代码调用合约

1. Setup dependency

yarn

安装 yarn
https://yarn.bootcss.com/docs/install/#mac-stable
Yarn 对你的代码来说是一个包管理器, 你可以通过它使用全世界开发者的代码, 或者分享自己的代码。Yarn 做这些快捷、安全、可靠,所以你不用担心什么。

通过 Yarn 你可以使用其他开发者针对不同问题的解决方案,使自己的开发过程更简单。 使用过程中遇到问题,你可以将其上报或者贡献解决方案。一旦问题被修复, Yarn 会更新保持同步。

代码通过 包(package) (或者称为 模块(module)) 的方式来共享。 一个包里包含所有需要共享的代码,以及描述包信息的文件,称为 package.json 。

2. Compile Contract

请修改 tronbox.js 填入自己的私钥
yarn run migrate

3. run the dapp

yarn run start

If you want to send "TRX", make sure you multiply this value by 1000000.

react 入门

通过 npm 使用 React

通过npm使用React_慕课手记

$ npm install babel -g
$ npm install webpack -g
$ npm install webpack-dev-server -g

yarn 安装
https://yarn.bootcss.com/docs/install/#debian-stable
sudo apt-get update && sudo apt-get install yarn

  • TRON
    2 引用
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 370 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...