图标评分开发测试套件
tbears的Python项目详细描述
图标评分开发套件(T-Bears)教程
本教程旨在介绍如何使用T-Bears。本指南将指导您完成设置开发环境和使用t-bears cli命令的基本步骤。
t-bears是一套用于score的开发工具。T-Bears为分数提供了一个项目模板,帮助您立即开始。您可以在模拟环境中本地编写和测试智能合约,准备好后,从命令行界面将分数部署到图标网络。
部件
图标rpc服务器
处理图标JSON-RPCAPI请求并将响应发送回客户端的模块。
图标服务
管理分数的生命周期及其执行的模块。分数的状态转换存储在数据库中。
T-Bears客户端
T-Bears命令行界面。支持以下功能:
- 管理T-Bears服务
- 部署分数
- 发送事务
- 发送查询请求
有关详细信息,请参见下面的"命令行接口(clis)"一章。
T-Bears块管理器
T-Bears服务的环链仿真器。它没有完全的"共识"和"同行管理"功能。此模块处理事务并模拟块生成。
消息队列
消息队列用于组件间通信。
快速启动
您可以使用Docker在机器上运行T-Bears。
下面的命令将下载T-Bears Docker图像并运行T-Bears Docker容器。
docker run -it -p 9000:9000 iconloop/tbears:mainnet
有关详细信息,请查看以下链接。t-bears docker
从源构建
首先,克隆这个项目。然后转到项目目录,创建一个virtualenv环境,并运行构建脚本。然后,您可以使用.whl文件安装t-bears。
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl
安装
本章将介绍如何在您的系统上安装T形轴承。
要求
图标评分的开发和执行需要以下环境:
操作系统:MacOS或Linux
- 不支持Windows。
巨蟒
- 为python 3.6.5+制作virtualenv(也支持3.7)
- 检查python版本
$ python3 -V
- IDE:推荐使用PyCharm。
软件
- 拉比MQ:3.7及以上。首页
库
<表><广告>在MacOS上设置
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears
在Linux上设置
# Install levelDB $ sudo apt-get install libleveldb1 libleveldb-dev # Install libSecp256k $ sudo apt-get install libsecp256k1-dev # install RabbitMQ and start service $ sudo apt-get install rabbitmq-server # Create a working directory $ mkdir work $ cd work # Setup the python virtualenv development environment $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears
如何使用T形轴承
命令行接口(clis)
概述
T-Bears提供超过20个命令。这是可用命令列表。
用法
usage: tbears [-h][-v]command ... tbears v1.2.1 arguments optional arguments: -h, --help show this help message and exit -v, --verbose Verbose mode Available commands: If you want to see help message of commands, use "tbears command -h"command start Start tbears service stop Stop tbears service deploy Deploy the SCORE clear Clear all SCOREs deployed on tbears service test Run the unittest in the SCORE init Initialize tbears project samples This command has been deprecated since v1.1.0 genconf Generate tbears config files. (tbears_server_config.json, tbears_cli_config.json and keystore_test1) console Get into tbears interactive mode by embedding IPython txresult Get transaction result by transaction hash transfer Transfer ICX coin. keystore Create a keystore file in the specified path keyinfo Show a keystore file information the specified path balance Get balance of given address in loop unit totalsupply Query total supply of ICX in loop unit scoreapi Get score's api using given score address txbyhash Get transaction by transaction hash lastblock Get last block's info blockbyhash Get block info using given block hash blockbyheight Get block info using given block height sendtx Request icx_sendTransaction with the specified json file and keystore file. If keystore file is not given, tbears sends request as it is in the json file. call Request icx_call with the specified json file.
选项
<表><广告>T-Bears服务器命令
管理T-Bears服务器的命令。有三个命令tbears start
,tbears stop
和tbears clear
t耳朵开始
说明
启动t-bears服务。每当t-bears服务启动时,它会从tbears_server_config.json
文件加载配置。如果要使用其他配置文件,可以使用-c
选项指定文件位置。
用法
usage: tbears start [-h][-a HOSTADDRESS][-p PORT][-c CONFIG] Start tbears service optional arguments: -h, --help show this help message and exit -a HOSTADDRESS, --address HOSTADDRESS Address to host on (default: 127.0.0.1) -p PORT, --port PORT Port to listen on (default: 9000) -c CONFIG, --config CONFIG tbears configuration file path (default: ./tbears_server_config.json)
选项
<表><广告>t耳朵停止
说明
停止所有跑步记录和T-Bears服务。
用法
usage: tbears stop [-h] Stop all running SCOREs and tbears service optional arguments: -h, --help show this help message and exit
选项
<表><广告>t清除耳朵
说明
清除部署在本地T-Bears服务上的所有分数。
用法
usage: tbears clear [-h] Clear all SCOREs deployed on local tbears service optional arguments: -h, --help show this help message and exit
选项
<表><广告>T-Bears实用程序命令
生成配置文件和密钥库文件的命令。
t耳朵钥匙库
说明
在给定路径中创建密钥库文件。使用secp256k1库生成私钥和公钥对。
用法
docker run -it -p 9000:9000 iconloop/tbears:mainnet
0
选项
<表><广告>示例
docker run -it -p 9000:9000 iconloop/tbears:mainnet
1
t耳朵按键信息
说明
在指定路径中显示密钥库信息(地址、私钥、公钥)。
用法
docker run -it -p 9000:9000 iconloop/tbears:mainnet
2
选项
<表><广告>示例
docker run -it -p 9000:9000 iconloop/tbears:mainnet
3
tbears genconf
说明
生成t-bears配置文件。("tbears_cli_config.json"、"tbears_server_config.json"、"keystore_test1")
docker run -it -p 9000:9000 iconloop/tbears:mainnet
4
选项
<表><广告>示例
docker run -it -p 9000:9000 iconloop/tbears:mainnet
5
T熊得分指令
这些命令与分数开发和执行相关。tbears init
生成分数项目。tbears deploy
,tbears sendtx
和tbears call
命令用于部署分数、发送事务和调用函数。
t耳朵初始化
说明
初始化分数开发环境。在<;project>;目录中生成<;project>;.py、package.json和测试代码。score类的名称为<;score class>;。也会生成默认配置文件,即启动t-bears时使用的"tbears_server_config.json"和部署score时使用的"tbears_cli_config.json"。
用法
docker run -it -p 9000:9000 iconloop/tbears:mainnet
6
选项
<表><广告>示例
docker run -it -p 9000:9000 iconloop/tbears:mainnet
7
文件说明
<表><广告>应指定"主模块"和"主类"。
ScoreClass
。t耳朵展开
说明
部署分数。您可以将其部署在本地T-Bears服务或图标网络上。
"tbears_cli_config.json"文件包含部署配置属性。(参见下面的"配置文件"章)。如果要使用其他配置文件,可以使用'-c'选项指定文件位置。
用法
docker run -it -p 9000:9000 iconloop/tbears:mainnet
8
选项
<表><广告>--模式{install,update}
更新分数时需要此参数。
每个网络都有唯一的id。如果网络id不匹配,节点将拒绝评分。当网络对公众开放时,将公布网络ID。
0x3保留给T-Bears服务。但是,T-Bears服务不验证网络ID。
示例
docker run -it -p 9000:9000 iconloop/tbears:mainnet
9
当配置文件中没有指定某些必需字段时,T-Bears可以代表发送方提供这些字段。 t-bears将使用以下规则生成有效的json请求。
<表><广告>步长限制
时间戳
t耳朵测试
说明
在项目中运行unittest。
用法
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl0
选项
<表><广告>示例
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl1
t耳朵发送x
说明
使用指定的JSON文件请求ICX发送事务。
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl2
strong>选项
<表><广告>示例
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl3
t-bears可以在json_文件
中未指定某些必需字段时代表发送方提供这些字段。
在上面的示例中,未指定stepLimit
和timestamp
字段,但T-Bears可以使用以下规则发出有效的JSON请求。
步长限制
时间戳
t接听电话
说明
使用指定的json文件请求icx调用。
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl4
选项
<表><广告>示例
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl5
tbears scoreapi
说明
获取给定分数提供的API列表。有关详细信息,请参阅icon json-rpc api v3的icx\u getscoreapi
。
用法
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl6
选项
<表><广告>示例
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl7
T-执行其他命令
与icx coin、transaction和block相关的命令。
t耳朵传输
说明
转让指定数量的ICX硬币。
用法
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl8
选项
<表><广告>示例
$ virtualenv -p python3 venv # Create a virtual environment. $ source venv/bin/activate # Enter the virtual environment.(venv)$ ./build.sh # run build script(venv)$ ls dist/ # check result wheel file tbears-x.y.z-py3-none-any.whl9
t耳朵平衡
说明
获取给定地址的余额。
用法
$ python3 -V0
选项
<表><广告>示例
$ python3 -V1
t总供给量
说明
查询ICX的总供应量。
用法
$ python3 -V2
选项
<表><广告>示例
$ python3 -V3
t清除txresult
说明
按事务哈希获取事务结果。
用法
$ python3 -V4
选项
<表><广告>示例
$ python3 -V5
清除txbyhash
说明
按事务哈希获取事务
用法
$ python3 -V6
选项
<表><广告>示例
$ python3 -V7
t耳朵最后一块
说明
查询最后一个块信息。在t-bears服务上运行时,"merkle_tree_root_hash"和"signature"将为空。
用法
$ python3 -V8
选项
<表><广告>示例
$ python3 -V9
t耳朵按高度阻塞
说明
使用给定的块高度获取块信息。
用法
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears0
选项
<表><广告>示例
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears1
tbears blockbyhash
说明
使用给定的块哈希获取块信息。
选项
<表><广告>用法
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears2
示例
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears3
t耳朵控制台
说明
使用ipython进入t-bears交互模式。(ipython.org)
用法
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears4
示例
在交互模式下,您可以通过预定义的ipython的magic命令以短格式(不带tbears
)执行命令。
tab将完成t-bears的命令或变量名。使用制表符< < /P>
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears5
在ipython中,您可以使用"\u"表达式访问以前的输出。
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears6
您可以使用第n个表达式访问第n个输出。
out
对象是将输入数字映射到其输出的字典。
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears7
通过在变量名前面加上"$",可以将变量值作为参数传递。
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears8
当传递列表或字典的成员时,应使用"{}"表达式。
# install develop tools $ brew install leveldb $ brew install autoconf automake libtool pkg-config # install RabbitMQ and start service $ brew install rabbitmq $ brew services start rabbitmq # Create a working directory $ mkdir work $ cd work # setup the python virtualenv development environment $ pip3 install virtualenv $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears9
在交互模式下,可以使用deployResults
命令列出T-Bears交互模式运行时已部署的分数。
# Install levelDB $ sudo apt-get install libleveldb1 libleveldb-dev # Install libSecp256k $ sudo apt-get install libsecp256k1-dev # install RabbitMQ and start service $ sudo apt-get install rabbitmq-server # Create a working directory $ mkdir work $ cd work # Setup the python virtualenv development environment $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears0
t-bears将t-bears命令执行结果分配给'u r'变量。
# Install levelDB $ sudo apt-get install libleveldb1 libleveldb-dev # Install libSecp256k $ sudo apt-get install libsecp256k1-dev # install RabbitMQ and start service $ sudo apt-get install rabbitmq-server # Create a working directory $ mkdir work $ cd work # Setup the python virtualenv development environment $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears1
配置文件
tbears_server_config.json
当启动T-Bears(t bears start
)时,tbears_server_config.json
用于配置参数和初始设置。
# Install levelDB $ sudo apt-get install libleveldb1 libleveldb-dev # Install libSecp256k $ sudo apt-get install libsecp256k1-dev # install RabbitMQ and start service $ sudo apt-get install rabbitmq-server # Create a working directory $ mkdir work $ cd work # Setup the python virtualenv development environment $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears2 <表><广告>
"调试"、"信息"、"警告"、"错误"
"文件":将输出记录到文件路径。
"控制台文件":将输出记录到控制台和文件。
"bytes":按最大字节旋转。
"period bytes":日志同时旋转到周期和字节。
例如每天、每周、每小时或每分钟
ex)(时段:每小时,间隔:24)=(时段:每天,间隔:1)
ex)10MB==10*1024*1024
(索引0)genesis:持有初始硬币的帐户。
(索引1)fee廑u treasury:收取交易费的帐户。
(索引2~):可以添加的测试帐户。
tbears_cliu config.json
对于除start
、stop
、clear
、init
和keystore
之外的每个T-Bears CLI命令,此文件用于配置默认参数和初始设置。
在此配置文件中,可以为某些cli命令定义默认选项值。例如,score的on_install()
或on_update()
方法在部署时调用。您可以设置如下所示的展开模式和
on_install()
或on_update()
的参数(scoresparams
)。
# Install levelDB $ sudo apt-get install libleveldb1 libleveldb-dev # Install libSecp256k $ sudo apt-get install libsecp256k1-dev # install RabbitMQ and start service $ sudo apt-get install rabbitmq-server # Create a working directory $ mkdir work $ cd work # Setup the python virtualenv development environment $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears3 <表><广告>
安装:新分数部署。
更新:更新先前部署的分数。
可选。此值将重写"from"值。如果没有给出,将使用"from"值。
在"安装"模式下,地址应为"cx0000~"。
可选。此值将重写"to"值。如果没有给出,将使用"to"值。
您可以在dict中定义命令选项。
您可以在dict中定义命令选项。
可以在配置文件中定义以下cli命令和选项。
<表><广告>平衡
总供给
scoreAPI
txbyhash
最后一个块
块哈希
块高度
调用
密钥库测试1
测试帐户的密钥库文件。此密钥库文件的密码是test1_account
。
您可以在tbears_server_config.json中找到测试帐户"test1",该测试帐户有足够的余额在本地环境中测试。
不要将任何ICX或令牌转移到"test1"帐户。
# Install levelDB $ sudo apt-get install libleveldb1 libleveldb-dev # Install libSecp256k $ sudo apt-get install libsecp256k1-dev # install RabbitMQ and start service $ sudo apt-get install rabbitmq-server # Create a working directory $ mkdir work $ cd work # Setup the python virtualenv development environment $ virtualenv -p python3 . $ source bin/activate # Install the ICON SCORE dev tools(work) $ pip install tbears4
参考文献
许可证
此项目遵循Apache2.0许可证。有关详细信息,请参阅许可证。