Py学习  »  docker

TRON开发者指南 | 第二期:使用TRON Docker快速入门

波场TRON • 4 年前 • 776 次点击  


波场TRON|开发者指南

波场TRON团队为更好地服务社区开发者及建设者、吸引更多强大力量共同建设TRON全球网络生态社区,特制作TRON开发指南,指南将由浅入深为您介绍在波场网络上所遇到的问题和注意事项。




欢迎来到

波场TRON开发者指南


在这里您将找到最全面的指南与文档

助力您完美使用



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


简介

 

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

 

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

Docker安装为Mac DockerWindows安装(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调用不可变地更改了区块链,并查询了结果。


- END-


波场TRON创始人及团队介绍

(向上滑动查看内容)



由马云湖畔大学首期学员孙宇晨建立的波场TRON以推动互联网去中心化为己任,致力于为去中心化互联网搭建基础设施。旗下的TRON协议是全球最大的基于区块链的去中心化应用操作系统协议之一,为协议上的去中心化应用运行提供高吞吐,高扩展,高可靠性的底层公链支持。波场TRON还通过创新的可插拔智能合约平台为以太坊智能合约提供更好的兼容性。

自2018年7月24日起,TRON收购了位于旧金山的互联网技术公司BitTorrent Inc.。BitTorrent Inc.设计的分布式技术能够有效扩展,保持智能化,并使创作者和消费者能够控制其内容和数据。每个月有超过1.7亿人使用BitTorrent Inc.开发的产品。BitTorrent Inc.的协议每天可以传输全球40%的互联网流量。

孙宇晨,1990年生,美国常青藤盟校宾夕法尼亚大学硕士,北京大学学士。
前Ripple大中华区首席代表,波场TRON创始人,BitTorrent CEO,移动社交应用陪我APP创始人兼CEO。
2011年亚洲周刊封面人物,2014年达沃斯论坛全球杰出青年,2015年福布斯中国30位30岁以下创业者。
2015 CNTV中国互联网年度新锐人物,2015年成为湖畔大学首批学员中唯一90后学员 。
2018年7月24日起,TRON收购了位于旧金山的互联网技术公司BitTorrent Inc.成为BitTorrent Inc. CEO。



波场TRON创始人孙宇晨(Justin Sun)与波场TRON北京办公室平均年龄26岁的108位同事合照展示。目前波场TRON经过近一年的发展,已经快速成为全球增长最为强劲,扩张最为迅速的区块链团队之一,波场TRON团队目前仍然保持着每天发出一个新Offer的节奏,预计2019年年底将突破一千人!



了解波场TRON最新官方动态

(向上滑动查看内容)


官网:https://tron.network


您可关注微博:波场TRON官博

https://weibo.com/u/6344553397


Facebook用户可直接访问:

https://www.facebook.com/TronFoundation-144555002795817/ 


Telegram进行互动可搜索:

中文 https://t.me/tronnetworkCN03
英文 https://t.me/tronnetworkEN03


您可以前往Github了解更多:

https://github.com/tronprotocol


在Twitter上关注@tronfoundation,跟踪最新动态

https://www.reddit.com/r/Tronix/




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/32399
 
776 次点击