Bootstrap

11 蚂蚁链技术特性

概览

蚂蚁链通过引入P2P网络、共识算法、虚拟机、智能合约、密码学、数据存储等技术特性,构建一个稳定、高效、安全的图灵完备智能合约执行环境,提供账户的基本操作以及面向智能合约的功能调用。

区块结构

一个区块包含区块头和区块体,区块头包含多个关键属性,区块体包含两个列表,交易列表和回执列表

账户模型

蚂蚁链中世界状态是账户的集合。账户分为普通账户和合约账户。两者在数据结构上采用统一的模型。

交易处理流程

智能合约

特色

多语言:Solidity&wasm

安全性:合约扫描、静态预验证、越界检查

高性能:JIT/AOT技术

数据管理:数据合约虚拟机

开发套件:在线 Cloud IDE、离线 IDE ADS

合约生命周期

虚拟机

虚拟机负责执行智能合约完成业务逻辑然后更新区块链世界状态

网络传输与业务组网

P2P网络

  • 读写分离
  • 安全通信
  • 多地址
  • 支持域名

BTN网络

广域网区块链高速通信网络(Blockchain Transmission Network)

面向大规模去中心化通信场景的应用层消息路由网络

实现了多路实时路由、消息聚合传输、安全组播通信等,以可维护、可优化的网络接管区块链节点通信的中间链路,实现了传输层优化,使区块链节点之间的通信更加稳定、高效

  • 低延迟通讯
  • 低带宽消耗
  • 高吞吐量

动态子网

共识算法

联盟链共识算法

拜占庭容错(BFT)

BFT(Byzantine fault tolerance)类的算法(例如:PBFT,HotStuff)满足拜占庭容错类的要求,能够有效抵御共识网络中的主观恶意行为

故障容错(CFT)

CFT(Crash fault tolerance)算法(例如:Paxos,Raft)问问应用在传统分布式数据库环境下,用于主备数据库的数据一致性同步保证机制。

蚂蚁链共识算法

当前蚂蚁链系统中实现的共识算法主要有:MyBFT和MyTumbler。

适用场景
MyBFT

大规模集群

网络环境良好

高吞吐

MyTumbler

广域网

大规模集群

高延迟

网络不稳定

隐私保护技术

概述

蚂蚁链提供对区块链数据层面和计算层面的双重隐私保护,覆盖区块链交易全生命周期,应用低门槛,开发无入侵

交易全生命周期保护类别

交易全生命周期保护端到端流程

链原生数据存储

蚂蚁链针对区块链存储特有的持久化数据多版本及数据可验证要求,建立了链原生数据管理系统。

跨链互操作

概述

让区块链方言变成普通话

跨链需求简化为一个跨链信息交互模型:

链A信息经过共识确定,可以安全可信地流转到链B中,链B可以认证链A信息,并且按照约定执行后续的跨链逻辑。

技术要点

跨链消息可信认证

数据异构兼容

跨链事务安全设计

跨链数据连接服务

跨链数据连接服务ODATS(Open Data Access Trusted Service)实现同构及异构链之间的可信互通,助力企业之间可信协作,促进产业生态可信融合。

通过动作标准化的区块链UDAG全栈跨链协议,保证跨链交易的安全性、可扩展性及可靠性,打破区块链数据孤岛。

特性

开发的身份体系

权限管理

账本数据访问

合约消息推送

优势

异构兼容

互操作性强

高安全、高性能

便捷接入、高效协同

开发者工具

IDE集成开发环境

蚂蚁链具备一站式开箱即用的IDE集成开发环境,辅助开发者更好的完成合约开发,构建全面的智能合约生态

Cloud IDE

在线版本IDE

AntChain Studio

桌面版IDE

ChainStack

面向Dapp应用的全栈开发工具

总结

建数字时代的可信链接网络,促进产业协作和价值创造

  • 合约增强:支持solidity语言编写的合约及wasm虚拟机,具备多语言支持、高性能、高安全、精细的数据管理和一站式开箱即用的开发体验
  • 共识增强:实现自研MyBTF和MyTumble共识算法,具备更高的交易吞吐量,更低的交易确认时延,和不可回滚的交易确认能力
  • 网络增强:支持更高效的P2P网络模型,具备低延迟、低带宽消耗、高吞吐量的VTN网络;实现一个动态、灵活、立体的区块链节点互联网络
  • 存储增强:针对区块链存储特有的持久化数据多版本及数据可验证要求,建立链原生数据管理系统,提供对合约数据友好的操纵能力,存储规模可扩展,可伸缩,存储引擎高性能,低成本等特性,形成蚂蚁链原生数据管理特色
  • 应用增强:围绕应用构建,具备一站式开箱即用的IDE集成环境,提供对区块链数据层面和计算层面的双重隐私保护,实现同构及异构链之间的可信互通,助力区块链应用高质量落地。

蚂蚁链应用开发流程

传统Web应用开发框架vs蚂蚁链应用开发框架

传统Web应用开发:需要开发客户端程序、服务端程序两部分

蚂蚁链应用开发:需要开发客户端、服务端,智能合约三部分

蚂蚁链应用的开发方式

两种接入蚂蚁链的方式

1. 通过SDK与蚂蚁链进行交互

包括账户服务、查询服务、合约服务等操作。

2. 通过REST与秘钥进行交互

包括合约管理、账户管理、合约交易、存证交易、区块链查询等蚂蚁链常用交互功能,以及MYTF链下安全计算应用管理和应用执行操作功能。

两种应用开发场景

1. 通过Web应用(Client)集成SDK或REST直接与蚂蚁链交互

该方式让客户端直接访问区块链平台,去掉了中间的后端服务,更加透明,比较适合轻量级的合约调用、查询等操作。

2. 与传统Web应用开发相似,访问后端服务(Service),后端服务集成SDK或REST与蚂蚁链交互

该方式适合与传统业务系统相结合,在后端服务层实现一些比较重要的业务逻辑和计算任务。

蚂蚁链应用开发流程

智能合约开发并不是蚂蚁链应用开发的必要环节,需要根据实际业务场景选择是否进行智能合约的开发

联盟链多方参与的场景中,如何开发智能合约应用?

  1. 定义多方协议中,智能合约需要实现的逻辑和功能,实现智能合约
  2. 定义各参与方客户端或后端服务的业务逻辑,以及与智能合约交互的接口逻辑,并集成SDK实现
  3. 集成SDK的业务逻辑与智能合约交互逻辑,测试功能
  4. 多方参与的功能性集成测试

蚂蚁链chainstack开发工具

ChainStack对蚂蚁链内部业务的最佳实践进行挖掘和沉淀,形成蚂蚁链之上的区块链应用技术图谱。

一套智能合约框架

一套可复用的应用组件

一套完整的DApp应用工具链

蚂蚁链智能合约应用的开发工具

智能合约主要用于调用区块链

为提高基于蚂蚁链应用的开发效率,蚂蚁链提供了Cloud IDE智能合约开发工具和离线智能合约开发工具

Cloud IDE智能合约开发工具

  • 合约编辑与编译,展示编译结果字节码和接口说明(ABI)
  • 合约部署和调用;提供默认体验链环境和测试账户,用来部署和调用合约
  • 解析合约方法的返回值、事件日志等,辅助调试合约;保存合约到BaaS合约管理
基本框架

  • Cloud IDE是一个典型的去中心化区块链应用(DApp),可通过JavaScript SDK直接与区块链平台通信,进行合约部署和调用。

  • 通过IDE可以连接任何目标的蚂蚁链平台环境。

离线智能合约开发工具

通过简单命令完成合约编译、部署、发布,并支持单元测试框架,提高合约的开发、测试效率

蚂蚁链应用的开发SDK

SDK类别功能特性说明
Java功能最丰富,覆盖蚂蚁链的所有功能适合应用于后端服务层
C++功能丰富,与Java SDK类型比较适合与传统C++服务相结合
JavaScript覆盖基本的常用的API,支持Node.js和浏览器环境运行,不支持国密算法适合客户端Web应用集成

蚂蚁链开发者知识库

面向开发者的蚂蚁链技术栈教程和文档库,帮助开发者更好地充分利用蚂蚁链技术构建区块链应用

;