#界面 #分布式账本 #命令行界面

应用程序 pyra

Pyra是一个高级分布式账本开发接口,使用Rust编写,能够在Substrate、Polkadot等多个平台上运行

8个版本

0.0.8 2019年11月24日
0.0.6 2019年10月12日
0.0.2 2019年9月25日

#1314 in #界面

自定义许可

210KB
821

Pyra:为大众打造的分布式账本

Pyra logo

Build Status

不再有技术贵族。

开发下一个Web3.0所需的工具箱


Pyra是一个高级分布式账本命令行接口,使用Rust编写,旨在能够在Substrate上运行。正如Keras团队所说,“以最短的时间从想法到结果,是做好研究的关键。”

如果你需要一个分布式账本开发接口,可以使用Pyra:

  • 允许轻松快速地进行原型设计(通过用户友好性、模块化和可扩展性)
  • 支持后端逻辑、前端测试Web UI以及容器化云基础设施
  • 在本地/云环境中部署测试网,与其他分布式账本平台进行实战测试

使用方法

安装

Cargo

cargo install pyra

更新

cargo install --force pyra

创建分布式账本

目前,pyra只有一个平台Substrate来开始你的项目。更多平台即将推出...

pyra init

然后你需要输入名称以进行注册

选择平台后,pyra将

  • 将你的项目添加到项目注册表中
  • 创建一个以你的项目命名的文件夹
  • 获取开发分布式账本所需的包
  • 如果需要,设置WASM环境
  • 构建包以便运行(在某些平台上可能需要较长时间。)

使用以下命令导航到文件夹

cd the-name-of-your-project

the-name-of-your-project
├── the-name-of-your-project-frontend # substrate-frontend-template
├── the-name-of-your-project-node # substrate-node-template
└── the-name-of-your-project-polkadotjs-apps # polkadot-js/apps

前端

前端来自substrate-frontend-template

使用以下命令导航到项目文件夹内的文件夹

cd the-name-of-your-project-frontend

the-name-of-your-project-frontend
├── LICENSE
├── node_modules # Built with init command
├── package.json
├── public
├── README.md
├── src
└── yarn.lock

节点

节点来自substrate-node-template

使用以下命令导航到项目文件夹内的文件夹

cd the-name-of-your-project-node

the-name-of-your-project-node
├── azure-pipeline.yml
├── build.rs
├── Cargo.lock
├── Cargo.toml
├── LICENSE
├── README.md
├── runtime
├── scripts
├── src
└── target # Built with init command

polkadotjs-apps

polkadotjs-apps来自polkadot-js/apps

使用以下命令导航到项目文件夹内的文件夹

cd the-name-of-your-project-polkadot-js-apps

the-name-of-your-project-polkadotjs-apps
├── babel.config.js
├── BOUNTIES.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── deployment.extras.yml
├── deployment.template.yml
├── Dockerfile
├── gh-pages-refresh.sh
├── i18next-scanner.config.js
├── jest.config.js
├── lerna.json
├── LICENSE
├── node_modules # Built with init command
├── package.json
├── packages
├── postcss.config.js
├── README.md
├── scripts
├── test
├── tsconfig.eslint.json
├── tsconfig.json
├── types.json
└── yarn.lock

轻松管理你的项目

你现在可以使用命令打开你的当前工作

pyra open

你也可以使用命令设置每个项目使用的编辑器

pyra seteditor

如果你想删除项目,运行

pyra remove

您可以使用清单功能删除多个项目。

选择项目后,Pyra 将删除该项目。

构建您的节点

在您完成 substrate 运行时的工作后,运行命令

pyra build --target runtime-or-node(默认选项是 node)

然后 Pyra 将询问要构建运行时或节点的项目

然后它将在项目目录中执行 cargo build

运行您的节点

要运行您的节点,请运行命令

pyra run

然后 Pyra 将询问要运行节点二进制文件的项目

选择项目后,Pyra 将通知在不需要时终止节点守护进程的 pid。

与节点交互

即将推出...前端反应脚本存在错误

要打开前端以与运行中的节点守护进程交互,请运行命令

pyra interact --ui template-or-apps

然后 Pyra 将询问要运行前端应用程序的项目

选择项目后,Pyra 将在前端目录中运行 yarn startyarn build,然后在项目目录中启动 http 服务器以托管构建的二进制文件,并打开与运行地址对应的网页浏览器(例如 localhost:3000localhost:8000)。

将节点部署到本地/云环境

即将推出...需要确定要关注的云平台

要将节点部署到本地/云环境,请运行命令

pyra deploy --env docker-or-cloud

选择 docker 将运行 docker-compose 命令,但云将提供选择。选择平台后,它将从单独的包中获取 terraform 脚本或 kubernetes 配置并运行它。

发布您的节点/运行时模块

即将推出...parachaintracker 处于开发阶段

使用命令发布您的节点/运行时模块

pyra publish --target runtime-or-node

然后 Pyra 将询问要发布的项目

选择项目后,Pyra 将将初始化时创建的 package.json 中保存的项目数据提交到托管网站。

使用的堆栈

  • Rust
  • clap
  • indicatif
  • colored
  • Cargo
  • yarn
  • Jest: 即将推出
  • terraform 即将推出
  • docker 即将推出
  • kubernetes 即将推出

路线图

  • 管理项目

    • 初始化项目
    • 添加现有项目
    • 设置编辑器以在每个项目中工作
    • 从注册表中删除项目并删除文件
  • 将命令映射到操作

    • Parity Substrate
    • Cumulus
    • Edgeware(StraightEdge)
    • Subsocial
    • Kilt
    • SpeckleOS
    • Hyperledger
  • 部署基础设施

    • Docker
      • Microsoft Azure
      • Google cloud
      • Amazon Web Service
      • Digital Ocean
  • 项目重新初始化的 package.json

    • 模块(运行时)
    • 前端
    • 应用程序

平台支持

Parity Technologies,Web3 基金会

有关更多平台支持,请提交问题或联系 [email protected]

问题

为什么我创建了此项目?

当我尝试在 Parity substrate 运行时模块上开发某些内容时,我必须转到运行时模块目录,运行 cargo build,然后回到项目根目录,并在 target 目录中查找 wasm 文件。将这些操作放入 CLI 命令中

cd substrate-node-template
cd runtime
cargo build # and wait for 5 mins
cd ..
cd ..
cd target
cd release
... and it goes on and on...

命令实在是太多了 🐨。想象一下,当有人需要在本地/云端环境中部署账本时。期望有更多的Docker命令,还有一大堆命令供站点可靠性工程师处理。那么,大众何时才能接触到分布式系统呢?领域中的每个区块链都拥有他们无法处理的底层技术;Docker、Kubernetes、Terraform、Prometheus、Grafana……名单还在不断延长。
最终,我制作了一个工具,只需一个命令就能完成这些操作。

为什么是pyra……?

我想让名字简单,我尝试使用sup(substrate-up),但其他框架也在出现(例如subsocial、kilt等),substrate-up仅限于Parity substrate。然后我发现pyra,从pyra+mid开始,开始用它来称呼这个项目。

鸣谢

Projectman by Saurabh Daware。这个项目始于他的卓越想法和项目的Rust 移植
Polkadot-deployer by Federico Gimenez,作为部署参考。
Substrate templates by Substrate developer hub。Pyra运行在他们构建的技术之上。Polkadot-js-apps by polkadot-js团队,为与节点交互提供了一种傻瓜式解决方案。

支持

目前该项目由Hyungsuk Kang独立开发和维护。

要为此项目做出贡献

  • 在问题中报告错误和改进请求
  • 为构建区块链平台开发接口的通用命令编写文档
  • platform文件夹中为您的区块链平台编写命令,并将其作为PR提交
  • 使用此软件
  • 赞助此项目

欢迎合作,请在此处

依赖项

~10–22MB
~322K SLoC