# bcos3_lite_js **Repository Path**: maoplus/bcos3_lite_js ## Basic Information - **Project Name**: bcos3_lite_js - **Description**: fisco bcos3.x js 轻量级实现 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-08-17 - **Last Updated**: 2023-08-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # bcos3_lite_js #### 介绍 fisco bcos3.x js 客户端 轻量级实现 * 支持智能合约的ABI编解码 * 实现面向FISCO BCOS 3.x交易的编解码 * 实现js侧的ECDSA签名,即私钥可以存在前端侧,由前端侧签名 #### 基本原理 当前版本主要是趟过编解码,hash,签名的坑,把数据结构和签名与节点打通。 **当前版本未实现直接通过网络去连接节点,后续迭代参见TodoList里的网络方案1,2** 已经实现的包括: * 不依赖bcos3的c-sdk,根据transaction的tars JCE定义,生成交易数据结构编解码的js文件 * 使用ethers.js库操作智能合约abi编解码 * 在[utils/tx_utils.js](utils/tx_utils.js)里实现交易数据的hash生成,签名,打包成rawTransaction * 经过编码签名的rawTransaction,则可以通过bcos-c-sdk (或java、python、go封装的sdk)里的[bcos_rpc_send_transaction](https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/sdk/c_sdk/api.html#bcos-rpc-get-transaction)接口, 发给节点,由代理调用链上合约。 * call接口[bcos_rpc_call](https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/sdk/c_sdk/api.html#bcos-rpc-call)无需签名,有ABI编码的方法调用input即可。 #### 目录结构 主要看[tests/test_raw_transaction.js](tests/test_raw_transaction.js)脚本,包含交易编解码和签名全流程 utils目录是最核心的几个方法库的实现。 #### 环境依赖 * 依赖nodejs环境 ``` node -v v14.17.3 ``` #### TodoList * 把核心功能库适配成浏览器、React Native等环境可运行的版本 * 调整项目工程结构,支持打包发布 * 实现一个简单的cli控制台,支持交互命令 * 实现有页面交互的前端APP体验,包括且不限于html,h5,ReactNative,uni-app等 * 网络方案1: 通过json-rpc/restful方式,将rawtransaction串发给代理服务,由代理服务上链 * 网络方案2: 参照[https://github.com/FISCO-BCOS/bcos-boostssl](https://github.com/FISCO-BCOS/bcos-boostssl),实现websocket连接节点 ![概要网络结构](./imgs/network.png)