zoukankan      html  css  js  c++  java
  • 区块链即服务平台(BaaS)各模块性能要求和组件列表

    写在最前

    本文是自己对如下资料进行阅读后进行的总结。如有不足和错误之处请及时指出。

    (1)《区块链即服务平台BaaS白皮书 V1.0》(来源:可信区块链推进计划区块链即服务平台BaaS项目组 )
    (2)《企业级区块链实战教程》https://learnblockchain.cn/books/enterprise/。该教程是基于Fabric进行讲解的。


    BaaS平台设计原则

    • 降低开发和使用成本
    • 快速部署
    • 方便易用
    • 高安全可靠
    • 灵活扩展
    • 可视运营

    BaaS平台框架

    BaaS平台分为2部分:区块链服务管理平台、区块链服务运行态。

    (图片来源:可信区块链推进计划区块链即服务平台BaaS项目组

    区块链服务管理平台

    • 区块链服务管理平台主要是对区块链网络启动前的资源、配置等进行管理,包括:
    • 资源管理:区块链运行硬件/云服务的管理。
    • 区块链管理:在搭建新区块链之前的相关区块链上的配置管理。
    • 平台管理:搭建区块链之前对区块链的账号、安全、日志、监控等的管理。

    区块链服务运行态

    • 区块链服务运行态是指对区块链启动之后,提供的服务进行配置管理,比如
    • 资源层:为区块链运行环境分配对应的资源,比如Mem、CPU、磁盘等
    • 区块链基础层:区块链系统
    • 业务层:提供智能合约接口和对应的钱包
    • 应用层:DApp应用层

    区块链服务管理平台核心模块

    • 硬件资源配置管理
    • 区块链部署配置管理:区块链整体运行参数,比如出块时间、出块大小、共识算法、P2P网络配置等。
    • 智能合约管理:权限配置,合约审核配置、合约事件订阅
    • 动态联盟管理配置:联盟成员的加入、退出管理,包括加入条件设置等
    • 区块链模块管理:对每一个需要设置初始运行参数的模块进行参数设置(设置默认参数)
    • 区块链监控:网络链接监控、硬件资源使用情况、告警配置
    • 区块链浏览器
    • 账号管理
    • 日志管理:用户日志、平台日志等
    • 系统监控
    • 计费管理 

    区块链基础层核心模块

    • 可插拔共识机制:PoWPoSDPoSPoARAFTPBFTABFTTendermintYACPoET(时间证明)
    • 高可用存储和多类型账本机制:链式存储、非链式存储(DAG
    • 多类型的交易模型:UTXO模型、账户模型
    • 多语言支持的智能合约引擎:EVMWASM
    • 安全隐私保护
      • 加密体系:ECDH(密钥协商算法)、ECDSA(数字签名算法)、国密(SM2/3/4
      • 身份认证和权限控制:基于CA/VPN的节点准入、数据访问、接口访问、交易日志访问、记账权、验证节点权限控制
      • 隐私保护:
        • 发送方隐私保护(环签名、群签名、分级证书机制、KSI
        • 接收方隐私保护(分层确定性钱包、隐私地址私钥管理机制)
        • 数据隐私保护(加盐加密处理、基于承诺的零知识证明、zkSNARKZcash应用)、同态加密、多方安全计算)
    • 跨云部署
    • 跨链交互
    • 基于预言机电链上、链下访问(引入验证机构)
    • 分布式的身份管理(基于DIDPKI数字身份管理)
    • 分布式账本存储介质:(LevelDB(对服务端应用支持不友好)、pingcap/tidb、基于PBFT协议的分布式数据库)
    • 网络传播机制:P2P、局域网穿透技术NAT方案、非结构化P2P网络、结构化P2P网络(以太坊使用分布式哈希表DHT
    • 多底层链支撑:Fabric、Coda、Quorum等

    BaaS的落地应用

    • 供应链金融
    • 版权确权
    • 积分兑换
    • 产品溯源
    • 游戏

    常用的企业级联盟链系统

    参考:https://blog.csdn.net/starzhou/article/details/103041911

     目前比较成熟的阿里BaaS平台支持了3种底层链:蚂蚁区块链、Fabric和Quorum。其中Qurum可以适用,因此可以去阿里BaaS云平台上了解

    区块链平台

    网络层

    共识引擎

    智能合约沙箱

    智能合约语言

    数据模型

    状态数据库

    Hyperledger Burrow

    Tendermint

    EVM

    Solidity

    基于账户

    LevelDB

    Quorum

    Go-ethereum

    P2P/HTTPS

    Raft/PBFT

    EVM

    Solidity

    基于账户

    LevelDB

    FISCO BCOS

    Cpp-ethereum

    P2P/HTTPS

    Raft/PBFT

    EVM

    Solidity

    基于账户

    LevelDB / MySQL

    Hyperledger Fabric

    Grpc-based

    Gossip

    Solo/kafka

    Docker

    Go / Node.js / Java

    基于账户

    LevelDB / CacheDB

    Corda

    AMQP1.0

    notary

    JVM

    Java

    UTXO

    常用关系型数据库

    Chain Core

    Gossip

    Federated Consensus

    Ivy

    CVM

    UTXO

    PostgreSQL / RocksDB

    企业级区块链编程注意事项

    • 确定性:代码可重放,固定输入得到固定输出
    • 可终止:程序有一个最终台,有退出机制,而不是无线运行。同时占用的CPU、RAM、ROM等都有一定的限制,而不是无限的
    • 代码隔离:在区块链上,代码隔离主要是不同交易、合约状态、账号信息方面的隔离。比如智能合约的执行最好是在沙盒环境下执行,比如EVM、Docker、WASM等虚拟机环境下
    作者:水中墨色
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    封装( 增删改 查 )类
    php注释规范
    php访问mysql数据库
    php 文件限速下载代码
    jQuery鼠标事件汇总
    权限管理
    文件管理 打开-返回上级
    文件操作
    简单的文件上传
    ajax XML
  • 原文地址:https://www.cnblogs.com/veraland/p/13329954.html
Copyright © 2011-2022 走看看