用户登陆
正在加载
如何使用TRON Docker部署本地化波场TRON区块链?
互联网 · 2019-05-14 09:32:31



TRON是一个雄心勃勃的项目,致力于建立真正分散的互联网及其基础设施。 TRON协议是世界上最大的基于区块链的操作系统之一,为TRON生态系统中的所有分散应用提供基本公共区块链支持,具有高吞吐量,高可扩展性和高可用性。

简介


本指南引导用户完成TRON Docker快速启动映像设置。 该图像为用户提供了一个专用网络,其中包含一个完整节点、一个Solidity节点、一个事件服务器。默认情况下,每个帐户中有10个TRX帐户充满10,000个测试TRX,且 帐户提供相应的私钥。 因此, Docker快速启动的目的 是快速提供与本地测试环境,通过它们可以相互作用并了解TRON区块链用户。

Docker 请参考Docker官方网站下载并安装最新的Docker版本:

Docker安装为MacDockerWindows安装(https://docs.docker.com/docker-for-windows/install/)

Node.JS控制台 这将用于通过TRON-Web与完整和稳定节点进行交互。

Node.JS控制台下载(https://nodejs.org/en/)

克隆TRON Docker快速开始


设置TRON Docker

什么是TRON Docker?


TRON Docker Structure

TRON Docker 快速入门通过使用公开完整节点、有效性节点和事件服务器的映像为 TRON 的开发人员创建一个专用网络。 完整节点存储所有交易数据并将块数据与Solidity节点同步。 一旦您在智能合约中触发事件,MongoDB就会存储事件日志数据,然后为要查询的事件服务器提供数据。

注:Docker 图像 仅在本地设备上设置专用测试网。 这意味着它无法连接到Shasta测试网或TRON主网。 要连接到主网或Shasta测试网,请访问设置 完整节点。

设置

首先,检查应该在docker run 命令中引用的 最新版本的TRON Docker Quickstart。(https://hub.docker.com/r/trontools/quickstart/tags/)执行docker run 命令时,请确保通过从Docker Hub页面指定相应的标记名称编号来运行最新版本。 在下图中,最新的Docker版本是1.1.3。


关于版本号的说明

对于最新的Java-Tron Odyssey 3.2 版本,最低兼容Tron Quickstart版本是Tron Quickstart 1.2.2 。请确保您已安装此版本。

下一个步骤是执行docker 运行 命令。 docker run 命令公开五个端口:端口8090和8091用于完整节点和Solidity节点HTTP。 端口50051和50052用于完整节点和Solidity节点gRPC。 端口8092用于事件服务器。 在命令语法的末尾,请参考您在Docker Hub页面中看到的 最新版本号。

Mac/Linux Shell(https://cn.developers.tron.network/docs/quickstart-with-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.1.3

输出

成功输出的删节版本类似于以下内容:




要验证完整节点,Solidity节点,事件服务器和MongoDB运行状态,请打开另一个终端窗口并运行以下命令。

shell:

docker exec -it tron tail -f /tron/FullNode/logs/tron.log # check full node log

docker exec -it tron tail -f /tron/SolidityNode/logs/tron.log# check solidity node log

docker exec -it tron mongo


要验证映像是否正常运行,请执行命令docker exec -it tron ps aux。 输出应类似于以下:



查询帐户信息

如果您关闭终端或只想再次显示帐户和私钥列表,请运行以下API调用:

Shell

curl http://127.0.0.1:8090/admin/accounts

TRON-Studio智能合约

TRON-Studio是一个用于开发、部署和调试基于TVM的智能合约的IDE。 GRPC端口与Tron Docker完整节点配合使用,可以注册帐户,部署智能合约以及触发智能合约。

设置

请确保您的系统上安装了JDK 1.8环境。 克隆Tron-Studio存储库,然后导航到 tron-studio目录。



运行gradlew build:


要验证映像是否正常运行,请执行命令docker exec -it tron ps aux。 输出应类似于以下:cd ~/tron/tron-studio

./gradlew build -x test -x check # build project


Starting a Gradle Daemon (subsequent builds will be faster)

Download http://mvnrepository.com/com/github/jengelman/gradle/plugins/shadow/2.0.2/shadow-2.0.2.pom

Download http://mvnrepository.com/org/sonarsource/scanner/gradle/sonarqube-gradle-plugin/2.6/sonarqube-gradle-plugin-2.6.pom

Download http://mvnrepository.com/com/google/protobuf/protobuf-gradle-plugin/0.8.3/protobuf-gradle-plugin-0.8.3.pom

Download http://mvnrepository.com/commons-lang/commons-lang/2.6/commons-lang-2.6.pom

Download http://mvnrepository.com/com/google/guava/guava/18.0/guava-18.0.pom

..........

..........

BUILD SUCCESSFUL in 56s

13 actionable tasks: 13 executed


保持在同一目录并执行jar文件以启动TRON-Studio:



TRON-Studio IDE将如下所示启动:


运行智能合约

将以下智能合约复制到Tron-Studio编辑器中。



单击Compile 按钮, 成功编译会在右下角弹出一个弹出窗口,让您知道它是成功的。



Tron Studio Compile Panel

点击在IDE右上拐角的设置按钮。 这将打开“现有设置”窗口。



调节本地TVM 的地址端口,以反映 TRON Docker GRPC完全节点端口,这是50051。 请记住, Tron-Studio仅通过gRPC端口与外部环境进行交互.



点击OK保存设置。 然后单击刷新按钮以确保在本地TVM上选择了gRPC端口。 现在单击 Deploy 按钮以部署合同的实例。




Tron Studio Run Panel

一旦合约部署到本地测试网,通过在中心底部窗口中展开事务的详细信息来验证部署是否成功,结果类别的值为成功表示成功部署。现在我们可以测试已部署的合同。在“部署联系人”面板中展开合同。 您将看到 postMessage 和 getMessage的两个函数。 输入字符串值“1000 Trx”并单击 postMessage 按钮以触发状态更改功能,然后单击 getMessage 按钮查询更改。 这将在控制台面板中显示“1000 Trx”消息。

Tron-Web 交互

介绍

到目前为止,智能合约已部署在您当地的私人测试网上。本节将引导用户通过名为Tron-Web的API库与完整节点,Solidity节点和部署的智能合约进行交互。 本 指南的目的 是给用户与生态系统交互的感觉。

Node.JS控制台

在docker-tron-quickstart 文件夹的 app 文件夹中,有一个名为 tronWeb.js的JavaScript文件。 完整节点,Solidity 节点和事件服务器的默认地址指向本地Docker Quickstart节点的HTTP端口。

JavaScript

const TronWeb = require('tronweb')


let fullNode = 'http://127.0.0.1:8090'

let solidityNode = 'http://127.0.0.1:8091'

let eventServer = 'http://127.0.0.1:8092'

let defaultPrivateKey = 'da146374a75310b9666e834ee4ad0866d6f4035967bfc76217c5a495fff9f0d0'


global.tronWeb = new TronWeb

fullNode,

solidityNode,

eventServer,

defaultPrivateKey

require('repl').start({})


在新的终端中,导航到docker-tron-quickstart 目录。 安装npm依赖项并执行 节点tronWeb。 这将进入Node.JS控制台。




查询API调用

我们将运行一个简单的API调用来查询我们的智能合约交易信息。 这将使用 tronWeb.trx.getTransactionInfo API调用。 在Tron-Studio中,扩展原始智能合约的部署详细信息显示 transaction_id:



与TRANSACTION_ID作为参数执行所述API调用输出以下JSON数据:



Executing the API call in Terminal 1

状态更改API调用

我们现在将对postMessage 函数进行API调用,在您的私有Docker区块链上记录一条新消息,然后输出该消息。 创建一个具有以下代码的Javascript程序。 在代码中,确保您的本地TVM URL和端口正确,并将您的智能合约地址替换为 contractAddress 字段。 如果您愿意,您也可以修改 postMessage 字符串输入:

changestate()

分解程序:程序首先定义本地Docker节点和事件服务器的地址和端口。 此信息存储在 tronWeb 对象中。 定义一个名为 changestate 的函数然后执行。 该函数首先定义合同对象。 然而,它执行该 的postMessage 使用功能 。发送() 的方法,以及所述 的getMessage 使用函数 .call() 方法。 最后,该函数输出 getMessage 结果。

输出看起来像:



恭喜!您现在已经设置了本地TRON区块链,部署了您的智能合约,通过TronWeb API调用不可变地更改了区块链,并查询了结果。

免责声明:
本网站所提供的所有信息仅供参考,不构成任何投资建议。用户在使用本网站的信息时应自行判断和承担风险。币界网不对用户因使用本网站信息而导致的任何损失负责。用户在进行任何投资活动前应自行进行调查和研究,并谨慎决策。币界网不对用户基于本网站信息做出的任何投资决策负责。用户在本网站发布的任何内容均由其个人负责,与币界网无关。
免责声明:本网站、超链接、相关应用程序、论坛、博客等媒体账户以及其他平台和用户发布的所有内容均来源于第三方平台及平台用户。币界网对于网站及其内容不作任何类型的保证,网站所有区块链相关数据以及其他内容资料仅供用户学习及研究之用,不构成任何投资、法律等其他领域的建议和依据。币界网用户以及其他第三方平台在本网站发布的任何内容均由其个人负责,与币界网无关。币界网不对任何因使用本网站信息而导致的任何损失负责。您需谨慎使用相关数据及内容,并自行承担所带来的一切风险。强烈建议您独自对内容进行研究、审查、分析和验证。
s_logo
App内打开