diff --git a/.github/workflows/install_acbsdk.sh b/.github/workflows/install_acbsdk.sh
index 60dbdae..168d527 100644
--- a/.github/workflows/install_acbsdk.sh
+++ b/.github/workflows/install_acbsdk.sh
@@ -18,26 +18,8 @@
CURR_DIR="$(cd `dirname $0`; pwd)"
-echo "install BID SDK ..."
-git clone -b release/1.0.0 https://github.com/caict-4iot-dev/BID-SDK-JAVA.git
-cd BID-SDK-JAVA/BID-SDK
-mvn install -Dmaven.test.skip=true
-cd -
-git clone -b release/1.0.2 https://github.com/caict-4iot-dev/BIF-Core-SDK.git
-cd BIF-Core-SDK/bif-chain-sdk
-mvn install -Dmaven.test.skip=true
-cd -
-echo "install BID SDK finished"
-
echo "install ACB SDK ..."
-git clone -b feat/bcdns_support https://github.com/AntChainOpenLabs/AntChainBridgePluginSDK.git
-cd AntChainBridgePluginSDK/antchain-bridge-commons
-mvn install -Dmaven.test.skip=true
-cd -
-cd AntChainBridgePluginSDK/antchain-bridge-spi
-mvn install -Dmaven.test.skip=true
-cd -
-cd AntChainBridgePluginSDK/antchain-bridge-bcdns
+git clone -b dev/v0.2.0-SNAPSHOT https://github.com/AntChainOpenLabs/AntChainBridgePluginSDK.git
+cd AntChainBridgePluginSDK
mvn install -Dmaven.test.skip=true
-cd -
echo "install ACB SDK finished"
\ No newline at end of file
diff --git a/r-bootstrap/desc_tar.xml b/r-bootstrap/desc_tar.xml
index 450fcce..37a1eb5 100644
--- a/r-bootstrap/desc_tar.xml
+++ b/r-bootstrap/desc_tar.xml
@@ -27,6 +27,7 @@
${file.separator}config
application.yml
+ db${file.separator}ddl.sql
diff --git a/r-bootstrap/src/test/java/com/alipay/antchain/bridge/relayer/bootstrap/manager/BCDNSManagerTest.java b/r-bootstrap/src/test/java/com/alipay/antchain/bridge/relayer/bootstrap/manager/BCDNSManagerTest.java
index 2097de4..8f7328c 100644
--- a/r-bootstrap/src/test/java/com/alipay/antchain/bridge/relayer/bootstrap/manager/BCDNSManagerTest.java
+++ b/r-bootstrap/src/test/java/com/alipay/antchain/bridge/relayer/bootstrap/manager/BCDNSManagerTest.java
@@ -177,8 +177,8 @@ public void testQueryAndSaveDomainCertificateFromBCDNS() {
new QueryDomainNameCertificateResponse(true, antchainDotCommCert)
);
- AbstractCrossChainCertificate certificate = bcdnsManager.queryAndSaveDomainCertificateFromBCDNS(
- antChainDotComDomain, CrossChainDomain.ROOT_DOMAIN_SPACE
+ AbstractCrossChainCertificate certificate = bcdnsManager.queryDomainCertificateFromBCDNS(
+ antChainDotComDomain, CrossChainDomain.ROOT_DOMAIN_SPACE, true
);
Assert.assertNotNull(certificate);
Assert.assertEquals(
diff --git a/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/groovyshell/command/BCDNSManagerCmdNamespace.java b/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/groovyshell/command/BCDNSManagerCmdNamespace.java
index cc3fd97..1e81d4d 100644
--- a/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/groovyshell/command/BCDNSManagerCmdNamespace.java
+++ b/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/groovyshell/command/BCDNSManagerCmdNamespace.java
@@ -91,6 +91,12 @@ Object fetchDomainNameCertFromBCDNS(@ArgsConstraint(name = "domain") String doma
return queryAPI("fetchDomainNameCertFromBCDNS", domain, domainSpace);
}
+ Object queryDomainNameCertFromBCDNS(@ArgsConstraint(name = "domain") String domain,
+ @ArgsConstraint(name = "domainSpace") String domainSpace) {
+
+ return queryAPI("queryDomainNameCertFromBCDNS", domain, domainSpace);
+ }
+
Object registerDomainRouter(@ArgsConstraint(name = "domain") String domain) {
return queryAPI("registerDomainRouter", domain);
diff --git a/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/groovyshell/command/BlockchainManagerCmdNamespace.java b/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/groovyshell/command/BlockchainManagerCmdNamespace.java
index ee4b4fe..7be5dcf 100644
--- a/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/groovyshell/command/BlockchainManagerCmdNamespace.java
+++ b/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/groovyshell/command/BlockchainManagerCmdNamespace.java
@@ -42,7 +42,13 @@ Object getBlockchain(@ArgsConstraint(name = "product") String product,
return queryAPI("getBlockchain", product, blockchainId);
}
- Object addHeteroBlockchainAnchor(
+ Object getBlockchainContracts(@ArgsConstraint(name = "product") String product,
+ @ArgsConstraint(name = "blockchainId") String blockchainId) {
+
+ return queryAPI("getBlockchainContracts", product, blockchainId);
+ }
+
+ Object addBlockchainAnchor(
@ArgsConstraint(name = "product") String product,
@ArgsConstraint(name = "blockchainId") String blockchainId,
@ArgsConstraint(name = "domain") String domain,
@@ -53,7 +59,7 @@ Object addHeteroBlockchainAnchor(
) {
return queryAPI(
- "addHeteroBlockchainAnchor",
+ "addBlockchainAnchor",
product, blockchainId, domain, pluginServerId, alias, desc, heteroConfFilePath
);
}
diff --git a/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/shell/Shell.java b/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/shell/Shell.java
index b56466f..05fedb6 100644
--- a/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/shell/Shell.java
+++ b/r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/shell/Shell.java
@@ -37,23 +37,19 @@
public class Shell {
- private static String PROMPT = "\033[0;37mrelayer> \033[0m";
+ private static final String PROMPT = "\n\033[0;37mrelayer> \033[0m";
- private NamespaceManager namespaceManager;
-
- private Terminal terminal;
+ private final NamespaceManager namespaceManager;
private GlLineReader reader;
- private Map reservedWord = new HashMap<>();
-
- private AtomicBoolean loopRunning = new AtomicBoolean(false);
+ private final Map reservedWord = new HashMap<>();
- private ReentrantLock shellLock = new ReentrantLock();
+ private final AtomicBoolean loopRunning = new AtomicBoolean(false);
- private PromptCompleter completer;
+ private final ReentrantLock shellLock = new ReentrantLock();
- private ShellProvider shellProvider;
+ private final ShellProvider shellProvider;
public final static Runtime Runtime = new Runtime();
@@ -67,8 +63,7 @@ public Shell(ShellProvider shellProvider, PromptCompleter completer, GrpcClient
this.shellProvider = shellProvider;
this.namespaceManager = namespaceManager;
- this.completer = completer;
- this.reservedWord.keySet().forEach(reservedWord -> this.completer.addReservedWord(reservedWord));
+ this.reservedWord.keySet().forEach(completer::addReservedWord);
reader.setCompleter(completer);
@@ -78,6 +73,7 @@ public Shell(ShellProvider shellProvider, PromptCompleter completer, GrpcClient
void init() {
// init term
+ Terminal terminal;
try {
terminal = TerminalBuilder.builder()
.system(true)
diff --git a/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/bcdns/BCDNSManager.java b/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/bcdns/BCDNSManager.java
index 9180347..c8ec06c 100644
--- a/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/bcdns/BCDNSManager.java
+++ b/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/bcdns/BCDNSManager.java
@@ -467,7 +467,7 @@ public String applyDomainCertificate(String domainSpace, String domain, ObjectId
}
@Override
- public AbstractCrossChainCertificate queryAndSaveDomainCertificateFromBCDNS(String domain, String domainSpace) {
+ public AbstractCrossChainCertificate queryDomainCertificateFromBCDNS(String domain, String domainSpace, boolean saveOrNot) {
log.info("try to get domain cert of {} from BCDNS {}", domain, domainSpace);
try {
IBlockChainDomainNameService bcdnsService = getBCDNSService(domainSpace);
@@ -499,7 +499,9 @@ public AbstractCrossChainCertificate queryAndSaveDomainCertificateFromBCDNS(Stri
)
);
}
- blockchainRepository.saveDomainCert(new DomainCertWrapper(response.getCertificate()));
+ if (saveOrNot) {
+ blockchainRepository.saveDomainCert(new DomainCertWrapper(response.getCertificate()));
+ }
return response.getCertificate();
}
return null;
diff --git a/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/bcdns/IBCDNSManager.java b/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/bcdns/IBCDNSManager.java
index 58e1c92..16caef6 100644
--- a/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/bcdns/IBCDNSManager.java
+++ b/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/bcdns/IBCDNSManager.java
@@ -69,7 +69,7 @@ boolean validateCrossChainCertificate(
String applyDomainCertificate(String domainSpace, String domain, ObjectIdentity applicantOid, byte[] rawSubject);
- AbstractCrossChainCertificate queryAndSaveDomainCertificateFromBCDNS(String domain, String domainSpace);
+ AbstractCrossChainCertificate queryDomainCertificateFromBCDNS(String domain, String domainSpace, boolean saveOrNot);
List getAllApplyingDomainCertApplications();
diff --git a/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/blockchain/BlockchainManager.java b/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/blockchain/BlockchainManager.java
index 44cc59f..8caaf95 100644
--- a/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/blockchain/BlockchainManager.java
+++ b/r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/manager/blockchain/BlockchainManager.java
@@ -294,6 +294,9 @@ public void startBlockchainAnchor(String product, String blockchainId) {
}
blockchainMeta.getProperties().setAnchorRuntimeStatus(BlockchainStateEnum.RUNNING);
+ if (ObjectUtil.isNull(blockchainMeta.getProperties().getAmServiceStatus())) {
+ blockchainMeta.getProperties().setAmServiceStatus(OnChainServiceStatusEnum.INIT);
+ }
if (!updateBlockchainMeta(blockchainMeta)) {
throw new RuntimeException(
StrUtil.format(
diff --git a/r-server/src/main/java/com/alipay/antchain/bridge/relayer/server/admin/impl/BCDNSNamespace.java b/r-server/src/main/java/com/alipay/antchain/bridge/relayer/server/admin/impl/BCDNSNamespace.java
index dd9c993..6a59f07 100644
--- a/r-server/src/main/java/com/alipay/antchain/bridge/relayer/server/admin/impl/BCDNSNamespace.java
+++ b/r-server/src/main/java/com/alipay/antchain/bridge/relayer/server/admin/impl/BCDNSNamespace.java
@@ -64,6 +64,7 @@ public BCDNSNamespace() {
addCommand("applyDomainNameCert", this::applyDomainNameCert);
addCommand("queryDomainCertApplicationState", this::queryDomainCertApplicationState);
addCommand("fetchDomainNameCertFromBCDNS", this::fetchDomainNameCertFromBCDNS);
+ addCommand("queryDomainNameCertFromBCDNS", this::queryDomainNameCertFromBCDNS);
addCommand("registerDomainRouter", this::registerDomainRouter);
addCommand("queryDomainRouter", this::queryDomainRouter);
addCommand("addBlockchainTrustAnchor", this::addBlockchainTrustAnchor);
@@ -214,7 +215,7 @@ Object applyDomainNameCert(String... args) {
return "your receipt is " + receipt;
} catch (Throwable e) {
log.error("failed to apply domain cert from domain space [{}]", args[0], e);
- return "failed to restart BCDNS: " + e.getMessage();
+ return "failed to apply domain cert : " + e.getMessage();
}
}
@@ -235,11 +236,11 @@ Object queryDomainCertApplicationState(String... args) {
return "your application not finished: " + domainCertApplicationDO.getState().getCode();
} catch (Throwable e) {
log.error("failed to query domain cert from BCDNS with domain space [{}]", args[0], e);
- return "failed to restart BCDNS: " + e.getMessage();
+ return "failed to query domain cert: " + e.getMessage();
}
}
- Object fetchDomainNameCertFromBCDNS(String... args) {
+ Object queryDomainNameCertFromBCDNS(String... args) {
if (args.length != 2) {
return "wrong number of arguments";
}
@@ -248,7 +249,7 @@ Object fetchDomainNameCertFromBCDNS(String... args) {
String domainSpace = args[1];
try {
- AbstractCrossChainCertificate certificate = bcdnsManager.queryAndSaveDomainCertificateFromBCDNS(domain, domainSpace);
+ AbstractCrossChainCertificate certificate = bcdnsManager.queryDomainCertificateFromBCDNS(domain, domainSpace, false);
if (ObjectUtil.isNull(certificate)) {
return StrUtil.format("none cert found for domain {} on BCDNS {}", domain, domainSpace);
}
@@ -259,6 +260,26 @@ Object fetchDomainNameCertFromBCDNS(String... args) {
}
}
+ Object fetchDomainNameCertFromBCDNS(String... args) {
+ if (args.length != 2) {
+ return "wrong number of arguments";
+ }
+
+ String domain = args[0];
+ String domainSpace = args[1];
+
+ try {
+ AbstractCrossChainCertificate certificate = bcdnsManager.queryDomainCertificateFromBCDNS(domain, domainSpace, true);
+ if (ObjectUtil.isNull(certificate)) {
+ return StrUtil.format("none cert found for domain {} on BCDNS {}", domain, domainSpace);
+ }
+ return "the cert is : \n" + CrossChainCertificateUtil.formatCrossChainCertificateToPem(certificate);
+ } catch (Throwable e) {
+ log.error("failed to query from BCDNS:", e);
+ return "failed to query from BCDNS: " + ObjectUtil.defaultIfNull(e.getCause(), e).getMessage();
+ }
+ }
+
Object registerDomainRouter(String... args) {
if (args.length != 1) {
return "wrong number of arguments";
diff --git a/r-server/src/main/java/com/alipay/antchain/bridge/relayer/server/admin/impl/BlockchainNamespace.java b/r-server/src/main/java/com/alipay/antchain/bridge/relayer/server/admin/impl/BlockchainNamespace.java
index 9a8e6c9..4a7ab83 100644
--- a/r-server/src/main/java/com/alipay/antchain/bridge/relayer/server/admin/impl/BlockchainNamespace.java
+++ b/r-server/src/main/java/com/alipay/antchain/bridge/relayer/server/admin/impl/BlockchainNamespace.java
@@ -62,7 +62,8 @@ public class BlockchainNamespace extends AbstractNamespace {
public BlockchainNamespace() {
addCommand("getBlockchainIdByDomain", this::getBlockchainIdByDomain);
addCommand("getBlockchain", this::getBlockchain);
- addCommand("addHeteroBlockchainAnchor", this::addHeteroBlockchainAnchor);
+ addCommand("getBlockchainContracts", this::getBlockchainContracts);
+ addCommand("addBlockchainAnchor", this::addBlockchainAnchor);
addCommand("deployBBCContractsAsync", this::deployBBCContractsAsync);
addCommand("updateBlockchainAnchor", this::updateBlockchainAnchor);
addCommand("updateBlockchainProperty", this::updateBlockchainProperty);
@@ -107,7 +108,29 @@ Object getBlockchain(String... args) {
return JSONObject.toJSONString(blockchainMeta, SerializerFeature.PrettyFormat);
}
- Object addHeteroBlockchainAnchor(String... args) {
+ /**
+ * 查询区块链
+ *
+ * @return
+ */
+ Object getBlockchainContracts(String... args) {
+ String product = args[0];
+ String blockchainId = args[1];
+
+ BlockchainMeta blockchainMeta = blockchainManager.getBlockchainMeta(product, blockchainId);
+ if (blockchainMeta == null) {
+ return "blockchain not exist.";
+ }
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("state", ObjectUtil.defaultIfNull(blockchainMeta.getProperties().getAmServiceStatus(), ""));
+ jsonObject.put("am_contract", ObjectUtil.defaultIfEmpty(blockchainMeta.getProperties().getAmClientContractAddress(), "empty"));
+ jsonObject.put("sdp_contract", ObjectUtil.defaultIfEmpty(blockchainMeta.getProperties().getSdpMsgContractAddress(), "empty"));
+
+ return jsonObject.toJSONString();
+ }
+
+ Object addBlockchainAnchor(String... args) {
if (args.length != 7) {
return "wrong number of arguments";
}