Code Monkey home page Code Monkey logo

boat-x-framework's Introduction

BoAT-X Framework

IssueForksStarsGitHub ReleaseJoin the chat at https://gitter.im/BoAT-X/community

BoAT logo

This repository is archived

BoAT has sailed toward new continent at BoAT-ProjectTemplate with all navigation documents at BoAT-EdgeDocs.

This repository is archived.

Introduction

Welcome to the official implementation and documents of BoAT-X Framework!(中文版)

BoAT-X is a blockchain application framework for IoT, a big portion dedicated to a family of BoAT components where BoAT stands for Blockchain of AI Things and X is a placeholder for a set of middleware components, services and tools that enable IoT devices to access blockchain services. BoAT-X depicts the vision of a boat transferring trustworthy information from the IoT data source to a data lake.

  • BoAT-Engine is an embedded blockchain client or an IoT device wallet. It's an IoT-device-oriented lightweight blockchain client SDK written in C language. BoAT-Engine may work alone or together with the BoAT-Anchor.

  • BoAT-Anchor (in development) is an edge service or a blockchain gateway that works with other BoAT components to relays transactions between an IoT device and a blockchain network.

  • BoAT-Mast (in development) is a key management system or a blockchain DID service for the IoT. BoAT-Mast provides tools for managing the public keys of the devices. BoAT-Mast also verifies if the on-chain data originates from a registered IoT device.

Why BoAT-X Contributes to a Trustworthy Foundation for IoT Data

IoT or the Internet of Things has now been transformed into infrastructure for typical everyday life. Numerous IoT devices capture data via sensors, sending data to the servers and executing commands, such as a smart lock on a shared bike. The worldwide industries have matured in realization that data surely is valuable, provided that the data is truethful.

To be precise, it is the information extracted from the data that is valuable. If we review a typical use case of a commercial data producer (the one who collects the data yet isn’t solely responsible for analyzing the data and extracting the information), it becomes crystal clear that when data is shared with the consumer, a question gets raised about how that data producer can prove the data was captured from actual IoT devices, rather than something randomly generated in a computer. Hence, the main purpose of BoAT-X is to allow IoT devices to access the blockchain services and thus extend the IoT data lifecycle with a blockchain-based credible proof at the very edge closest to where the data is being captured.

Blockchain is a decentralized immutable ledger, which is conducive for multiple entities who don't naturally trust each other, to share data in a trusted way. Moreover, once the data is saved on the blockchain, that data becomes tamper-resistant thoughout its lifecycle. However, there is still a missing gap between how data saved on a blockchain can ensure conformity to the data captured by the IoT device.

IoT devices capture data and transport it to a database within a cloud IoT platform. Therefore, there are three possible anchor (attestation) points to generate a blockchain-based proof for the data: the cloud, the edge or the device.

If the cloud IoT platform generates the data credibility proof on the blockchain, the trusted anchor point is at the IoT platform. The IoT platform itself must be trusted (authority, reputation, etc.).

If the anchor point is the edge converging data from part of the IoT devices and relaying it to the cloud while generating the proof, the edge must be trusted.

If the IoT device generates the proof, the device is the trust anchor point.

It's much more difficult and expensive to tamper with each in-field device than infringing or tampering with the data in the cloud database. Thus, the closer the anchor point is to the data source, the higher trustworthiness the proof will become.

The BoAT-X family offers the essential components to establish a trust anchor point at the device side, closest to the data source. That's why BoAT-X’s productiveness with a blockchain contributes to the trustworthy foundation of IoT data.

What makes BoAT-X Different

Most blockchain or BaaS (Blockchain as a Service) variants deliver a node and/or client/wallet software. However, this software was designed for personal computers, cloud servers or smartphones and is usually written in high-level languages like Go, Java, JavaScript, Python, etc. Some require a cumbersome virtual machine or interpreter to execute, and some even have to download code dynamically at runtime. Meanwhile, IoT devices are not as powerful and typically run on an RTOS or lightweight Linux. Due to constrained resources, most IoT devices could only support native C language applications and thus can hardly access blockchain services.

BoAT-X Family implements the BoAT-Engine, a lightweight C-language multi-chain client supporting a number of wireless modules and chipsets, as well as the BoAT-Anchor for gateway relay and the BoAT-Mast for key management. It extends the blockchain capability from computers and cellphones onto IoT devices.

How BoAT-X Works

BoAT-X has two main operating methods.

The Direct Approach

Direct Approach

The direct approach is suitable for IoT devices capable of direct access to a blockchain node. The IoT device sends data to the IoT platform, and by calling BoAT-Engine API, sends the hash of the data to the blockchain. The data consumer later compares the on-chain hash to the hash of the data normally stored on the IoT platform to determine its data credibility. The consumer also requests BoAT-Mast to check if the data comes from a registered device.

The Indirect Approach

Indirect Approach

The indirect approach accomodates IoT devices that can not otherwise directly access the blockchain node, due to various possible reasons such as an IP whitelist restriction and unmatched cryptographic algorithm capability.

By calling BoAT-Engine APIs, the IoT device signs the data with the device's cryptographic key. It then send the signature to an intermediate edge gateway. The gateway which runs the BoAT-Anchor relays the signature (i.e. digital fingerprint) to the blockchain. It also requests BoAT-Mast to check if the data come from a registered device.

The data consumer could later verify the data stored on the IoT platform against the on-chain signature.

Code Directories

BoAT-Engine

<SDKRoot>
|
+---build           | Directory to store object and executable files
+---demo            | Demo application
+---docs            | API reference manual
+---vendor          | Special vendor dependency
|   \---common      |     Universal soft algorithms implementation
|   \---platform    |     Dependency of different platforms
+---include         | Header files for application to include
+---lib             | Lib files for application to link with
+---sdk             | SDK source
|   +---third-party |     Third party libraries
|   +---include     |     Header files for SDK internal use
|   +---protocol    |     Blockchain client protocol implementation
|   +---rlp         |     RLP encoder
|   +---utilities   |     Utility APIs
|   \---wallet      |     SDK entry API implementation
+---tests           | Test cases
\---tools           | Tools for generating C interface from contract ABI

NOTE: ./build and ./lib are created in building

BoAT-Anchor

Coming soon.

BoAT-Mast

Coming soon.

Release and Status

Releases

For a complete list of new features, please read Release Notes.

Project Status Reports

For project status updates, please visit BoAT Project Status Update Reports.

Supported Blockchains and IoT Modules

See Supported List for supported blockchains and IoT modules.

Documentation

Blockchain IoT Module Whitepaper

See BoAT Blockchain IoT Module Product White Paper.

Blockchain IoT Module Technology and Application

See BoAT Blockchain IoT Module Technology and Application.

Full Documents

For full documents, please visit BoAT documentation

FAQ

Coming soon.

Community

The BoAT-X Framework community can be found at:

Contribution

We are glad to have contributors out of the core team; contributions, including (but not limited to) style/bug fixes, implementation of features, proposals of schemes/algorithms, and thorough documentation, are welcomed. Please refer to our Contribution Guideline for more information.

Find development documentation at BoAT documentation.

Submit Pull Requests at Pull Requests

License

Apache License 2.0, see LICENSE.

Join us as a BoAT-Mariner and build a pioneering spirit on your IoT+Blockchain path

Open source by aitos.io

aitos.io

boat-x-framework's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boat-x-framework's Issues

User Manual description

Describe the bug
Compile and run point 4 of the Demo in the boat user manual ,“only to the Ethersquare Demo, search for "Set Recipient Address" and change it to the Address of any account other than 2A) generated by Ganache”,For a contract access, there should be no such restriction

document

The picture of the BoAT Overall Design document has Chinese

202104080413-TM Section 3.5.2 does not exist and needs to be hyperlinked instead

问题描述:在Windows下,SDK不支持在Cygwin以外的环境下编译。如果必须在Cygwin以外运行(例如以Windows为Build环境的交叉编译器),请参照3.5.2节对编译文件进行调整。
问题修改建议:这里“3.5.2节”请改成章节名称+超链接跳转的方式
问题路径:BoAT 用户手册/SDK编译/软件依赖

202104080348-TM Bilingual usage standard

问题描述:对于OpenCPU形态的蜂窝模组,BoAT IoT Framework库被IoT Application链接,形成具备区块链链接能力的物联网应用程序。
问题修改建议:同一句话里面出现了“IoT Application”和“物联网应用”。在研发资料文档规范中,说明并进行员工培训,确保中文文档中的英文表述,确定相关的原则,对同一个概念/对象,使用统一的表述。建议统一修改为:物联网应用。
问题路径:BoAT 用户手册/功能与架构/系统中的位置

make demo should stop when Python is not found

Describe the bug
Make demo reports boatconfig.h not found. Since Python is not found in the environment (named Python3 by default on Ubuntu), the make procedure should stop as soon as it gets the Python-not-found issue.

Screenshots and log
~/Documents/BoAT-X-Framework-master$ make demo
/bin/sh: 1: python: not found
generate header file boatconfig.h...
generate done.
mkdir -p /home/lian/Documents/BoAT-X-Framework-master/lib
mkdir -p /home/lian/Documents/BoAT-X-Framework-master/build
if [ -d "/home/lian/Documents/BoAT-X-Framework-master/sdk" ]; then
make -C /home/lian/Documents/BoAT-X-Framework-master/sdk all;
fi
make[1]: Entering directory '/home/lian/Documents/BoAT-X-Framework-master/sdk'
make -C utilities all
make[2]: Entering directory '/home/lian/Documents/BoAT-X-Framework-master/sdk/utilities'
cc -c -ffunction-sections -fdata-sections -I/home/lian/Documents/BoAT-X-Framework-master/include -I/home/lian/Documents/BoAT-X-Framework-master/sdk -I/home/lian/Documents/BoAT-X-Framework-master/sdk/include -I/home/lian/Documents/BoAT-X-Framework-master/sdk/platform -I/home/lian/Documents/BoAT-X-Framework-master/sdk/protocol -I/home/lian/Documents/BoAT-X-Framework-master/sdk/protocol/common/http2intf -I/home/lian/Documents/BoAT-X-Framework-master/sdk/protocol/common/web3intf -I/home/lian/Documents/BoAT-X-Framework-master/sdk/protocol/boathlfabric -I/home/lian/Documents/BoAT-X-Framework-master/sdk/protocol/boathlfabric/protos -I/home/lian/Documents/BoAT-X-Framework-master/sdk/protocol/boatethereum -I/home/lian/Documents/BoAT-X-Framework-master/sdk/protocol/boatplatone -I/home/lian/Documents/BoAT-X-Framework-master/sdk/protocol/boatfiscobcos -I/home/lian/Documents/BoAT-X-Framework-master/sdk/third-party/cJSON -I/home/lian/Documents/BoAT-X-Framework-master/sdk/third-party/nghttp2/include -I/home/lian/Documents/BoAT-X-Framework-master/sdk/third-party/protobuf-c/include -I/home/lian/Documents/BoAT-X-Framework-master/vendor/platform/include -I/home/lian/Documents/BoAT-X-Framework-master/vendor/platform/LINUX-X86-64/src/log -I/home/lian/Documents/BoAT-X-Framework-master/contract/generated -I/home/lian/Documents/BoAT-X-Framework-master/demo -I/home/lian/Documents/BoAT-X-Framework-master/tests -I/home/lian/Documents/BoAT-X-Framework-master/vendor/common/crypto/crypto_default -I/home/lian/Documents/BoAT-X-Framework-master/vendor/common/crypto/crypto_default/aes -I/home/lian/Documents/BoAT-X-Framework-master/vendor/common/crypto/keccak -I/home/lian/Documents/BoAT-X-Framework-master/vendor/common/storage -I/home/lian/Documents/BoAT-X-Framework-master/vendor/platform/LINUX-X86-64/port_crypto_default -std=c99 -Os -Wall boatutility.c -o /home/lian/Documents/BoAT-X-Framework-master/build/sdk/utilities/boatutility.o
In file included from /home/lian/Documents/BoAT-X-Framework-master/sdk/include/boatinternal.h:36,
from boatutility.c:23:
/home/lian/Documents/BoAT-X-Framework-master/vendor/platform/include/boatplatform_internal.h:27:10: fatal error: boatconfig.h: No such file or directory
27 | #include "boatconfig.h"
| ^~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:14: /home/lian/Documents/BoAT-X-Framework-master/build/sdk/utilities/boatutility.o] Error 1
make[2]: Leaving directory '/home/lian/Documents/BoAT-X-Framework-master/sdk/utilities'
make[1]: *** [Makefile:43: utilities] Error 2
make[1]: Leaving directory '/home/lian/Documents/BoAT-X-Framework-master/sdk'
make: *** [Makefile:190: boatwalletlib] Error 2

202104080412-TM (windows) The version information that has been tested needs to be added

问题描述:在Windows下,SDK不支持在Cygwin以外的环境下编译。如果必须在Cygwin以外运行(例如以Windows为Build环境的交叉编译器),请参照3.5.2节对编译文件进行调整。
问题修改建议:这里“Windows”有没有版本限制,建议细化一下。
问题路径:BoAT 用户手册/SDK编译/软件依赖

user guide Chapter citation error

问题路径:
BoAT 用户手册/合约C接口代码自动生成/
BoAT 用户手册/以linux为编译环境/
BoAT 用户手册/独立的交叉编译环境/
BoAT 用户手册/模组开发环境以gnu-make为编译工程/
BoAT 用户手册/模组开发环境采用非gnu-make编译工程/
BoAT 用户手册/其他调整/
BoAT 用户手册/编译中的常见问题/
BoAT 用户手册/调用合约接口/

description is repeated in "Use Windows as the compilation environment"

问题路径:BoAT 用户手册/交叉编译/以Windows为编译环境

“在Cygwin以外进行交叉编译时,仍然需要安装Cygwin”这句话在文字出现两次,而且下文标题为“安装Cygwin”,所以我认为下文中的这句话可以删除。这个问题存在于中文和英文版中。

how to build in the esp32 board

问题修改建议: 在readme或者文档中添加对应仓库和对应编译方式

比如用户想在Esp32的板子上移植Boat,是否有源码参考
建议在文档中或者Readme中添加对应的仓库链接,方便用户快速验证方案,快速落实到产品中
可以添加多个平台的编译方式,扩大自己的生态链,方便用户使用

202104080353-TM title change to be "BoAT IoT Framework SDK"

问题描述:SDK架构
问题修改建议:建议统一修改为:BoAT IoT Framework SDK架构。接下来我们可能还有其他SDK,要明确是哪一个的SDK。比如Mobile SDK\windows SDK\onboard SDK等;后面还有“SDK编译”“SDK代码结构”,两处标题也请统一修改一下
问题路径:BoAT 用户手册/功能与架构/SDK架构

Using word "port" rather than "transplant" in User Guide

In document BoAT_User_Guide_en:

## Function and architecture
BoAT IoT Framework is a C language blockchain client framework for cellular modules, which is easy to be transplanted to various modules and helps IoT applications based on cellular modules connect to the blockchain and realize data on-chain services.

Where "easy to be transplanted to" would be “easy to be ported to” for better understanding.

User guide add what package need installed on Centos and Ubuntu

问题路径:BoAT 用户手册/功能和架构/SDK代码结构

1.这个里面需要添加如何在Ubuntu下用apt装哪些包,因为不同的Ubuntu对应的curl这些版本都是不一样的,最好可以说明。
2.最好针对同样主流的系统Centos,进行安装说明,比如装哪些包,哪个版本

202104080423-TM The content in parentheses is only "WAS"

转换工具 用途
/tools/eth2c.py 根据以太坊Solidity的ABI,生成C调用代码
/tools/platone2c.py 根据PlatONE(WASM)的ABI,生成C调用代码

问题修改建议:这里“PlatONE(WASM)”为啥要使用括号,标点符号的使用建议也在研发文档规范中明确。括号是备注用的,建议修改为“ PlatONE 虚拟机WASM ”
问题路径:BoAT 用户手册/SDK编译/合约C接口代码自动生成

make error: implicit declaration of function explicit_bzero

download the latest source code,make all, then next errror:

memzero.c: In function 'memzero':
memzero.c:55:3: error: implicit declaration of function 'explicit_bzero' [-Werror=implicit-function-declaration]
55 | explicit_bzero(pnt, len);
| ^~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [Makefile:61: /mnt/myshare/boat2.0/build/vendor/common/crypto/crypto_default/memzero.o] Error 1

202104080400-TM Grammatical errors

上级目录 一级目录 二级目录 描述
     
  build   Directory to store object and executable files
  contract   Contract ABI and generated C interface file
  demo   Demo application
  docs   API reference manual
  hwdep   Hardware dependencies
    default A default pure software version for development
  include   Header files for application to include. Application #include "boatiotsdk.h" only.
  lib   Lib files for application to link with
  sdk   SDK source
    cJSON An open source JSON parser
    include Header files for SDK internal use
    protocol Blockchain client protocol implementation
    rlp RLP encoder
    rpc Remote procedure call wrapper
    utilities Utility APIs
    wallet SDK entry API implementation
  tests   Demo and tests
  tools   Tools for generating C interface from contract ABI

问题修改建议:“Directory to store object and executable files” “Contract ABI and generated C interface file”,这里有files和file。请问单复数是否需要保持一致。其他标红的单复数都看一下,确保严谨。
问题路径:BoAT 用户手册/功能与架构/SDK代码结构

Lack of reference library specification

When i use "make tests" command in cygwin,the branch is boatiotsdk_2_0-dev,the make failed and said that cannot find -lcheck.
And usermenu doesn't mention it.

Add API for retrieving SDK version information

Purpose
Add a version number for SDK to allow caller application to find out the version of the BoAT SDK.
In Addition to informative purpose, it's essential in case the APIs should differ between multiple versions.

Suggested Solution
Take libcurl as an example.

  1. Add some macros to define the version number in Major_Minor_Revision style, (possibly) in numeric and/or string format. A Major version change implies (high probability of) API changes. A Minor version change implies (low probability of) API changes. A Revision version change doesn't alter any API.
  2. Add an API to read the version. This allows the application dynamically reads the SDK version. It's necessary if the BoAT SDK is provided in a shared library.

Dose it possiable to achieve a unified private key format?

In the private key creates an abstract interface(BoatPort_keyCreate), the externally injected private keys come in a variety of formats, can we write a function, to convert these different private key formats into a unified format, and the implementation does not depend on any known cryptographic algorithms?

problem about text format

forget to type a line break
1、解除对curl的依赖 curl是一个linux下的通信协议库,在SDK中用于支持http/https通信。区块链节点通常采用http/https协议进行通信。

The support information should be after calling the example

问题路径:BoAT 用户手册/编程模型/创建和加载钱包

这段中出现的以下内容应该放在调用示例后面:
摩联科技免费向客户提供部分区块链协议的非独占的测试用节点服务,以便于客户在集成BoAT IoT Framework时验证和演示。请联系客服代表获得相关信息。

这些测试用节点仅供客户在开发演示中非独占使用。客户不得将其用于商业、公共服务、军事及其他涉及国家或商业秘密或可能带来重大社会影响的用途。

客户一旦使用这些测试节点,视为已知晓并认可:

摩联科技保留随时转移、关闭这些测试节点,或者清除节点数据等权利,且不承担在转移、关闭节点或清除数据等之前事先通知客户的义务。
摩联科技不承担客户使用测试节点服务时发生的直接或间接损失,无论这些损失是否与测试节点服务有关。
这些测试节点服务为非独占使用。任何传递给测试节点的信息,都有可能被第三方获得。

How the wallet is stored if terminal device don't support file systems

The wallet is stored in a file,
Once the terminal device don't support file systems, How the wallet is stored?

In this way, It can be stored in the flash.
I think we can modify the following functions:
BOAT_RESULT BoatReadFile( const BCHAR *fileName,
BUINT8 readBuf, BUINT32 readLen, void rsvd );

BOAT_RESULT BoatWriteFile( const BCHAR fileName,
BUINT8
writeBuf, BUINT32 writeLen, void* rsvd );

"boatiotsdk "is misspelled as "bootiotsdk"

位置:BoAT 用户手册/交叉编译/模组开发环境以GNU make为编译工程

首先将目录(以下例子中以bootiotsdk为目录名)复制到模组开发环境

这句话中将boatiotsdk拼写成了bootiotsdk

make demo failed on BoAT-X-v2.0.0

[Description]
make demo failed with error info:

In file included from boatutility.c:23:
In file included from /home/lian/Documents/BoAT-X-Framework-master/sdk/include/boatinternal.h:36:
/home/lian/Documents/BoAT-X-Framework-master/vendor/platform/include/boatplatform_internal.h:27:10: fatal error: 'boatConfig.h' file not found
#include "boatConfig.h"
^~~~~~~~~~~~~~
1 error generated.
make[2]: *** [Makefile:14: /home/lian/Documents/BoAT-X-Framework-master/build/sdk/utilities/boatutility.o] Error 1
make[2]: Leaving directory '/home/lian/Documents/BoAT-X-Framework-master/sdk/utilities'
make[1]: *** [Makefile:43: utilities] Error 2
make[1]: Leaving directory '/home/lian/Documents/BoAT-X-Framework-master/sdk'
make: *** [Makefile:190: boatwalletlib] Error 2

[Probability]
100%

[Environment]
BoAT-X-2.0.0
Ubuntu 20.04 + clang 10.0.0 + GNU Make 4.2.1

Function description in BoAT User Guide is hard to understand

In chapter "Function and architecture"
about the abstactive clause "which is easy to be ported to various modules and helps IoT applications based on cellular modules connect to the blockchain and realize data on-chain services"

it would be better "which is easy to be ported to various modules and helps IoT applications based on cellular modules connect to the blockchain and access data on-chain services"

202104080408-TM (Ubuntu)The version information that has been tested needs to be added

问题描述:在编译SDK和使用之前,需要确保这些软件已经安装。在Ubuntu下,使用apt install命令安装相应的包。在Cygwin下,使用Cygwin自带的Setup程序进行安装。
问题修改建议:这里“Ubuntu”有没有版本限制,我看Github上其他项目会区分Ubuntu14.04/Ubuntu16.04等,我们也建议细化一下。
问题路径:BoAT 用户手册/SDK编译/软件依赖

202104080339-TM SDK name clarification

问题描述:框架SDK向物联网应用提供的功能包括发起链上交易、智能合约C接口代码自动生成、调用智能合约、管理区块链密钥等。
问题修改建议:“框架SDK”建议改为“BoAT IoT Framework”,前面并没有出现SDK字样。
问题路径:BoAT 用户手册/功能与架构/

User guide add error code description

问题修改建议: 在文档中添加error code 说明

文档中列出所有运行中可能产生的error code,说明error的原因和理由,特别是针对系统问题还是网络问题 不同的错误返回。
方便用户遇到问题时可以通过文档查看

user guide V1.1

the meaning of this sentence is ambiguous.
SDK源码的保存路径中,自根目录起,各级目录名称应全部为英文字母、数字、下划线和减号组成,避免空格、中文以及加号、@、括号等特殊符号。

make error incompatible type for argument 2 of 'BoatSignature'

To Reproduce
pull the latest code, make error incompatible type for argument 2 of 'BoatSignature'

see next error log:
boatethereum.c:286:43: error: incompatible type for argument 2 of 'BoatSignature'
286 | tx_ptr->wallet_ptr->account_info.prikeyId,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
| |
| BoatWalletPriKeyId {aka struct TBoatWalletPriKeyId}

20210408001-TM BoAT IoT Framework translation

问题描述:BoAT IoT Framework是面向蜂窝模组的C语言区块链客户端框架
问题修改建议:“区块链客户端框架”建议改为“区块链应用框架客户端软件”
问题路径:BoAT 用户手册/功能与架构/

How to design a wallet structure compatible with EC,RSA, symmetric encryption?

on current design, the walletPrikeyType only contains EC private key types(SECP256R1,SECP256K1).

From the naming, different key has different name(Asymmetric encryption can be called a private key but Symmetric encryption can not, because it's encryption and decryption use the same secret key ).

From The used space, Elliptic curve private key in PKCS format maybe take up 200 bytes but RSA private key in PKCS format maybe takeup thousands of bytes.

Based on the above description, should seriously consider how the design the wallect structure can be well compatible with these several situations.

module list BoAT supported

Is there an updated list of cellular modules or IoT chipset platforms BoAT already supported and plan to support?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.