Skip to content
This repository was archived by the owner on Jan 13, 2025. It is now read-only.

Commit a3772a9

Browse files
committed
[fix][*][v0.1.0]: not set the domains in CrossChainChannelNotExistException
- add new blkchain cmd getBlockchainHeights
1 parent e019411 commit a3772a9

5 files changed

Lines changed: 38 additions & 8 deletions

File tree

README.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ ACB Relayer将功能实现分为两部分,分别为通信和可信,目前ACB
3333

3434
## 编译
3535

36-
在项目根目录运行maven命令即可:
36+
*由于AntChainBridgePluginSDK没有发布到maven仓库,因此可以参考[文档](https://github.com/AntChainOpenLabs/AntChainBridgePluginSDK?tab=readme-ov-file#%E5%AE%89%E8%A3%85)本地安装,或者直接clone对应Relayer依赖版本的源码,版本可[](./pom.xml)的标签`<acb-sdk.version>`*
37+
38+
在Relayer项目根目录运行maven命令即可编译:
3739

3840
```
3941
mvn package -Dmaven.test.skip=true
@@ -91,13 +93,9 @@ docker run -itd --name redis-test -p 6379:6379 redis --requirepass 'YOUR_PWD' --
9193

9294
## 配置
9395

94-
### 数据库
95-
96-
在开始之前,需要初始化中继的数据库,这里提供一个[DDL](r-bootstrap/src/main/resources/db/ddl.sql),或者解压之后在路径`config/db/ddl.sql`找到,在MySQL执行即可生成数据库`relayer`
97-
9896
### TLS
9997

100-
这里初始化中继的TLS证书,会在`tls_certs`路径下生成`relayer.crt``relayer.key`
98+
首先,初始化中继的TLS证书,会在`tls_certs`路径下生成`relayer.crt``relayer.key`
10199

102100
```
103101
bin/init_tls_certs.sh

r-cli/src/main/java/com/alipay/antchain/bridge/relayer/cli/command/BlockchainManagerCommands.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,14 @@ Object getBlockchainContracts(
5656
return queryAPI("getBlockchainContracts", product, blockchainId);
5757
}
5858

59+
@ShellMethod(value = "Get the local blockchain heights where anchor service runs on")
60+
Object getBlockchainHeights(
61+
@ShellOption(help = "Product type for blockchain, e.g. mychain010") String product,
62+
@ShellOption(help = "Local blockchain ID") String blockchainId
63+
) {
64+
return queryAPI("getBlockchainHeights", product, blockchainId);
65+
}
66+
5967
@ShellMethod(value = "Add a specified blockchain configuration to start the anchor service")
6068
Object addBlockchainAnchor(
6169
@ShellOption(help = "Product type for blockchain, e.g. mychain010") String product,

r-core/src/main/java/com/alipay/antchain/bridge/relayer/core/types/exception/CrossChainChannelNotExistException.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@
2323
@Getter
2424
public class CrossChainChannelNotExistException extends AntChainBridgeRelayerException {
2525

26-
private String senderDomain;
26+
private final String senderDomain;
2727

28-
private String receiverDomain;
28+
private final String receiverDomain;
2929

3030
public CrossChainChannelNotExistException(String senderDomain, String receiverDomain, String message) {
3131
super(RelayerErrorCodeEnum.CORE_UNKNOWN_RELAYER_FOR_DEST_DOMAIN, message);
32+
this.senderDomain = senderDomain;
33+
this.receiverDomain = receiverDomain;
3234
}
3335
}

r-dal/src/main/java/com/alipay/antchain/bridge/relayer/dal/repository/impl/ScheduleRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,9 @@ public void batchUpdateBizDTTasks(List<BizDistributedTask> tasks) {
314314
}
315315

316316
public void markForDomainRouterQuery(String senderDomain, String receiverDomain) {
317+
if (!StrUtil.isAllNotEmpty(senderDomain, receiverDomain)) {
318+
throw new RuntimeException(StrUtil.format("empty sender domain {} or receiver domain {}", senderDomain, receiverDomain));
319+
}
317320
String uniqueKey = DomainRouterQueryMarkDTTask.generateDomainRouterQueryTaskUniqueKey(senderDomain, receiverDomain);
318321
log.info("try to start a mark task for domain router query: {} ", uniqueKey);
319322
if (hasMarkDTTask(MarkDTTaskTypeEnum.DOMAIN_ROUTER_QUERY, uniqueKey)) {

r-server/src/main/java/com/alipay/antchain/bridge/relayer/server/admin/impl/BlockchainNamespace.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.alipay.antchain.bridge.relayer.commons.model.BlockchainMeta;
3535
import com.alipay.antchain.bridge.relayer.core.manager.bcdns.IBCDNSManager;
3636
import com.alipay.antchain.bridge.relayer.core.manager.blockchain.IBlockchainManager;
37+
import com.alipay.antchain.bridge.relayer.core.types.blockchain.BlockchainAnchorProcess;
3738
import com.alipay.antchain.bridge.relayer.dal.repository.ISystemConfigRepository;
3839
import com.alipay.antchain.bridge.relayer.server.admin.AbstractNamespace;
3940
import lombok.extern.slf4j.Slf4j;
@@ -63,6 +64,7 @@ public BlockchainNamespace() {
6364
addCommand("getBlockchainIdByDomain", this::getBlockchainIdByDomain);
6465
addCommand("getBlockchain", this::getBlockchain);
6566
addCommand("getBlockchainContracts", this::getBlockchainContracts);
67+
addCommand("getBlockchainHeights", this::getBlockchainHeights);
6668
addCommand("addBlockchainAnchor", this::addBlockchainAnchor);
6769
addCommand("deployBBCContractsAsync", this::deployBBCContractsAsync);
6870
addCommand("updateBlockchainAnchor", this::updateBlockchainAnchor);
@@ -130,6 +132,23 @@ Object getBlockchainContracts(String... args) {
130132
return jsonObject.toJSONString();
131133
}
132134

135+
Object getBlockchainHeights(String... args) {
136+
String product = args[0];
137+
String blockchainId = args[1];
138+
139+
BlockchainMeta blockchainMeta = blockchainManager.getBlockchainMeta(product, blockchainId);
140+
if (blockchainMeta == null) {
141+
return "blockchain not exist.";
142+
}
143+
144+
BlockchainAnchorProcess anchorProcess = blockchainManager.getBlockchainAnchorProcess(product, blockchainId);
145+
if (ObjectUtil.isNull(anchorProcess)) {
146+
return "none heights found";
147+
}
148+
149+
return JSON.toJSONString(anchorProcess, SerializerFeature.PrettyFormat);
150+
}
151+
133152
Object addBlockchainAnchor(String... args) {
134153
if (args.length != 7) {
135154
return "wrong number of arguments";

0 commit comments

Comments
 (0)