Skip to content

tuminfei/AntChainBridgePluginSDK

 
 

Repository files navigation

am logo

AntChain Bridge Plugin SDK

pull requests welcome badge Language GitHub contributors License

介绍

AntChain Bridge将跨链互操作解释为两个层次:通信和可信,即跨链的目标在于实现区块链实体之间的可信通信。

在AntChain Bridge的架构中,中继需要与区块链进行交互,而异构链的通信协议各式各样,无法统一适配,因此AntChain Bridge抽象出了区块链桥接组件(Blockchain Bridge Component, BBC),来解决区块链和跨链网络的通信问题。

每种异构链要接入AntChain Bridge跨链网络,都需要实现一套标准的区块链桥接组件,可以分为链上和链下两部分,包括链下插件系统合约。链下插件需要基于SDK完成开发,链上部分则通常是智能合约,要求实现特定的接口和逻辑,为降低开发难度,我们提供了Solidity版本的实现

AntChain Bridge为开发者提供了SDK、手册和系统合约模板,来帮助开发者完成插件和合约的开发。同时,AntChain Bridge提供了插件服务(PluginServer)来运行插件,插件服务是一个独立的服务,具备插件管理和响应中继请求的功能。

在当前的工程实现中,BBC链下部分是以插件的形式实现的。AntChain Bridge实现了一套SDK,通过实现SDK中规定的接口(SPI),经过简单的编译,即可生成插件包。插件服务(PluginServer, PS)可以加载BBC链下插件,详情可以参考插件服务的介绍文档

以下介绍了插件的一个集成架构:

插件SDK共有四个部分,包括:

  • antchain-bridge-commons:包含很多工具方法和数据结构,帮助BBC实现快速开发;

  • antchain-bridge-plugin-lib:BBC插件化的依赖库,给出一个注解@BBCService,帮助插件开发者可以快速完成插件构建;

  • antchain-bridge-plugin-manager:插件的管理库,提供插件的加载、生命周期管理等能力,插件服务依赖于这个库;

  • antchain-bridge-spi:主要包含了接口IBBCService,描述了一个BBC实现类应该有的功能,开发者只要依次实现接口即可,详细接口介绍请

构建

*在开始之前,请您确保安装了maven和JDK,这里推荐使用openjdk-1.8版本

在项目根目录下面的scripts路径下,运行脚本完成编译和打包:

./package.sh 

可以在scripts下,看到一个压缩包:antchain-bridge-sdk.tar.gz

安装

本地安装

解压上一步产生的压缩包antchain-bridge-sdk.tar.gz,或者在release页面找到适合的版本并下载到本地,解压之后,在根目录下,运行脚本完成SDK的安装:

./install_sdk.sh

提示信息如下,代表安装完成:

    ___            __   ______ __            _           ____         _      __
   /   |   ____   / /_ / ____// /_   ____ _ (_)____     / __ ) _____ (_)____/ /____ _ ___
  / /| |  / __ \ / __// /    / __ \ / __ `// // __ \   / __  |/ ___// // __  // __ `// _ \
 / ___ | / / / // /_ / /___ / / / // /_/ // // / / /  / /_/ // /   / // /_/ // /_/ //  __/
/_/  |_|/_/ /_/ \__/ \____//_/ /_/ \__,_//_//_/ /_/  /_____//_/   /_/ \__,_/ \__, / \___/
                                                                            /____/        

[ INFO ]_[ 2023-06-14 14:23:47.168 ] : successful to install antchain-bridge-commons-0.1.1.jar
[ INFO ]_[ 2023-06-14 14:23:49.168 ] : successful to install antchain-bridge-spi-0.1.1.jar
[ INFO ]_[ 2023-06-14 14:23:50.168 ] : successful to install antchain-bridge-plugin-lib-0.1.1.jar
[ INFO ]_[ 2023-06-14 14:23:52.168 ] : successful to install antchain-bridge-plugin-manager-0.1.1.jar
[ INFO ]_[ 2023-06-14 14:23:52.168 ] : success

这样,SDK的Jar包就被安装在本地了。

然后,可以通过在maven的pom.xml配置依赖就可以了,比如下面一段配置,${antchain-bridge.sdk.version}为当前仓库的版本号,可以在print.shSDK_VERSION中看到。

<dependency>
    <groupId>com.alipay.antchain.bridge</groupId>
    <artifactId>antchain-bridge-plugin-lib</artifactId>
    <version>${antchain-bridge.sdk.version}</version>
</dependency>
<dependency>
    <groupId>com.alipay.antchain.bridge</groupId>
    <artifactId>antchain-bridge-plugin-manager</artifactId>
    <version>${antchain-bridge.sdk.version}</version>
</dependency>
<dependency>
    <groupId>com.alipay.antchain.bridge</groupId>
    <artifactId>antchain-bridge-spi</artifactId>
    <version>${antchain-bridge.sdk.version}</version>
</dependency>
<dependency>
    <groupId>com.alipay.antchain.bridge</groupId>
    <artifactId>antchain-bridge-commons</artifactId>
    <version>${antchain-bridge.sdk.version}</version>
</dependency>

通过GitHub Package安装

参考这里配置您的maven,在setting.xml中配置上您的GitHub账号和Token。

在您的项目pom.xml中,配置上我们的repository:

<repositories>
    <repository>
        <id>github</id>
        <url>https://maven.pkg.github.com/AntChainOpenLab/*</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

这样您就可以导入上面的dependency来使用SDK。

快速开始

Testchain

Testchain是一个用于讲解如何开发BBC插件的demo工程,结合AntChain Bridge的文档,可以更好地理解BBC的开发过程。

详细的开发教程请参考本仓库的Wiki

以太坊

基于SDK,我们开发了一个打通以太坊的BBC插件

进入以太坊插件的路径下,可以看到以下文件:

# tree -L 4 .        
.
├── offchain-plugin
│   ├── README.md
│   ├── pom.xml
│   └── src
└── onchain-plugin
    ├── README.md
    └── solidity
        ├── scenarios
        │   └── nft_crosschain
        └── sys
            ├── AppContract.sol
            ├── AuthMsg.sol
            ├── SDPMsg.sol
            ├── interfaces
            └── lib
  • offchain-plugin工程下面,我们基于Web3j,实现了以太坊的BBC插件的链下部分;
  • onchain-plugin工程下面,主要分为两部分:
    • sys:包含以太坊的BBC链上部分,实现了AM、SDP等逻辑。
    • scenarios:本路径下的nft_crosschain中,我们实现了一套跨链桥方案,用于ERC1155资产的跨链。

详细操作请

社区治理

AntChain Bridge 欢迎您以任何形式参与社区建设。

您可以通过以下方式参与社区讨论

  • 钉钉

scan dingding

  • 邮件

发送邮件到antchainbridge@service.alipay.com

License

详情参考LICENSE

About

AntChainBridge 插件SDK和插件池

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 64.9%
  • Solidity 26.6%
  • C++ 7.2%
  • Shell 1.3%
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy