From 3eab7c451c9bf1b36eb05aafe51424de88d9d9c4 Mon Sep 17 00:00:00 2001 From: holt666 Date: Mon, 15 May 2023 15:39:03 +0800 Subject: [PATCH 1/6] upgrade netty version and refactor pom --- pom.xml | 59 ++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 2cf1c1d1..72e45284 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ package ${project.basedir}/dist - 4.1.90.Final + 4.1.92.Final 2.3.1 0.10.0-RELEASE 2.14.2 @@ -29,6 +29,25 @@ 5.2.0 1.2.1 2.20.0 + 3.12.0 + 4.4 + 1.15 + 2.11.0 + 1.5.0 + 31.1-jre + 8.0.0 + 4.10.0 + 3.24.2 + 22.10.4 + 1.72 + 1.72 + 4.4.0 + 22.2.0 + 1.6 + 4.0.1 + 1.4.2 + 1.17.1 + 1.1.9.1 **/*RandomXSyncTest.java,**/*SyncTest.java,**/*SnapshotJTest.java @@ -363,37 +382,37 @@ org.apache.commons commons-lang3 - 3.12.0 + ${commons-lang3.version} org.apache.commons commons-collections4 - 4.4 + ${commons-collections4.version} commons-codec commons-codec - 1.15 + ${commons-codec.version} commons-io commons-io - 2.11.0 + ${commons-io.version} commons-cli commons-cli - 1.5.0 + ${commons-cli.version} com.google.guava guava - 31.1-jre + ${guava.version} com.google.errorprone @@ -448,7 +467,7 @@ org.rocksdb rocksdbjni - 8.0.0 + ${rocksdbjni.version} @@ -536,7 +555,7 @@ com.squareup.okhttp3 okhttp - 4.10.0 + ${okhttp.version} annotations @@ -593,7 +612,7 @@ org.assertj assertj-core - 3.24.2 + ${assertj-core.version} test @@ -650,7 +669,7 @@ org.hyperledger.besu.internal crypto - 22.10.4 + ${crypto.version} bcprov-jdk15on @@ -690,19 +709,19 @@ org.bouncycastle bcprov-jdk18on - 1.72 + ${bcprov-jdk18on.version} org.bouncycastle bcpkix-jdk18on - 1.72 + ${bcpkix-jdk18on.version} io.vertx vertx-core - 4.4.0 + ${vertx-core.version} io.netty @@ -788,7 +807,7 @@ tech.pegasys.discovery discovery - 22.2.0 + ${discovery.version} log4j-api @@ -873,7 +892,7 @@ com.github.briandilley.jsonrpc4j jsonrpc4j - 1.6 + ${jsonrpc4j.version} slf4j-api @@ -901,7 +920,7 @@ com.sun.xml.ws jaxws-ri - 4.0.1 + ${jaxws-ri.version} pom @@ -916,21 +935,21 @@ com.typesafe config - 1.4.2 + ${config.version} org.agrona agrona - 1.17.1 + ${agrona.version} org.xerial.snappy snappy-java - 1.1.9.1 + ${snappy-java.version} From 686220be2969f17259478392aa686a63d77ca5ae Mon Sep 17 00:00:00 2001 From: holt666 Date: Mon, 15 May 2023 16:15:55 +0800 Subject: [PATCH 2/6] Hash2byte rename to hash2byte --- src/main/java/io/xdag/cli/Commands.java | 13 ++++++----- .../java/io/xdag/core/BlockchainImpl.java | 23 ++++++++----------- .../rpc/modules/xdag/XdagModuleChainBase.java | 8 +++---- src/main/java/io/xdag/utils/BasicUtils.java | 2 +- 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/main/java/io/xdag/cli/Commands.java b/src/main/java/io/xdag/cli/Commands.java index 223351d6..8d9542e9 100644 --- a/src/main/java/io/xdag/cli/Commands.java +++ b/src/main/java/io/xdag/cli/Commands.java @@ -39,7 +39,7 @@ import static io.xdag.core.XdagField.FieldType.XDAG_FIELD_OUT; import static io.xdag.core.XdagField.FieldType.XDAG_FIELD_OUTPUT; import static io.xdag.crypto.Keys.toBytesAddress; -import static io.xdag.utils.BasicUtils.Hash2byte; +import static io.xdag.utils.BasicUtils.hash2byte; import static io.xdag.utils.BasicUtils.address2Hash; import static io.xdag.utils.BasicUtils.compareAmountTo; import static io.xdag.utils.BasicUtils.getHash; @@ -486,7 +486,7 @@ public String printBlockInfo(Block block, boolean raw) { inputs = new StringBuilder(); for (Address input : block.getInputs()) { inputs.append(String.format(" input: %s %s%n", - input.getIsAddress() ? toBase58(Hash2byte(input.getAddress())) : hash2Address(input.getAddress()), + input.getIsAddress() ? toBase58(hash2byte(input.getAddress())) : hash2Address(input.getAddress()), input.getAmount().toDecimal(9, XUnit.XDAG).toPlainString() )); } @@ -496,7 +496,7 @@ public String printBlockInfo(Block block, boolean raw) { for (Address output : block.getOutputs()) { if (output.getType().equals(XDAG_FIELD_COINBASE)) continue; outputs.append(String.format(" output: %s %s%n", - output.getIsAddress() ? toBase58(Hash2byte(output.getAddress())) : hash2Address(output.getAddress()), + output.getIsAddress() ? toBase58(hash2byte(output.getAddress())) : hash2Address(output.getAddress()), output.getAmount().toDecimal(9, XUnit.XDAG).toPlainString() )); } @@ -609,7 +609,8 @@ public void stop() { public String listConnect() { Map map = kernel.getNodeMgr().getActiveNode(); StringBuilder stringBuilder = new StringBuilder(); - for (Node node : map.keySet()) { + for (Map.Entry entry : map.entrySet()) { + Node node = entry.getKey(); stringBuilder .append(node.getAddress()) .append(" ") @@ -702,8 +703,8 @@ public static String getBalanceMaxXfer(Kernel kernel){ public String address(Bytes32 wrap) { String ov = " OverView" + "\n" - + String.format(" address: %s", toBase58(Hash2byte(wrap.mutableCopy()))) + "\n" - + String.format(" balance: %s", kernel.getAddressStore().getBalanceByAddress(Hash2byte(wrap.mutableCopy())).toDecimal(9, XUnit.XDAG).toPlainString()) + "\n"; + + String.format(" address: %s", toBase58(hash2byte(wrap.mutableCopy()))) + "\n" + + String.format(" balance: %s", kernel.getAddressStore().getBalanceByAddress(hash2byte(wrap.mutableCopy())).toDecimal(9, XUnit.XDAG).toPlainString()) + "\n"; String txHisFormat = """ ----------------------------------------------------------------------------------------------------------------------------- diff --git a/src/main/java/io/xdag/core/BlockchainImpl.java b/src/main/java/io/xdag/core/BlockchainImpl.java index 2084dbc3..5e576ed2 100644 --- a/src/main/java/io/xdag/core/BlockchainImpl.java +++ b/src/main/java/io/xdag/core/BlockchainImpl.java @@ -45,7 +45,7 @@ import static io.xdag.core.XdagField.FieldType.XDAG_FIELD_INPUT; import static io.xdag.core.XdagField.FieldType.XDAG_FIELD_OUT; import static io.xdag.core.XdagField.FieldType.XDAG_FIELD_OUTPUT; -import static io.xdag.utils.BasicUtils.Hash2byte; +import static io.xdag.utils.BasicUtils.hash2byte; import static io.xdag.utils.BasicUtils.compareAmountTo; import static io.xdag.utils.BasicUtils.getDiffByHash; import static io.xdag.utils.BasicUtils.keyPair2Hash; @@ -308,8 +308,7 @@ public synchronized ImportResult tryToConnect(Block block) { * mainBlocks and linkBlocks are same as original */ // System.out.println(ref.getAddress().toHexString() + " isaddress ==" + ref.isAddress); - if(!ref.isAddress){ - if (ref != null) { + if(ref!= null && !ref.isAddress){ if(ref.getType() == XDAG_FIELD_OUT && !ref.getAmount().isZero()){ result = ImportResult.INVALID_BLOCK; result.setHashlow(ref.getAddress()); @@ -336,10 +335,8 @@ public synchronized ImportResult tryToConnect(Block block) { } } - - } - }else { - if(ref.type == XDAG_FIELD_INPUT && !addressStore.addressIsExist(BytesUtils.byte32ToArray(ref.getAddress()))){ + } else { + if(ref!= null && ref.type == XDAG_FIELD_INPUT && !addressStore.addressIsExist(BytesUtils.byte32ToArray(ref.getAddress()))){ result = ImportResult.INVALID_BLOCK; result.setErrorInfo("Address isn't exist " + WalletUtils.toBase58(BytesUtils.byte32ToArray(ref.getAddress()))); log.debug("Address isn't exist " + WalletUtils.toBase58(BytesUtils.byte32ToArray(ref.getAddress()))); @@ -733,10 +730,10 @@ private XAmount applyBlock(Block block) { } sumIn = sumIn.add(link.getAmount()); } else if(link.getType() == XDAG_FIELD_INPUT){ - XAmount balance = addressStore.getBalanceByAddress(Hash2byte(link.getAddress())); + XAmount balance = addressStore.getBalanceByAddress(hash2byte(link.getAddress())); if(compareAmountTo(balance,link.amount) < 0){ log.debug("This input ref doesn't have enough amount,hash:{},amount:{},need:{}", - Hex.toHexString(Hash2byte(link.getAddress())), balance, + Hex.toHexString(hash2byte(link.getAddress())), balance, link.getAmount()); return XAmount.ZERO; } @@ -776,9 +773,9 @@ private XAmount applyBlock(Block block) { // blockStore.saveBlockInfo(ref.getInfo()); // TODO:acceptAmount时已经保存了 这里还需要保存吗 }else { if(link.getType() == XDAG_FIELD_INPUT){ - subtractAmount(BasicUtils.Hash2byte(link.addressHash), link.getAmount(), block); + subtractAmount(BasicUtils.hash2byte(link.addressHash), link.getAmount(), block); }else if(link.getType() == XDAG_FIELD_OUTPUT){ - addAmount(BasicUtils.Hash2byte(link.addressHash), link.getAmount(), block); + addAmount(BasicUtils.hash2byte(link.addressHash), link.getAmount(), block); } } } @@ -809,10 +806,10 @@ public XAmount unApplyBlock(Block block) { } }else { if (link.getType() == XDAG_FIELD_INPUT){ - addAmount(BasicUtils.Hash2byte(link.getAddress()), link.getAmount(), block); + addAmount(BasicUtils.hash2byte(link.getAddress()), link.getAmount(), block); sum = sum.subtract(link.getAmount()); }else { - subtractAmount(BasicUtils.Hash2byte(link.getAddress()), link.getAmount(), block); + subtractAmount(BasicUtils.hash2byte(link.getAddress()), link.getAmount(), block); sum = sum.add(link.getAmount()); } } diff --git a/src/main/java/io/xdag/rpc/modules/xdag/XdagModuleChainBase.java b/src/main/java/io/xdag/rpc/modules/xdag/XdagModuleChainBase.java index 47286249..aae1685d 100644 --- a/src/main/java/io/xdag/rpc/modules/xdag/XdagModuleChainBase.java +++ b/src/main/java/io/xdag/rpc/modules/xdag/XdagModuleChainBase.java @@ -37,7 +37,7 @@ import static io.xdag.core.XdagField.FieldType.XDAG_FIELD_OUT; import static io.xdag.core.XdagField.FieldType.XDAG_FIELD_OUTPUT; import static io.xdag.rpc.utils.TypeConverter.toQuantityJsonHex; -import static io.xdag.utils.BasicUtils.Hash2byte; +import static io.xdag.utils.BasicUtils.hash2byte; import static io.xdag.utils.BasicUtils.address2Hash; import static io.xdag.utils.BasicUtils.amount2xdag; import static io.xdag.utils.BasicUtils.hash2Address; @@ -209,7 +209,7 @@ private BlockResultDTO transferBlockInfoToBlockResultDTO(Block block) { } private BlockResultDTO transferAccountToBlockResultDTO(String address) { - XAmount balance = kernel.getAddressStore().getBalanceByAddress(Hash2byte(pubAddress2Hash(address).mutableCopy())); + XAmount balance = kernel.getAddressStore().getBalanceByAddress(hash2byte(pubAddress2Hash(address).mutableCopy())); BlockResultDTO.BlockResultDTOBuilder BlockResultDTOBuilder = BlockResultDTO.builder(); BlockResultDTOBuilder.address(address) @@ -263,7 +263,7 @@ private List getLinks(Block block) { for (Address input : inputs) { Link.LinkBuilder linkBuilder = Link.builder(); - linkBuilder.address(input.getIsAddress() ? toBase58(Hash2byte(input.getAddress())) : hash2Address(input.getAddress())) + linkBuilder.address(input.getIsAddress() ? toBase58(hash2byte(input.getAddress())) : hash2Address(input.getAddress())) .hashlow(input.getAddress().toUnprefixedHexString()) .amount(String.format("%s", input.getAmount().toDecimal(9, XUnit.XDAG).toPlainString())) .direction(0); @@ -273,7 +273,7 @@ private List getLinks(Block block) { for (Address output : outputs) { Link.LinkBuilder linkBuilder = Link.builder(); if (output.getType().equals(XDAG_FIELD_COINBASE)) continue; - linkBuilder.address(output.getIsAddress() ? toBase58(Hash2byte(output.getAddress())) : hash2Address(output.getAddress())) + linkBuilder.address(output.getIsAddress() ? toBase58(hash2byte(output.getAddress())) : hash2Address(output.getAddress())) .hashlow(output.getAddress().toUnprefixedHexString()) .amount(String.format("%s", output.getAmount().toDecimal(9, XUnit.XDAG).toPlainString())) .direction(1); diff --git a/src/main/java/io/xdag/utils/BasicUtils.java b/src/main/java/io/xdag/utils/BasicUtils.java index 07a21489..8e488c96 100644 --- a/src/main/java/io/xdag/utils/BasicUtils.java +++ b/src/main/java/io/xdag/utils/BasicUtils.java @@ -98,7 +98,7 @@ public static Bytes32 keyPair2Hash(KeyPair keyPair) { return res; } - public static byte[] Hash2byte(MutableBytes32 hash){ + public static byte[] hash2byte(MutableBytes32 hash){ Bytes bytes = hash.slice(8,20); return bytes.toArray(); } From 920a69be25fcba51f238d39fcf17674a8b290678 Mon Sep 17 00:00:00 2001 From: holt666 Date: Mon, 15 May 2023 16:16:17 +0800 Subject: [PATCH 3/6] add ToStringBuilder --- src/main/java/io/xdag/mine/message/NewBalanceMessage.java | 6 ++++-- src/main/java/io/xdag/mine/message/NewTaskMessage.java | 5 ++++- src/main/java/io/xdag/mine/message/TaskShareMessage.java | 5 ++++- src/main/java/io/xdag/mine/message/WorkerNameMessage.java | 5 ++++- .../java/io/xdag/net/message/impl/BlockExtReplyMessage.java | 6 ++++-- .../io/xdag/net/message/impl/BlockExtRequestMessage.java | 6 ++++-- 6 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/main/java/io/xdag/mine/message/NewBalanceMessage.java b/src/main/java/io/xdag/mine/message/NewBalanceMessage.java index 8695071c..fa24c0db 100644 --- a/src/main/java/io/xdag/mine/message/NewBalanceMessage.java +++ b/src/main/java/io/xdag/mine/message/NewBalanceMessage.java @@ -29,6 +29,9 @@ import io.xdag.core.XdagField; import io.xdag.net.message.Message; import io.xdag.net.message.XdagMessageCodes; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.MutableBytes; @@ -58,7 +61,6 @@ public XdagMessageCodes getCommand() { @Override public String toString() { - - return null; + return new ToStringBuilder(this, ToStringStyle.JSON_STYLE).toString(); } } diff --git a/src/main/java/io/xdag/mine/message/NewTaskMessage.java b/src/main/java/io/xdag/mine/message/NewTaskMessage.java index 537a0dba..427fa245 100644 --- a/src/main/java/io/xdag/mine/message/NewTaskMessage.java +++ b/src/main/java/io/xdag/mine/message/NewTaskMessage.java @@ -29,6 +29,9 @@ import io.xdag.core.XdagField; import io.xdag.net.message.Message; import io.xdag.net.message.XdagMessageCodes; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.MutableBytes; @@ -62,6 +65,6 @@ public XdagMessageCodes getCommand() { @Override public String toString() { - return null; + return new ToStringBuilder(this, ToStringStyle.JSON_STYLE).toString(); } } diff --git a/src/main/java/io/xdag/mine/message/TaskShareMessage.java b/src/main/java/io/xdag/mine/message/TaskShareMessage.java index 277ea572..530d9ec3 100644 --- a/src/main/java/io/xdag/mine/message/TaskShareMessage.java +++ b/src/main/java/io/xdag/mine/message/TaskShareMessage.java @@ -29,6 +29,9 @@ import io.xdag.core.XdagField; import io.xdag.net.message.Message; import io.xdag.net.message.XdagMessageCodes; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.MutableBytes; @@ -58,6 +61,6 @@ public XdagMessageCodes getCommand() { @Override public String toString() { - return null; + return new ToStringBuilder(this, ToStringStyle.JSON_STYLE).toString(); } } diff --git a/src/main/java/io/xdag/mine/message/WorkerNameMessage.java b/src/main/java/io/xdag/mine/message/WorkerNameMessage.java index eee0ad23..97dceb53 100644 --- a/src/main/java/io/xdag/mine/message/WorkerNameMessage.java +++ b/src/main/java/io/xdag/mine/message/WorkerNameMessage.java @@ -28,6 +28,9 @@ import io.xdag.core.XdagField; import io.xdag.net.message.Message; import io.xdag.net.message.XdagMessageCodes; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.MutableBytes; @@ -57,6 +60,6 @@ public XdagMessageCodes getCommand() { @Override public String toString() { - return null; + return new ToStringBuilder(this, ToStringStyle.JSON_STYLE).toString(); } } diff --git a/src/main/java/io/xdag/net/message/impl/BlockExtReplyMessage.java b/src/main/java/io/xdag/net/message/impl/BlockExtReplyMessage.java index 478bb55c..00c4ea9a 100644 --- a/src/main/java/io/xdag/net/message/impl/BlockExtReplyMessage.java +++ b/src/main/java/io/xdag/net/message/impl/BlockExtReplyMessage.java @@ -26,6 +26,9 @@ import io.xdag.net.message.Message; import io.xdag.net.message.XdagMessageCodes; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.MutableBytes; @@ -48,8 +51,7 @@ public Bytes getEncoded() { @Override public String toString() { - // TODO Auto-generated method stub - return null; + return new ToStringBuilder(this, ToStringStyle.JSON_STYLE).toString(); } @Override diff --git a/src/main/java/io/xdag/net/message/impl/BlockExtRequestMessage.java b/src/main/java/io/xdag/net/message/impl/BlockExtRequestMessage.java index 4e7a7145..64520d41 100644 --- a/src/main/java/io/xdag/net/message/impl/BlockExtRequestMessage.java +++ b/src/main/java/io/xdag/net/message/impl/BlockExtRequestMessage.java @@ -26,6 +26,9 @@ import io.xdag.net.message.Message; import io.xdag.net.message.XdagMessageCodes; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.MutableBytes; @@ -50,8 +53,7 @@ public Bytes getEncoded() { @Override public String toString() { - // TODO Auto-generated method stub - return null; + return new ToStringBuilder(this, ToStringStyle.JSON_STYLE).toString(); } @Override From d2ba3d86974e6138c8f1d859ba9ddc857ea3b343 Mon Sep 17 00:00:00 2001 From: holt666 Date: Mon, 15 May 2023 16:16:41 +0800 Subject: [PATCH 4/6] fix stream close issue --- .../io/xdag/net/manager/NetDBManager.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/io/xdag/net/manager/NetDBManager.java b/src/main/java/io/xdag/net/manager/NetDBManager.java index 450819a0..5c51187f 100644 --- a/src/main/java/io/xdag/net/manager/NetDBManager.java +++ b/src/main/java/io/xdag/net/manager/NetDBManager.java @@ -141,23 +141,24 @@ public boolean canAccept(InetSocketAddress address) { public void refresh() { try { File file = new File(databaseWhite); - BufferedReader reader; // 白名单的地址 并且读取 URL url; url = new URL(whiteUrl); FileUtils.copyURLToFile(url, file); if (file.exists() && file.isFile()) { - reader = new BufferedReader( - new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8)); - String temp; - String ip; - int port; - while ((temp = reader.readLine()) != null) { - ip = temp.split(":")[0]; - port = Integer.parseInt(temp.split(":")[1]); - whiteDB = new NetDB(); - whiteDB.addNewIP(ip, port); + try(BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) { + String temp; + String ip; + int port; + while ((temp = reader.readLine()) != null) { + ip = temp.split(":")[0]; + port = Integer.parseInt(temp.split(":")[1]); + whiteDB = new NetDB(); + whiteDB.addNewIP(ip, port); + } + } catch (IOException e) { + log.error(e.getMessage(), e); } } } catch (IOException e) { From 70a1d64cd76d410f662a92412213ec428043b23c Mon Sep 17 00:00:00 2001 From: holt666 Date: Mon, 15 May 2023 16:17:10 +0800 Subject: [PATCH 5/6] Hash2byte rename to hash2byte --- .../io/xdag/rpc/modules/xdag/Web3XdagModuleImpl.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/xdag/rpc/modules/xdag/Web3XdagModuleImpl.java b/src/main/java/io/xdag/rpc/modules/xdag/Web3XdagModuleImpl.java index 51088b81..4e48d103 100644 --- a/src/main/java/io/xdag/rpc/modules/xdag/Web3XdagModuleImpl.java +++ b/src/main/java/io/xdag/rpc/modules/xdag/Web3XdagModuleImpl.java @@ -26,7 +26,7 @@ import static io.xdag.config.Constants.CLIENT_VERSION; import static io.xdag.rpc.utils.TypeConverter.toQuantityJsonHex; -import static io.xdag.utils.BasicUtils.Hash2byte; +import static io.xdag.utils.BasicUtils.hash2byte; import static io.xdag.utils.BasicUtils.address2Hash; import static io.xdag.utils.BasicUtils.getHash; import static io.xdag.utils.BasicUtils.pubAddress2Hash; @@ -36,7 +36,6 @@ import java.net.InetSocketAddress; import java.util.Collection; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Objects; @@ -130,7 +129,7 @@ public Object xdag_syncing() { @Override public String xdag_coinbase() { - return toBase58(Hash2byte(kernel.getPoolMiner().getAddressHash().mutableCopy())); + return toBase58(hash2byte(kernel.getPoolMiner().getAddressHash().mutableCopy())); } @Override @@ -222,8 +221,8 @@ public Object xdag_netConnectionList() { List netConnDTOList = Lists.newArrayList(); NetConnDTO.NetConnDTOBuilder netConnDTOBuilder = NetConnDTO.builder(); Map map = kernel.getNodeMgr().getActiveNode(); - for (Iterator it = map.keySet().iterator(); it.hasNext(); ) { - Node node = it.next(); + for (Map.Entry entry : map.entrySet()) { + Node node = entry.getKey(); netConnDTOBuilder.connectTime(map.get(node) == null ? 0 : map.get(node)) // use default "0" .inBound(node.getStat().Inbound.get()) .outBound(node.getStat().Outbound.get()) From a396d17caadbd4bf799789f361f28dbd4397f1ee Mon Sep 17 00:00:00 2001 From: holt666 Date: Mon, 15 May 2023 16:17:40 +0800 Subject: [PATCH 6/6] fix default charsets issue --- src/main/java/io/xdag/db/rocksdb/SnapshotStoreImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/xdag/db/rocksdb/SnapshotStoreImpl.java b/src/main/java/io/xdag/db/rocksdb/SnapshotStoreImpl.java index db9a4799..e6cb261f 100644 --- a/src/main/java/io/xdag/db/rocksdb/SnapshotStoreImpl.java +++ b/src/main/java/io/xdag/db/rocksdb/SnapshotStoreImpl.java @@ -56,6 +56,7 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.math.BigInteger; +import java.nio.charset.StandardCharsets; import java.util.List; import lombok.extern.slf4j.Slf4j; @@ -258,7 +259,7 @@ public void saveAddress(BlockStore blockStore,AddressStore addressStore, List