# repchain-tx-proxy-service **Repository Path**: linkel/repchain-tx-proxy-service ## Basic Information - **Project Name**: repchain-tx-proxy-service - **Description**: RepChain交易代理服务(repchain-tx-proxy-service),是一个基于NodeJS实现的Web服务,主要对外提供了RepChain的签名交易数据构建提交API,使用可配置的数字身份及非对称密钥数据,根据客户端提交的参数信息构建签名交易,并提交给RepChain区块链网络 - **Primary Language**: NodeJS - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-09-15 - **Last Updated**: 2024-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # repchain-tx-proxy-service #### 介绍 RepChain交易构建及提交代理服务(repchain-tx-proxy-service),是一个基于NodeJS实现的Web服务,主要对外提供了RepChain的签名交易数据构建提交API,使用可配置的数字身份及非对称密钥数据,根据客户端提交的参数信息构建签名交易,并提交给RepChain区块链网络。 适用于: - 不需要应用用户在区块链网络中注册并使用身份的业务应用场景 - 不方便使用RepChain SDK开发相应功能的开发场景 #### 软件架构 ![软件工作架构](docs/working-struct.png) 交易请求客户端一般代表了某个需使用RepChain区块链的业务应用,其某部分业务逻辑已在智能合约中实现,且该智能合约已被部署于RepChain区块链网络中。 业务应用可调用repchain-tx-proxy-service提供的API接口,其具体描述参考[API](#api),其概述如下: 1. POST /transactions : 向RepChain区块链网络提交签名交易,以部署指定智能合约,调用指定智能合约方法或更改指定智能合约有效性状态,若提交成功将返回含交易唯一标识的结果信息; 2. GET /transactions/:id : 在已知交易id的情况下查询该交易的确认状态(是否已上链)。 > Note: 默认15分钟后仍未上链则该交易彻底失败 #### 安装教程 安装依赖 1. 安装node: 推荐使用[nvm](https://github.com/nvm-sh/nvm#install--update-script) 安装及管理node 2. 安装yarn: ```bash npm i -g yarn ``` 3. 安装git 安装本项目程序 1. clone本项目到本地: ```bash git clone https://gitee.com/linkel/repchain-tx-proxy-service.git ``` 2. 到项目根目录下,安装npm包: ```bash yarn install ``` #### 使用说明 ##### 运行 完成上述安装流程后 1. 编译es6源码为可直接由node运行的代码 ```bash yarn build ``` 上述命令将在项目根目录下新建目录`dist`以存储编译后的代码 2. 根据实际需求对配置文件[config/default.js](config/default.js)进行修改 3. 运行服务程序 ```yarn yarn start ``` > 建议: 在实际生产环境中,最好使用NodeJS程序管理工具(e.g. [forever](https://github.com/foreversd/forever) , [pm2](https://pm2.keymetrics.io/) )来运行服务程序 ##### API 本服务程序主要提供了下列API: | Method | Path | Description | Request | Response | | ---- | ---- | ---- | ---- | ---- | | POST | /transactions | 请求代理创建及提交签名交易 | application/json | application/json | | GET | /transactions/:id | 查询交易的确认状态 | | application/json | | GET | /repchain/{RepChain's Rest API} | 代理访问RepChain节点的Rest API,如/repchain/chaininfo及/repchain/block/1等 | 参考RepChain的相应Rest API | 参考RepChain的相应Rest API | | POST | /repchain/{RepChain's Rest API} | 代理访问RepChain节点的Rest API ,如/repchain/transaction/postTranByString等| 参考RepChain的相应Rest API | 参考RepChain的相应Rest API | 默认配置将开启Swagger UI显示API文档,若没有更改配置,运行启动服务程序后,在浏览器中访问地址:http://localhost:5000/apiDocs , 即可访问查看详细API文档,在API文档中可查看各个接口的形式、请求参数类型、请求参数schema、请求参数示例example、返回信息类型、返回信息schema、返回信息示例example等,也可直接点击"Try it out"来测试性地调用相应API(默认请求参数为示例参数,也可自行更改请求参数)。 如下图所示: ![请求代理构建及提交交易](docs/Swagger-API-POST-TX-Request-schema.png) ![请求代理构建及提交交易](docs/Swagger-API-POST-TX-Response-schema.png) ![请求代理构建及提交交易](docs/Swagger-API-POST-TX.png) ![查询交易确认状态](docs/Swagger-API-GET-TX-Response-schema.png) ![查询交易确认状态](docs/Swagger-API-GET-TX.png) #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request