From a114c41b39bdeb7f9a805c327f2dafe6a9874bc8 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Mon, 19 Oct 2020 11:04:59 +0800 Subject: [PATCH 01/35] modify headers --- core | 2 +- explorer | 2 +- framework | 2 +- libs/bft-smart | 2 +- test | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core b/core index 61c8e0e3..48d99a20 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 61c8e0e36705b9fd153012039733a76de8b11705 +Subproject commit 48d99a20522bb80926f83c6c7b8815f6a67144d5 diff --git a/explorer b/explorer index f79293ab..599f5290 160000 --- a/explorer +++ b/explorer @@ -1 +1 @@ -Subproject commit f79293ab00e5ac74382d442ec5027604ee8260ea +Subproject commit 599f52909f2cd141eabca5432a515fe0ac19e8eb diff --git a/framework b/framework index 7641d701..6afcd0d1 160000 --- a/framework +++ b/framework @@ -1 +1 @@ -Subproject commit 7641d701b646a48854fe39ed8c764bb16d4e10f9 +Subproject commit 6afcd0d1f2387c37cc722c35b3eba57f86611b62 diff --git a/libs/bft-smart b/libs/bft-smart index 24e77b3e..aa8fa56a 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 24e77b3ef9d32e0d1d9b62f3b888d5e0f107d8c7 +Subproject commit aa8fa56a6ddd82087d282af45e76867188b7d5a8 diff --git a/test b/test index 11986101..179e3a35 160000 --- a/test +++ b/test @@ -1 +1 @@ -Subproject commit 11986101a14392c9b1a95200783109204fcc0e0c +Subproject commit 179e3a35b1184a111147f5e9e930fa5ebc638f1d From 2d4ed105607e74de81177b9035dfa258e67c517c Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Mon, 19 Oct 2020 17:26:02 +0800 Subject: [PATCH 02/35] update headers --- core | 2 +- explorer | 2 +- libs/bft-smart | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core b/core index 48d99a20..c7d6e89b 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 48d99a20522bb80926f83c6c7b8815f6a67144d5 +Subproject commit c7d6e89be7c62d28fa2fc41722fac94a982e7ba9 diff --git a/explorer b/explorer index 599f5290..2f8f4843 160000 --- a/explorer +++ b/explorer @@ -1 +1 @@ -Subproject commit 599f52909f2cd141eabca5432a515fe0ac19e8eb +Subproject commit 2f8f48435e65d4f6598b1ede9c6a7021b10d2a53 diff --git a/libs/bft-smart b/libs/bft-smart index aa8fa56a..6447741b 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit aa8fa56a6ddd82087d282af45e76867188b7d5a8 +Subproject commit 6447741b215b9a01d732e129f8995ebd7b0a2df0 From 7a459a1a9651757702b0ff7898b5b34788930e9a Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Tue, 20 Oct 2020 18:48:22 +0800 Subject: [PATCH 03/35] update headers --- core | 2 +- libs/bft-smart | 2 +- test | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core b/core index c7d6e89b..4321739d 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit c7d6e89be7c62d28fa2fc41722fac94a982e7ba9 +Subproject commit 4321739d580b734443be2f211f1b44e0d559f0d5 diff --git a/libs/bft-smart b/libs/bft-smart index 6447741b..9ccf9c71 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 6447741b215b9a01d732e129f8995ebd7b0a2df0 +Subproject commit 9ccf9c71735d92efe468e6d0e94e3479a2002354 diff --git a/test b/test index 179e3a35..7e35dd59 160000 --- a/test +++ b/test @@ -1 +1 @@ -Subproject commit 179e3a35b1184a111147f5e9e930fa5ebc638f1d +Subproject commit 7e35dd59f754fe681f57c63fc3cadf897e9d09d9 From 8c0224e8f25b39f6ee1a4d3ad60b048792c219dc Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Tue, 20 Oct 2020 19:00:38 +0800 Subject: [PATCH 04/35] modify default config --- .../src/main/resources/config/gateway.conf | 14 +++----------- .../src/main/resources/config/init/bftsmart.config | 2 ++ 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/deploy/deploy-gateway/src/main/resources/config/gateway.conf b/deploy/deploy-gateway/src/main/resources/config/gateway.conf index e19b82b9..06e8cece 100644 --- a/deploy/deploy-gateway/src/main/resources/config/gateway.conf +++ b/deploy/deploy-gateway/src/main/resources/config/gateway.conf @@ -5,20 +5,12 @@ http.port=8080 #网关的HTTP服务上下文路径,可选; #http.context-path= -#对端Peer节点的数量 -peer.size=2 #共识节点的服务地址(与该网关节点连接的Peer节点的IP地址); -peer.0.host=127.0.0.1 +peer.host=127.0.0.1 #共识节点的服务端口(与该网关节点连接的Peer节点的端口,即在Peer节点的peer-startup.sh中定义的端口); -peer.0.port=7080 +peer.port=7080 #共识节点的服务是否启用安全证书; -peer.0.secure=false -#共识节点的服务地址(与该网关节点连接的Peer节点的IP地址); -peer.1.host=127.0.0.1 -#共识节点的服务端口(与该网关节点连接的Peer节点的端口,即在Peer节点的peer-startup.sh中定义的端口); -peer.1.port=7081 -#共识节点的服务是否启用安全证书; -peer.1.secure=false +peer.secure=false #共识节点的服务提供解析器 #BftSmart共识Provider:com.jd.blockchain.consensus.bftsmart.BftsmartConsensusProvider diff --git a/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config b/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config index b5bfa5a3..bd4035ab 100644 --- a/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config +++ b/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config @@ -74,6 +74,8 @@ system.servers.f = 1 #Timeout to asking for a client request system.totalordermulticast.timeout = 60000 +#Allowable time tolerance range(millisecond) +system.totalordermulticast.timeTolerance = 3000000 #Maximum batch size (in number of messages) system.totalordermulticast.maxbatchsize = 2000 From 9fef1785f2f49377956b4c2619ffea16841a278e Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Wed, 21 Oct 2020 16:07:36 +0800 Subject: [PATCH 05/35] update headers --- core | 2 +- libs/bft-smart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core b/core index 4321739d..d014bcbe 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 4321739d580b734443be2f211f1b44e0d559f0d5 +Subproject commit d014bcbe14da5c4b61b145044f2281bf6bb9ae2f diff --git a/libs/bft-smart b/libs/bft-smart index 9ccf9c71..790b41da 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 9ccf9c71735d92efe468e6d0e94e3479a2002354 +Subproject commit 790b41da98060b6afeda49e0b26a5224be2f9177 From 99ce148d0ad6d98caec393bfd1c9d187aa05ee62 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Wed, 21 Oct 2020 17:30:16 +0800 Subject: [PATCH 06/35] update header --- libs/bft-smart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/bft-smart b/libs/bft-smart index 790b41da..018bd4c6 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 790b41da98060b6afeda49e0b26a5224be2f9177 +Subproject commit 018bd4c67aa0566ae28af47a2ec037a2c4716dd1 From e8e423c706ea8faad1d53db2fab067791621371c Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Wed, 21 Oct 2020 17:42:35 +0800 Subject: [PATCH 07/35] update headers --- libs/bft-smart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/bft-smart b/libs/bft-smart index 018bd4c6..061a37cc 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 018bd4c67aa0566ae28af47a2ec037a2c4716dd1 +Subproject commit 061a37ccd99f2959f8b02eb6586ef503d8f1d0a3 From 61b756630c7e8d31edbeddc056b26f03c496a058 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Wed, 21 Oct 2020 18:20:13 +0800 Subject: [PATCH 08/35] update headers --- libs/bft-smart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/bft-smart b/libs/bft-smart index 061a37cc..a5689655 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 061a37ccd99f2959f8b02eb6586ef503d8f1d0a3 +Subproject commit a568965555581aed2bc1e3874a41b8bb062d46bd From 91ed30595816a86deaf3b8c9513eb75b48044187 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Wed, 21 Oct 2020 22:27:02 +0800 Subject: [PATCH 09/35] update header --- libs/bft-smart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/bft-smart b/libs/bft-smart index a5689655..449e3254 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit a568965555581aed2bc1e3874a41b8bb062d46bd +Subproject commit 449e3254d23acbb5dd19b7d08a731ddb2c808f80 From b4c6d8a51fc4ddbcc7c43535e38b6110382325d5 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Wed, 21 Oct 2020 22:51:40 +0800 Subject: [PATCH 10/35] update header --- libs/bft-smart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/bft-smart b/libs/bft-smart index 449e3254..5b877865 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 449e3254d23acbb5dd19b7d08a731ddb2c808f80 +Subproject commit 5b877865b59799e20e35aea2b2454f2f1ed4ff87 From f4b3b90c0f303a449dd1435a8be4c78de7c9bae3 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Thu, 22 Oct 2020 09:22:54 +0800 Subject: [PATCH 11/35] update headers --- libs/bft-smart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/bft-smart b/libs/bft-smart index 5b877865..bca2bfba 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 5b877865b59799e20e35aea2b2454f2f1ed4ff87 +Subproject commit bca2bfbaec457b7b4967754e68182efb88a4af55 From 617c86d2586608d27d1e2c6b858fd394537c700e Mon Sep 17 00:00:00 2001 From: zhangshuang Date: Thu, 22 Oct 2020 11:16:22 +0800 Subject: [PATCH 12/35] solve sdk compile problem according to new ledger transaction stuction --- samples/pom.xml | 12 +++++++++++- samples/sdk-samples/pom.xml | 12 ++++++++++++ .../sdk/samples/SDKDemo_ConfigureSecurity.java | 3 --- .../sdk/samples/SDKDemo_InsertData.java | 2 +- .../jd/blockchain/sdk/samples/SDKDemo_Query.java | 5 ++--- .../sdk/samples/SDKDemo_RegistParticipant.java | 3 --- .../sdk/samples/SDKDemo_RegisterAccount.java | 3 --- .../sdk/samples/SDKDemo_RegisterUser.java | 3 --- .../sdk/samples/SDKDemo_Tx_Persistance.java | 5 +---- .../sdk/samples/SDK_InsertData_Demo.java | 4 ++-- .../jd/blockchain/sdk/test/SDK_Contract_Test.java | 2 +- .../test/SDK_GateWay_BatchInsertData_Test_.java | 6 ------ .../sdk/test/SDK_GateWay_DataAccount_Test_.java | 6 ------ .../sdk/test/SDK_GateWay_InsertData_Test_.java | 6 ------ .../SDK_GateWay_Participant_Regist_Test_.java | 3 --- .../sdk/test/SDK_GateWay_Query_Test_.java | 15 ++++----------- .../sdk/test/SDK_GateWay_User_Test_.java | 6 ------ 17 files changed, 34 insertions(+), 62 deletions(-) diff --git a/samples/pom.xml b/samples/pom.xml index b73ce4e6..397ebb30 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -15,7 +15,7 @@ pom - 1.3.0.RELEASE + 1.3.1-SNAPSHOT @@ -42,6 +42,16 @@ crypto-framework ${framework.version} + + com.jd.blockchain + crypto-classic + ${framework.version} + + + com.jd.blockchain + crypto-sm + ${framework.version} + diff --git a/samples/sdk-samples/pom.xml b/samples/sdk-samples/pom.xml index 73cc5064..10e0ab45 100644 --- a/samples/sdk-samples/pom.xml +++ b/samples/sdk-samples/pom.xml @@ -18,6 +18,18 @@ com.jd.blockchain ledger-model + + com.jd.blockchain + crypto-classic + + + com.jd.blockchain + crypto-framework + + + com.jd.blockchain + crypto-sm + com.jd.blockchain contract-samples diff --git a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_ConfigureSecurity.java b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_ConfigureSecurity.java index d7d2170b..fc1fad1d 100644 --- a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_ConfigureSecurity.java +++ b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_ConfigureSecurity.java @@ -38,10 +38,7 @@ public class SDKDemo_ConfigureSecurity { // 注册相关class DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); PrivKey privKey = SDKDemo_Params.privkey1; diff --git a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_InsertData.java b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_InsertData.java index 59d94201..7a684a0b 100644 --- a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_InsertData.java +++ b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_InsertData.java @@ -64,7 +64,7 @@ public class SDKDemo_InsertData { // TX 准备就绪; PreparedTransaction prepTx = txTemp.prepare(); - String txHash = ByteArray.toBase64(prepTx.getHash().toBytes()); + String txHash = ByteArray.toBase64(prepTx.getTransactionHash().toBytes()); // 使用私钥进行签名; AsymmetricKeypair keyPair = getSponsorKey(); diff --git a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Query.java b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Query.java index 6d81393d..6f4e9e19 100644 --- a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Query.java +++ b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Query.java @@ -7,7 +7,6 @@ import com.jd.blockchain.ledger.BlockchainKeypair; import com.jd.blockchain.ledger.TypedKVEntry; import com.jd.blockchain.ledger.LedgerBlock; import com.jd.blockchain.ledger.LedgerTransaction; -import com.jd.blockchain.ledger.Transaction; import com.jd.blockchain.sdk.BlockchainService; import com.jd.blockchain.sdk.client.GatewayServiceFactory; import com.jd.blockchain.utils.net.NetworkAddress; @@ -61,8 +60,8 @@ public class SDKDemo_Query { LedgerTransaction[] txList = service.getTransactions(LEDGER_HASH, ledgerNumber, 0, 100); // 根据交易的 hash 获得交易;注:客户端生成 PrepareTransaction 时得到交易hash; - HashDigest txHash = txList[0].getTransactionContent().getHash(); - Transaction tx = service.getTransactionByContentHash(LEDGER_HASH, txHash); + HashDigest txHash = txList[0].getRequest().getTransactionHash(); + LedgerTransaction tx = service.getTransactionByContentHash(LEDGER_HASH, txHash); // 获取数据; String commerceAccount = "GGhhreGeasdfasfUUfehf9932lkae99ds66jf=="; diff --git a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegistParticipant.java b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegistParticipant.java index 813cce1f..2494c058 100644 --- a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegistParticipant.java +++ b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegistParticipant.java @@ -44,10 +44,7 @@ public class SDKDemo_RegistParticipant { service = serviceFactory.getBlockchainService(); DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); DataContractRegistry.register(ParticipantRegisterOperation.class); DataContractRegistry.register(ParticipantStateUpdateOperation.class); diff --git a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterAccount.java b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterAccount.java index 07b84984..3d184070 100644 --- a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterAccount.java +++ b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterAccount.java @@ -20,10 +20,7 @@ public class SDKDemo_RegisterAccount { } DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); BlockchainKeypair CLIENT_CERT = new BlockchainKeypair(SDKDemo_Params.pubKey0, SDKDemo_Params.privkey0); diff --git a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterUser.java b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterUser.java index 778e5851..ebbe250a 100644 --- a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterUser.java +++ b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterUser.java @@ -38,10 +38,7 @@ public class SDKDemo_RegisterUser { // 注册相关class DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); PrivKey privKey = SDKDemo_Params.privkey1; diff --git a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Tx_Persistance.java b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Tx_Persistance.java index 5c2d452f..24417893 100644 --- a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Tx_Persistance.java +++ b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Tx_Persistance.java @@ -40,10 +40,7 @@ public class SDKDemo_Tx_Persistance { // 注册相关class DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); PrivKey privKey1 = SDKDemo_Params.privkey0; @@ -87,7 +84,7 @@ public class SDKDemo_Tx_Persistance { TransactionContent txContent = BinaryProtocol.decode(txContentBytes, TransactionContent.class); // 对交易内容签名; - DigitalSignature signature1 = SignatureUtils.sign(txContent, keyPair1); + DigitalSignature signature1 = SignatureUtils.sign(keyPair1.getAlgorithm(),txContent, keyPair1); // 根据交易内容重新准备交易; PreparedTransaction decodedPrepTx = blockchainService.prepareTransaction(txContent); diff --git a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_InsertData_Demo.java b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_InsertData_Demo.java index d90b5233..928af76a 100644 --- a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_InsertData_Demo.java +++ b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_InsertData_Demo.java @@ -48,7 +48,7 @@ public class SDK_InsertData_Demo extends SDK_Base_Demo { LedgerTransaction[] txList = blockchainService.getTransactions(ledgerHash, ledgerNumber, 0, 100); // 遍历交易列表 for (LedgerTransaction ledgerTransaction : txList) { - TransactionContent txContent = ledgerTransaction.getTransactionContent(); + TransactionContent txContent = ledgerTransaction.getRequest().getTransactionContent(); Operation[] operations = txContent.getOperations(); if (operations != null && operations.length > 0) { for (Operation operation : operations) { @@ -101,7 +101,7 @@ public class SDK_InsertData_Demo extends SDK_Base_Demo { } //根据交易的 hash 获得交易;注:客户端生成 PrepareTransaction 时得到交易hash; - HashDigest txHash = txList[0].getTransactionContent().getHash(); + HashDigest txHash = txList[0].getTransactionHash(); // Transaction tx = blockchainService.getTransactionByContentHash(ledgerHash, txHash); // String[] objKeys = new String[] { "x001", "x002" }; // KVDataEntry[] kvData = blockchainService.getDataEntries(ledgerHash, commerceAccount, objKeys); diff --git a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java index 244d8071..52e2be93 100644 --- a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java +++ b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java @@ -286,7 +286,7 @@ public class SDK_Contract_Test { // TX 准备就绪; PreparedTransaction prepTx = txTemp.prepare(); - String txHash = ByteArray.toBase64(prepTx.getHash().toBytes()); + String txHash = ByteArray.toBase64(prepTx.getTransactionHash().toBytes()); // 使用私钥进行签名; AsymmetricKeypair keyPair = getSponsorKey(); diff --git a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java index 747c835e..d459ac94 100644 --- a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java +++ b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java @@ -21,11 +21,8 @@ import com.jd.blockchain.crypto.HashFunction; import com.jd.blockchain.crypto.SignatureFunction; import com.jd.blockchain.ledger.BlockchainKeyGenerator; import com.jd.blockchain.ledger.BlockchainKeypair; -import com.jd.blockchain.ledger.EndpointRequest; -import com.jd.blockchain.ledger.NodeRequest; import com.jd.blockchain.ledger.PreparedTransaction; import com.jd.blockchain.ledger.TransactionContent; -import com.jd.blockchain.ledger.TransactionContentBody; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; @@ -68,10 +65,7 @@ public class SDK_GateWay_BatchInsertData_Test_ { service = serviceFactory.getBlockchainService(); DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); } diff --git a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java index 7d343505..114c6de6 100644 --- a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java +++ b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java @@ -19,11 +19,8 @@ import com.jd.blockchain.crypto.HashFunction; import com.jd.blockchain.crypto.SignatureFunction; import com.jd.blockchain.ledger.BlockchainKeyGenerator; import com.jd.blockchain.ledger.BlockchainKeypair; -import com.jd.blockchain.ledger.EndpointRequest; -import com.jd.blockchain.ledger.NodeRequest; import com.jd.blockchain.ledger.PreparedTransaction; import com.jd.blockchain.ledger.TransactionContent; -import com.jd.blockchain.ledger.TransactionContentBody; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; @@ -62,10 +59,7 @@ public class SDK_GateWay_DataAccount_Test_ { service = serviceFactory.getBlockchainService(); DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); } diff --git a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_InsertData_Test_.java b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_InsertData_Test_.java index ed6567e9..5d420d5f 100644 --- a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_InsertData_Test_.java +++ b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_InsertData_Test_.java @@ -21,11 +21,8 @@ import com.jd.blockchain.crypto.HashFunction; import com.jd.blockchain.crypto.SignatureFunction; import com.jd.blockchain.ledger.BlockchainKeyGenerator; import com.jd.blockchain.ledger.BlockchainKeypair; -import com.jd.blockchain.ledger.EndpointRequest; -import com.jd.blockchain.ledger.NodeRequest; import com.jd.blockchain.ledger.PreparedTransaction; import com.jd.blockchain.ledger.TransactionContent; -import com.jd.blockchain.ledger.TransactionContentBody; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; @@ -65,10 +62,7 @@ public class SDK_GateWay_InsertData_Test_ { service = serviceFactory.getBlockchainService(); DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); } diff --git a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Participant_Regist_Test_.java b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Participant_Regist_Test_.java index 634357f5..0b9e6a93 100644 --- a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Participant_Regist_Test_.java +++ b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Participant_Regist_Test_.java @@ -59,10 +59,7 @@ public class SDK_GateWay_Participant_Regist_Test_ { service = serviceFactory.getBlockchainService(); DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); DataContractRegistry.register(ParticipantRegisterOperation.class); DataContractRegistry.register(ParticipantStateUpdateOperation.class); diff --git a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Query_Test_.java b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Query_Test_.java index 3d291811..2879c503 100644 --- a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Query_Test_.java +++ b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Query_Test_.java @@ -23,16 +23,12 @@ import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.BlockchainKeyGenerator; import com.jd.blockchain.ledger.BlockchainKeypair; import com.jd.blockchain.ledger.DigitalSignature; -import com.jd.blockchain.ledger.EndpointRequest; import com.jd.blockchain.ledger.TypedKVEntry; import com.jd.blockchain.ledger.LedgerBlock; import com.jd.blockchain.ledger.LedgerInfo; import com.jd.blockchain.ledger.LedgerTransaction; -import com.jd.blockchain.ledger.NodeRequest; import com.jd.blockchain.ledger.ParticipantNode; -import com.jd.blockchain.ledger.Transaction; import com.jd.blockchain.ledger.TransactionContent; -import com.jd.blockchain.ledger.TransactionContentBody; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; @@ -72,10 +68,7 @@ public class SDK_GateWay_Query_Test_ { service = serviceFactory.getBlockchainService(); DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); } @@ -119,16 +112,16 @@ public class SDK_GateWay_Query_Test_ { LedgerTransaction[] txList = service.getTransactions(ledgerHash, ledgerNumber, 0, 100); for (LedgerTransaction ledgerTransaction : txList) { - System.out.println("ledgerTransaction.Hash=" + ledgerTransaction.getHash()); + System.out.println("ledgerTransaction.Hash=" + ledgerTransaction.getTransactionHash()); } txList = service.getTransactions(ledgerHash, hashDigest, 0, 100); for (LedgerTransaction ledgerTransaction : txList) { - System.out.println("ledgerTransaction.Hash=" + ledgerTransaction.getHash()); + System.out.println("ledgerTransaction.Hash=" + ledgerTransaction.getTransactionHash()); } - Transaction tx = service.getTransactionByContentHash(ledgerHash, hashDigest); - DigitalSignature[] signatures = tx.getEndpointSignatures(); + LedgerTransaction tx = service.getTransactionByContentHash(ledgerHash, hashDigest); + DigitalSignature[] signatures = tx.getRequest().getEndpointSignatures(); for (DigitalSignature signature : signatures) { System.out.println(signature.getDigest().getAlgorithm()); } diff --git a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_User_Test_.java b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_User_Test_.java index d69b0f97..5310624e 100644 --- a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_User_Test_.java +++ b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_User_Test_.java @@ -23,11 +23,8 @@ import com.jd.blockchain.crypto.PubKey; import com.jd.blockchain.crypto.SignatureFunction; import com.jd.blockchain.ledger.BlockchainKeyGenerator; import com.jd.blockchain.ledger.BlockchainKeypair; -import com.jd.blockchain.ledger.EndpointRequest; -import com.jd.blockchain.ledger.NodeRequest; import com.jd.blockchain.ledger.PreparedTransaction; import com.jd.blockchain.ledger.TransactionContent; -import com.jd.blockchain.ledger.TransactionContentBody; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; @@ -89,10 +86,7 @@ public class SDK_GateWay_User_Test_ { service = serviceFactory.getBlockchainService(); DataContractRegistry.register(TransactionContent.class); - DataContractRegistry.register(TransactionContentBody.class); DataContractRegistry.register(TransactionRequest.class); - DataContractRegistry.register(NodeRequest.class); - DataContractRegistry.register(EndpointRequest.class); DataContractRegistry.register(TransactionResponse.class); } From a2863c9a0efb745153bc7308b67451f8790a3b4a Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Thu, 22 Oct 2020 13:09:08 +0800 Subject: [PATCH 13/35] update headers --- libs/bft-smart | 2 +- test | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/bft-smart b/libs/bft-smart index bca2bfba..090453d8 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit bca2bfbaec457b7b4967754e68182efb88a4af55 +Subproject commit 090453d86b38142577588ce94f8205025d974a70 diff --git a/test b/test index 7e35dd59..cd9da6fc 160000 --- a/test +++ b/test @@ -1 +1 @@ -Subproject commit 7e35dd59f754fe681f57c63fc3cadf897e9d09d9 +Subproject commit cd9da6fc29bd3d18a76c1ba47f7f152fce1d4ca0 From 66562acf41ac34c3339165ea3e835f572af336ee Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Thu, 22 Oct 2020 15:38:01 +0800 Subject: [PATCH 14/35] update headers --- libs/bft-smart | 2 +- test | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/bft-smart b/libs/bft-smart index 090453d8..22ceb39c 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 090453d86b38142577588ce94f8205025d974a70 +Subproject commit 22ceb39c5ea63c21836dbe4a6b0da08feb147ae7 diff --git a/test b/test index cd9da6fc..d723a4b8 160000 --- a/test +++ b/test @@ -1 +1 @@ -Subproject commit cd9da6fc29bd3d18a76c1ba47f7f152fce1d4ca0 +Subproject commit d723a4b84e3357fdc8b5593fe2592e317bd70188 From 4d4ec6fdd6d34e3c9f3b8667c6ca08fedc69464a Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Fri, 23 Oct 2020 14:49:12 +0800 Subject: [PATCH 15/35] update headers --- core | 2 +- libs/bft-smart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core b/core index d014bcbe..c770f544 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit d014bcbe14da5c4b61b145044f2281bf6bb9ae2f +Subproject commit c770f544e9892b4cc2e937a336abf59a40fc198a diff --git a/libs/bft-smart b/libs/bft-smart index 22ceb39c..f2660860 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 22ceb39c5ea63c21836dbe4a6b0da08feb147ae7 +Subproject commit f2660860f71850b4e70ae529fbdb8320623bcaff From 8b9320d9db984f2dd37bff25a8a71230ea1e1e7b Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Mon, 26 Oct 2020 11:14:40 +0800 Subject: [PATCH 16/35] modify shell of startup and shutdown --- core | 2 +- .../gateway/boot/GatewayBooter.java | 36 ------ .../src/main/resources/scripts/shutdown.sh | 91 +++++++++----- .../src/main/resources/scripts/startup.sh | 112 ++++++++++++++--- .../jd/blockchain/boot/peer/PeerBooter.java | 24 ---- .../main/resources/scripts/peer-shutdown.sh | 91 +++++++++----- .../main/resources/scripts/peer-startup.sh | 116 +++++++++++++++--- explorer | 2 +- libs/bft-smart | 2 +- 9 files changed, 327 insertions(+), 149 deletions(-) diff --git a/core b/core index c770f544..d55343ab 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit c770f544e9892b4cc2e937a336abf59a40fc198a +Subproject commit d55343ab297329f9476d7fa1494ebb4c9c5fd878 diff --git a/deploy/deploy-gateway/src/main/java/com/jd/blockchain/gateway/boot/GatewayBooter.java b/deploy/deploy-gateway/src/main/java/com/jd/blockchain/gateway/boot/GatewayBooter.java index 4c9d5537..82413a65 100644 --- a/deploy/deploy-gateway/src/main/java/com/jd/blockchain/gateway/boot/GatewayBooter.java +++ b/deploy/deploy-gateway/src/main/java/com/jd/blockchain/gateway/boot/GatewayBooter.java @@ -15,45 +15,9 @@ public class GatewayBooter { public static void main(String[] args) { try { - writePID(); GatewayServerBooter.main(args); } catch (Exception e) { System.err.println("Error!!! --[" + e.getClass().getName() + "] " + e.getMessage()); } } - - private static final void writePID() throws Exception { - URL url = GatewayBooter.class.getProtectionDomain().getCodeSource().getLocation(); - String currPath = java.net.URLDecoder.decode(url.getPath(), "UTF-8"); - if (currPath.contains("!/")) { - currPath = currPath.substring(5, currPath.indexOf("!/")); - } - if (currPath.endsWith(".jar")) { - currPath = currPath.substring(0, currPath.lastIndexOf("/") + 1); - } - System.out.printf("currentPath = %s \r\n", currPath); - File file = new File(currPath); - String homeDir = file.getParent(); - String pidFilePath = homeDir + File.separator + "bin" + File.separator + "PID.log"; - File pidFile = new File(pidFilePath); - if (!pidFile.exists()) { - File dir = pidFile.getParentFile(); - if (!dir.exists()) { - dir.mkdirs(); - } - pidFile.createNewFile(); - } - String name = ManagementFactory.getRuntimeMXBean().getName(); - String pid = name.split("@")[0]; - List bootInfos = new ArrayList<>(); - bootInfos.add("JDChain gateway starts to boot ......\r\n"); - bootInfos.add(String.format("GW_BOOT_TIME = [%s] \r\n", new Date().toString())); - bootInfos.add(String.format("GW_BOOT_PID = [%s] \r\n", pid)); - try (FileOutputStream outputStream = new FileOutputStream(pidFile)) { - for (String bootInfo : bootInfos) { - outputStream.write(bootInfo.getBytes(StandardCharsets.UTF_8)); - } - outputStream.flush(); - } - } } diff --git a/deploy/deploy-gateway/src/main/resources/scripts/shutdown.sh b/deploy/deploy-gateway/src/main/resources/scripts/shutdown.sh index 0491e963..068c5ed0 100644 --- a/deploy/deploy-gateway/src/main/resources/scripts/shutdown.sh +++ b/deploy/deploy-gateway/src/main/resources/scripts/shutdown.sh @@ -1,32 +1,65 @@ #!/bin/bash -#启动Home路径 -BOOT_HOME=$(cd `dirname $0`;cd ../; pwd) - -#进程启动后PID.log所在路径 -PID_LOG=$BOOT_HOME/bin/PID.log - -#从启动文件中读取PID -if [ -f "$PID_LOG" ]; then - # File exist - echo "Read PID From File:[$PID_LOG] ..." - PID_LINE=`sed -n '$p' $PID_LOG` - echo "Last Gateway Boot Info = $PID_LINE ..." - if [[ $PID_LINE == *GW_BOOT_PID* ]]; then - LOG_PID=$(echo $PID_LINE | cut -d "=" -f 2 | cut -d "[" -f 2 | cut -d "]" -f 1) - echo "Last Gateway Boot PID = $LOG_PID ..." - PID=`ps -ef | grep deploy-gateway- | grep $LOG_PID | grep -v grep | awk '{print $2}'` +#定义程序启动的Jar包前缀 +APP_JAR_PREFIX=deploy-gateway- + +#获取当前的根目录 +APP_HOME=$(cd `dirname $0`;cd ../; pwd) + +#System路径 +APP_LIB_PATH=$APP_HOME/lib + +#获取Peer节点的启动Jar包 +APP_JAR=$(ls $APP_LIB_PATH | grep $APP_JAR_PREFIX) + +#APP_JAR的具体路径 +APP_JAR_PATH=$APP_LIB_PATH/$APP_JAR + +################################### +#(函数)判断程序是否已启动 +# +#说明: +#使用awk,分割出pid ($1部分),及Java程序名称($2部分) +################################### +#初始化psid变量(全局) +psid=0 + +checkpid() { + psid=`ps -ef | grep $APP_JAR_PATH | grep -v grep | awk '{print $2}'` +} + +################################### +#(函数)停止程序 +# +#说明: +#1. 首先调用checkpid函数,刷新$psid全局变量 +#2. 如果程序已经启动($psid不等于0),则开始执行停止,否则,提示程序未运行 +#3. 使用kill -9 pid命令进行强制杀死进程 +#4. 执行kill命令行紧接其后,马上查看上一句命令的返回值: $? +#5. 如果步骤4的结果$?等于0,则打印[OK],否则打印[Failed] +#注意:echo -n 表示打印字符后,不换行 +#注意: 在shell编程中,"$?" 表示上一句命令或者一个函数的返回值 +################################### +stop() { + checkpid + + if [[ $psid -ne 0 ]]; then + echo "Stopping Gateway ......(pid=$psid) " + JAVA_CMD="kill -9 $psid" + sleep 1 + $JAVA_CMD + if [[ $? -eq 0 ]]; then + echo "[OK]" + else + echo "[Failed]" fi -#启动文件不存在则直接通过PS进行过滤 -else - PID=`ps -ef | grep $BOOT_HOME/lib/deploy-gateway- | grep -v grep | awk '{print $2}'` -fi - -#通过Kill命令将进程杀死 -if [ -z "$PID" ]; then - echo "Unable to find gateway PID. stop aborted." -else - echo "Start to kill PID = $PID ..." - kill -9 $PID - echo "Gateway has been stopped ..." -fi \ No newline at end of file + else + echo "================================" + echo "WARN: Gateway is not running" + echo "================================" + fi +} + + +#真正停止的处理流程 +stop \ No newline at end of file diff --git a/deploy/deploy-gateway/src/main/resources/scripts/startup.sh b/deploy/deploy-gateway/src/main/resources/scripts/startup.sh index 01c86077..76189f54 100644 --- a/deploy/deploy-gateway/src/main/resources/scripts/startup.sh +++ b/deploy/deploy-gateway/src/main/resources/scripts/startup.sh @@ -1,19 +1,103 @@ #!/bin/bash -HOME=$(cd `dirname $0`;cd ../; pwd) -GATEWAY=$(ls $HOME/lib | grep deploy-gateway-) -PROC_INFO=$HOME/lib/$GATEWAY" -c "$HOME/config/gateway.conf -#echo $PROC_INFO -#get PID -PID=`ps -ef | grep "$PROC_INFO" | grep -v grep | awk '{print $2}'` -#echo $PID -if [[ ! -z $PID ]] -then - echo "process already exists,please check... If necessary, you should kill the process first." - exit +#设置Java命令 +JAVA_BIN=java + +#定义程序启动的Jar包前缀 +APP_JAR_PREFIX=deploy-gateway- + +#检查Java环境变量 +if [ ! -n "$JAVA_HOME" ]; then + echo "UnFound environment variable[JAVA_HOME], will use command[java]..." +else + JAVA_BIN=$JAVA_HOME/bin/java fi -if [ ! -n "$GATEWAY" ]; then - echo "GateWay Is Null !!!" + +#获取当前的根目录 +APP_HOME=$(cd `dirname $0`;cd ../; pwd) + +#Lib目录 +APP_LIB_PATH=$APP_HOME/lib + +#节点输出日志路径 +LOG_OUT=$APP_HOME/bin/gw.out + +#获取Peer节点的启动Jar包 +APP_JAR=$(ls $APP_LIB_PATH | grep $APP_JAR_PREFIX) + +#Config配置路径 +CONFIG_PATH=$APP_HOME/config + +#gateway.conf完整路径 +GATEWAY_CONFIG=$CONFIG_PATH/gateway.conf + +#定义程序启动的参数 +JAVA_OPTS="-jar -server -Xms1024m -Xmx1024m" + +#APP具体相关命令 +APP_CMD=$APP_LIB_PATH/$APP_JAR" -c "$GATEWAY_CONFIG + +#APP_JAR的具体路径 +APP_JAR_PATH=$APP_LIB_PATH/$APP_JAR + +#JAVA_CMD具体命令 +JAVA_CMD="$JAVA_BIN $JAVA_OPTS $APP_CMD" + +################################### +#(函数)判断程序是否已启动 +# +#说明: +#使用awk,分割出pid ($1部分),及Java程序名称($2部分) +################################### +#初始化psid变量(全局) +psid=0 + +checkpid() { + javaps=`ps -ef | grep $APP_JAR_PATH | grep -v grep | awk '{print $2}'` + + if [[ -n "$javaps" ]]; then + psid=$javaps + else + psid=0 + fi +} + +################################### +#(函数)打印系统环境参数 +################################### +info() { + echo "System Information:" + echo "****************************" + echo `uname -a` + echo + echo `$JAVA_BIN -version` + echo + echo "APP_HOME=$APP_HOME" + echo "APP_JAR=$APP_JAR" + echo "CONFIG_PATH=$CONFIG_PATH" + echo "APP_JAR_PATH=$APP_JAR_PATH" + echo + echo "JAVA_CMD=$JAVA_CMD" + echo "****************************" +} + +#真正启动的处理流程 +checkpid + +if [[ $psid -ne 0 ]]; then + echo "================================" + echo "warn: Gateway already started! (pid=$psid)" + echo "================================" else - nohup java -jar -server -Djdchain.log=$HOME $PROC_INFO $* >$HOME/bin/gw.out 2>&1 & + echo "Starting Gateway ......" + nohup $JAVA_BIN $JAVA_OPTS $APP_CMD $* >$LOG_OUT 2>&1 & + JAVA_CMD="$JAVA_BIN $JAVA_OPTS $APP_CMD $*" + sleep 1 + checkpid + if [[ $psid -ne 0 ]]; then + echo "(pid=$psid) [OK]" + info + else + echo "[Failed]" + fi fi \ No newline at end of file diff --git a/deploy/deploy-peer/src/main/java/com/jd/blockchain/boot/peer/PeerBooter.java b/deploy/deploy-peer/src/main/java/com/jd/blockchain/boot/peer/PeerBooter.java index d465a4ba..df9196e5 100644 --- a/deploy/deploy-peer/src/main/java/com/jd/blockchain/boot/peer/PeerBooter.java +++ b/deploy/deploy-peer/src/main/java/com/jd/blockchain/boot/peer/PeerBooter.java @@ -33,12 +33,8 @@ public class PeerBooter { public static void main(String[] args) { try { - HomeContext homeContext = HomeBooter.createHomeContext(args); - startPeer(homeContext); - - writePID(homeContext.getHomeDir()); } catch (Exception e) { System.err.println("Error!!! --[" + e.getClass().getName() + "] " + e.getMessage()); } @@ -56,24 +52,4 @@ public class PeerBooter { SYSTEM_MAIN_CLASS, home.getSystemClassLoader(), home.getStartingArgs() }; modularFactoryMethod.invoke(null, systemStartingArgs); } - - private static final void writePID(String homeDir) throws IOException { - String pidFilePath = homeDir + File.separator + "bin" + File.separator + "PID.log"; - File pidFile = new File(pidFilePath); - if (!pidFile.exists()) { - pidFile.createNewFile(); - } - String name = ManagementFactory.getRuntimeMXBean().getName(); - String pid = name.split("@")[0]; - List bootInfos = new ArrayList<>(); - bootInfos.add("JDChain peer node starts to boot ......\r\n"); - bootInfos.add(String.format("PEER_BOOT_TIME = [%s] \r\n", new Date().toString())); - bootInfos.add(String.format("PEER_BOOT_PID = [%s] \r\n", pid)); - try (FileOutputStream outputStream = new FileOutputStream(pidFile)) { - for (String bootInfo : bootInfos) { - outputStream.write(bootInfo.getBytes(StandardCharsets.UTF_8)); - } - outputStream.flush(); - } - } } diff --git a/deploy/deploy-peer/src/main/resources/scripts/peer-shutdown.sh b/deploy/deploy-peer/src/main/resources/scripts/peer-shutdown.sh index 4df77fb5..cd4c21dc 100644 --- a/deploy/deploy-peer/src/main/resources/scripts/peer-shutdown.sh +++ b/deploy/deploy-peer/src/main/resources/scripts/peer-shutdown.sh @@ -1,32 +1,65 @@ #!/bin/bash -#启动Home路径 -BOOT_HOME=$(cd `dirname $0`;cd ../; pwd) - -#进程启动后PID.log所在路径 -PID_LOG=$BOOT_HOME/bin/PID.log - -#从启动文件中读取PID -if [ -f "$PID_LOG" ]; then - # File exist - echo "Read PID From File:[$PID_LOG] ..." - PID_LINE=`sed -n '$p' $PID_LOG` - echo "Last Peer Boot Info = $PID_LINE ..." - if [[ $PID_LINE == *PEER_BOOT_PID* ]]; then - LOG_PID=$(echo $PID_LINE | cut -d "=" -f 2 | cut -d "[" -f 2 | cut -d "]" -f 1) - echo "Last Peer Boot PID = $LOG_PID ..." - PID=`ps -ef | grep deploy-peer- | grep $LOG_PID | grep -v grep | awk '{print $2}'` +#定义程序启动的Jar包前缀 +APP_JAR_PREFIX=deploy-peer- + +#获取当前的根目录 +APP_HOME=$(cd `dirname $0`;cd ../; pwd) + +#System路径 +APP_SYSTEM_PATH=$APP_HOME/system + +#获取Peer节点的启动Jar包 +APP_JAR=$(ls $APP_SYSTEM_PATH | grep $APP_JAR_PREFIX) + +#APP_JAR的具体路径 +APP_JAR_PATH=$APP_SYSTEM_PATH/$APP_JAR + +################################### +#(函数)判断程序是否已启动 +# +#说明: +#使用awk,分割出pid ($1部分),及Java程序名称($2部分) +################################### +#初始化psid变量(全局) +psid=0 + +checkpid() { + psid=`ps -ef | grep $APP_JAR_PATH | grep -v grep | awk '{print $2}'` +} + +################################### +#(函数)停止程序 +# +#说明: +#1. 首先调用checkpid函数,刷新$psid全局变量 +#2. 如果程序已经启动($psid不等于0),则开始执行停止,否则,提示程序未运行 +#3. 使用kill -9 pid命令进行强制杀死进程 +#4. 执行kill命令行紧接其后,马上查看上一句命令的返回值: $? +#5. 如果步骤4的结果$?等于0,则打印[OK],否则打印[Failed] +#注意:echo -n 表示打印字符后,不换行 +#注意: 在shell编程中,"$?" 表示上一句命令或者一个函数的返回值 +################################### +stop() { + checkpid + + if [[ $psid -ne 0 ]]; then + echo "Stopping Peer ......(pid=$psid) " + JAVA_CMD="kill -9 $psid" + sleep 1 + $JAVA_CMD + if [[ $? -eq 0 ]]; then + echo "[OK]" + else + echo "[Failed]" fi -#启动文件不存在则直接通过PS进行过滤 -else - PID=`ps -ef | grep $BOOT_HOME/system/deploy-peer- | grep -v grep | awk '{print $2}'` -fi - -#通过Kill命令将进程杀死 -if [ -z "$PID" ]; then - echo "Unable to find peer PID. stop aborted." -else - echo "Start to kill PID = $PID ..." - kill -9 $PID - echo "Peer has been stopped ..." -fi \ No newline at end of file + else + echo "================================" + echo "WARN: Peer is not running" + echo "================================" + fi +} + + +#真正停止的处理流程 +stop \ No newline at end of file diff --git a/deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh b/deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh index 3367c3fc..19dfa675 100644 --- a/deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh +++ b/deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh @@ -1,19 +1,107 @@ #!/bin/bash -HOME=$(cd `dirname $0`;cd ../; pwd) -PEER=$(ls $HOME/system | grep deploy-peer-) -PROC_INFO=$HOME/system/$PEER" -home="$HOME" -c "$HOME/config/ledger-binding.conf" -p 7080" -#echo $PROC_INFO -#get PID -PID=`ps -ef | grep "$PROC_INFO" | grep -v grep | awk '{print $2}'` -#echo $PID -if [[ ! -z $PID ]] -then - echo "process already exists,please check... If necessary, you should kill the process first." - exit +#设置Java命令 +JAVA_BIN=java + +#定义程序启动的Jar包前缀 +APP_JAR_PREFIX=deploy-peer- + +#Peer节点Web端口 +#请运维根据实际环境进行调整 +WEB_PORT=7080 + +#检查Java环境变量 +if [ ! -n "$JAVA_HOME" ]; then + echo "UnFound environment variable[JAVA_HOME], will use command[java]..." +else + JAVA_BIN=$JAVA_HOME/bin/java fi -if [ ! -n "$PEER" ]; then - echo "Peer Is Null !!!" + +#获取当前的根目录 +APP_HOME=$(cd `dirname $0`;cd ../; pwd) + +#System目录 +APP_SYSTEM_PATH=$APP_HOME/system + +#节点输出日志路径 +LOG_OUT=$APP_HOME/bin/peer.out + +#获取Peer节点的启动Jar包 +APP_JAR=$(ls $APP_SYSTEM_PATH | grep $APP_JAR_PREFIX) + +#Config配置路径 +CONFIG_PATH=$APP_HOME/config + +#ledger-binding.conf完整路径 +LEDGER_BINDING_CONFIG=$CONFIG_PATH/ledger-binding.conf + +#定义程序启动的参数 +JAVA_OPTS="-jar -server -Xms2048m -Xmx2048m" + +#APP具体相关命令 +APP_CMD=$APP_SYSTEM_PATH/$APP_JAR" -home="$APP_HOME" -c "$LEDGER_BINDING_CONFIG" -p "$WEB_PORT + +#APP_JAR的具体路径 +APP_JAR_PATH=$APP_SYSTEM_PATH/$APP_JAR + +#JAVA_CMD具体命令 +JAVA_CMD="$JAVA_BIN $JAVA_OPTS $APP_CMD" + +################################### +#(函数)判断程序是否已启动 +# +#说明: +#使用awk,分割出pid ($1部分),及Java程序名称($2部分) +################################### +#初始化psid变量(全局) +psid=0 + +checkpid() { + javaps=`ps -ef | grep $APP_JAR_PATH | grep -v grep | awk '{print $2}'` + + if [[ -n "$javaps" ]]; then + psid=$javaps + else + psid=0 + fi +} + +################################### +#(函数)打印系统环境参数 +################################### +info() { + echo "System Information:" + echo "****************************" + echo `uname -a` + echo + echo `$JAVA_BIN -version` + echo + echo "APP_HOME=$APP_HOME" + echo "APP_JAR=$APP_JAR" + echo "CONFIG_PATH=$CONFIG_PATH" + echo "APP_JAR_PATH=$APP_JAR_PATH" + echo + echo "JAVA_CMD=$JAVA_CMD" + echo "****************************" +} + +#真正启动的处理流程 +checkpid + +if [[ $psid -ne 0 ]]; then + echo "================================" + echo "warn: Peer already started! (pid=$psid)" + echo "================================" else - nohup java -jar -server -Xmx1g -Xms1g -Djdchain.log=$HOME $PROC_INFO $* >$HOME/bin/peer.out 2>&1 & + echo "Starting Peer ......" + nohup $JAVA_BIN $JAVA_OPTS $APP_CMD $* >$LOG_OUT 2>&1 & + JAVA_CMD="$JAVA_BIN $JAVA_OPTS $APP_CMD $*" + sleep 1 + checkpid + if [[ $psid -ne 0 ]]; then + echo "(pid=$psid) [OK]" + info + else + echo "[Failed]" + fi fi \ No newline at end of file diff --git a/explorer b/explorer index 2f8f4843..3ffc3324 160000 --- a/explorer +++ b/explorer @@ -1 +1 @@ -Subproject commit 2f8f48435e65d4f6598b1ede9c6a7021b10d2a53 +Subproject commit 3ffc3324c9fe20307cc36c07c361daa1f5d3f11e diff --git a/libs/bft-smart b/libs/bft-smart index f2660860..722663f9 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit f2660860f71850b4e70ae529fbdb8320623bcaff +Subproject commit 722663f988affc77cc5aec502da455afb3f7eec5 From 8bfbb966ee9bbb40a66022d3622afe981c205dbc Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Mon, 26 Oct 2020 11:23:04 +0800 Subject: [PATCH 17/35] update headers --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index d55343ab..a95adc7d 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit d55343ab297329f9476d7fa1494ebb4c9c5fd878 +Subproject commit a95adc7d00e8e0655815f023ffb0c307393665bb From 8139da44dceaa8399b606d0925e92bfe80d710a7 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Mon, 26 Oct 2020 17:56:56 +0800 Subject: [PATCH 18/35] update headers --- core | 2 +- libs/bft-smart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core b/core index a95adc7d..aeb7d921 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit a95adc7d00e8e0655815f023ffb0c307393665bb +Subproject commit aeb7d92157cafa2db86b8df487af68054b2442a9 diff --git a/libs/bft-smart b/libs/bft-smart index 722663f9..3229cb2c 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 722663f988affc77cc5aec502da455afb3f7eec5 +Subproject commit 3229cb2c909080c3001dbb669d8a73c182fa1701 From 6fc5adf06aedc124e29063e12bb95cdb40e10094 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Tue, 27 Oct 2020 11:37:11 +0800 Subject: [PATCH 19/35] update headers --- core | 2 +- libs/bft-smart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core b/core index aeb7d921..d386a9a1 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit aeb7d92157cafa2db86b8df487af68054b2442a9 +Subproject commit d386a9a13ad14769ac4ea903b8ba260a5a4651e2 diff --git a/libs/bft-smart b/libs/bft-smart index 3229cb2c..2b11d098 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 3229cb2c909080c3001dbb669d8a73c182fa1701 +Subproject commit 2b11d098e33d44e5d60c2b5c2af6b7d34fb25a82 From ba443b45c29c817930c9cdadba77c8beb927eb0d Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Tue, 27 Oct 2020 17:16:03 +0800 Subject: [PATCH 20/35] update headers --- libs/bft-smart | 2 +- test | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/bft-smart b/libs/bft-smart index 2b11d098..7c35da16 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 2b11d098e33d44e5d60c2b5c2af6b7d34fb25a82 +Subproject commit 7c35da16829788821affef26f499a35806acb8d3 diff --git a/test b/test index d723a4b8..687ee2fd 160000 --- a/test +++ b/test @@ -1 +1 @@ -Subproject commit d723a4b84e3357fdc8b5593fe2592e317bd70188 +Subproject commit 687ee2fd6415ff304839514276c59b32765be256 From 00ca066e0d65ac547e38b6ea87e8dc6561e01ffd Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Tue, 27 Oct 2020 17:47:48 +0800 Subject: [PATCH 21/35] update headers --- libs/bft-smart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/bft-smart b/libs/bft-smart index 7c35da16..443e433e 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 7c35da16829788821affef26f499a35806acb8d3 +Subproject commit 443e433eff0f504796e5898a281d631a6779486f From 549b4f3f574df0f0c719f34833c6caa005b2a3e3 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Wed, 28 Oct 2020 10:36:35 +0800 Subject: [PATCH 22/35] update headers --- core | 2 +- libs/bft-smart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core b/core index d386a9a1..ae37116d 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit d386a9a13ad14769ac4ea903b8ba260a5a4651e2 +Subproject commit ae37116d73a5447820352368371a1771d58a4ef8 diff --git a/libs/bft-smart b/libs/bft-smart index 443e433e..31a935b2 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 443e433eff0f504796e5898a281d631a6779486f +Subproject commit 31a935b2bfbe631d4971a19e55656d49337b86ba From eb24a899b68fdce61352c3467d168d909d3f7ab8 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Wed, 28 Oct 2020 14:12:35 +0800 Subject: [PATCH 23/35] update headers --- libs/bft-smart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/bft-smart b/libs/bft-smart index 31a935b2..db13ce3d 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 31a935b2bfbe631d4971a19e55656d49337b86ba +Subproject commit db13ce3d97faacfdee948592c8785e5d51a59967 From 996cd357747aa7ae3c4ee64f89376f05edc5a210 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Wed, 28 Oct 2020 16:03:15 +0800 Subject: [PATCH 24/35] update headers --- core | 2 +- libs/bft-smart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core b/core index ae37116d..de60f40a 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit ae37116d73a5447820352368371a1771d58a4ef8 +Subproject commit de60f40a2ee7992b092738f040e42532a4ea8a84 diff --git a/libs/bft-smart b/libs/bft-smart index db13ce3d..d35aa41d 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit db13ce3d97faacfdee948592c8785e5d51a59967 +Subproject commit d35aa41d6b5e56f342ffb74d0fc04892d76df5a6 From 928655aefb75ebd7a7363649f65026a607b93f3e Mon Sep 17 00:00:00 2001 From: zhangshuang Date: Thu, 5 Nov 2020 17:37:14 +0800 Subject: [PATCH 25/35] modify consensus config file ,write state transfer log to disk --- .../deploy-peer/src/main/resources/config/init/bftsmart.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config b/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config index bd4035ab..99bbc27e 100644 --- a/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config +++ b/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config @@ -128,7 +128,7 @@ system.totalordermulticast.timeout_highMark = 200 system.totalordermulticast.log = true system.totalordermulticast.log_parallel = false -system.totalordermulticast.log_to_disk = false +system.totalordermulticast.log_to_disk = true system.totalordermulticast.sync_log = false #Period at which BFT-SMaRt requests the state to the application (for the state transfer state protocol) From 6a127c472571a63f684860f6f9fc6a97a7ccf4d2 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Mon, 9 Nov 2020 10:08:00 +0800 Subject: [PATCH 26/35] update peer-startup.sh and headers --- core | 2 +- .../src/main/resources/scripts/peer-startup.sh | 12 +++++++++++- libs/bft-smart | 2 +- test | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/core b/core index de60f40a..78b21340 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit de60f40a2ee7992b092738f040e42532a4ea8a84 +Subproject commit 78b213405ddbf5ea2bea734476470de27110e01b diff --git a/deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh b/deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh index 19dfa675..9cb6597f 100644 --- a/deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh +++ b/deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh @@ -7,8 +7,15 @@ JAVA_BIN=java APP_JAR_PREFIX=deploy-peer- #Peer节点Web端口 -#请运维根据实际环境进行调整 +#请运维根据实际环境进行调整或通过-p参数传入 WEB_PORT=7080 +#端口配置参数 +IS_CONFIG=false +for i in "$@"; do + if [ $i = "-p" ];then + IS_CONFIG=true + fi +done #检查Java环境变量 if [ ! -n "$JAVA_HOME" ]; then @@ -40,6 +47,9 @@ JAVA_OPTS="-jar -server -Xms2048m -Xmx2048m" #APP具体相关命令 APP_CMD=$APP_SYSTEM_PATH/$APP_JAR" -home="$APP_HOME" -c "$LEDGER_BINDING_CONFIG" -p "$WEB_PORT +if [ $IS_CONFIG = true ];then + APP_CMD=$APP_SYSTEM_PATH/$APP_JAR" -home="$APP_HOME" -c "$LEDGER_BINDING_CONFIG +fi #APP_JAR的具体路径 APP_JAR_PATH=$APP_SYSTEM_PATH/$APP_JAR diff --git a/libs/bft-smart b/libs/bft-smart index d35aa41d..7663a03a 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit d35aa41d6b5e56f342ffb74d0fc04892d76df5a6 +Subproject commit 7663a03ac746e4d7990733f76f46db58bec9d34c diff --git a/test b/test index 687ee2fd..79c32511 160000 --- a/test +++ b/test @@ -1 +1 @@ -Subproject commit 687ee2fd6415ff304839514276c59b32765be256 +Subproject commit 79c32511abda32ce819f9deccc6f46235d281ae1 From 341073398a284a2b0b08c705284268522a58b2c4 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Mon, 9 Nov 2020 10:30:51 +0800 Subject: [PATCH 27/35] update headers --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 78b21340..b257e102 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 78b213405ddbf5ea2bea734476470de27110e01b +Subproject commit b257e1029e49dff60dcf5ab7cf9a57adbb257745 From 814eed366c73967738e3d44453b1620a5bc08339 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Tue, 10 Nov 2020 10:05:05 +0800 Subject: [PATCH 28/35] update headers --- core | 2 +- libs/bft-smart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core b/core index b257e102..49814841 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit b257e1029e49dff60dcf5ab7cf9a57adbb257745 +Subproject commit 49814841e2d5c59407e3bf11d96c3a94e53661fc diff --git a/libs/bft-smart b/libs/bft-smart index 7663a03a..2a10ee3e 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 7663a03ac746e4d7990733f76f46db58bec9d34c +Subproject commit 2a10ee3e41f132746de032ae4b73c983e499e630 From 2d20081969379ee0ea2781ae45bbec9dc44b7354 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Tue, 10 Nov 2020 15:21:05 +0800 Subject: [PATCH 29/35] update headers --- libs/bft-smart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/bft-smart b/libs/bft-smart index 2a10ee3e..a1471c43 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit 2a10ee3e41f132746de032ae4b73c983e499e630 +Subproject commit a1471c4389bac254357007837dfff71a2b2c40e8 From beaed311ff1f1557a04008171fc6122f91ee68ab Mon Sep 17 00:00:00 2001 From: zhangshuang Date: Thu, 12 Nov 2020 09:22:27 +0800 Subject: [PATCH 30/35] cancel sender thread config --- .../deploy-peer/src/main/resources/config/init/bftsmart.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config b/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config index 99bbc27e..cdc1b1a5 100644 --- a/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config +++ b/deploy/deploy-peer/src/main/resources/config/init/bftsmart.config @@ -55,7 +55,7 @@ system.server.3.network.secure=false #system.authentication.hmacAlgorithm = HmacSHA1 #Specify if the communication system should use a thread to send data (true or false) -system.communication.useSenderThread = true +system.communication.useSenderThread = false #Force all processes to use the same public/private keys pair and secret key. This is useful when deploying experiments #and benchmarks, but must not be used in production systems. From 20618d1631186cb53abadc8fe6d1e3b0ed1079ed Mon Sep 17 00:00:00 2001 From: zhangshuang Date: Thu, 12 Nov 2020 16:10:24 +0800 Subject: [PATCH 31/35] update header --- core | 2 +- libs/bft-smart | 2 +- test | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core b/core index 49814841..22a63e4f 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 49814841e2d5c59407e3bf11d96c3a94e53661fc +Subproject commit 22a63e4fe85398a090f7e4abf99cd212549be70f diff --git a/libs/bft-smart b/libs/bft-smart index a1471c43..caeda287 160000 --- a/libs/bft-smart +++ b/libs/bft-smart @@ -1 +1 @@ -Subproject commit a1471c4389bac254357007837dfff71a2b2c40e8 +Subproject commit caeda28790884979c2353d632b60de3c265a27be diff --git a/test b/test index 79c32511..0dc92a2f 160000 --- a/test +++ b/test @@ -1 +1 @@ -Subproject commit 79c32511abda32ce819f9deccc6f46235d281ae1 +Subproject commit 0dc92a2f6bffe9896839e573baa0c5d4c7fbbd5c From 194ddb4e75074d192e1433ccd37797f61047e713 Mon Sep 17 00:00:00 2001 From: zhangshuang Date: Thu, 12 Nov 2020 16:38:32 +0800 Subject: [PATCH 32/35] add auto node shell --- core | 2 +- deploy/deploy-peer/pom.xml | 18 ++++++++ .../main/resources/scripts/active-parti.sh | 10 +++++ .../main/resources/scripts/deactive-parti.sh | 10 +++++ .../src/main/resources/scripts/reg-parti.sh | 10 +++++ .../SDK_Update_ConsensusSettings_Demo.java | 42 +++++++++++++++++++ 6 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 deploy/deploy-peer/src/main/resources/scripts/active-parti.sh create mode 100644 deploy/deploy-peer/src/main/resources/scripts/deactive-parti.sh create mode 100644 deploy/deploy-peer/src/main/resources/scripts/reg-parti.sh create mode 100644 samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Update_ConsensusSettings_Demo.java diff --git a/core b/core index 22a63e4f..b5a9bd91 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 22a63e4fe85398a090f7e4abf99cd212549be70f +Subproject commit b5a9bd9155034260d8babebb6d8701c3627c226b diff --git a/deploy/deploy-peer/pom.xml b/deploy/deploy-peer/pom.xml index b9edadbe..a31a5614 100644 --- a/deploy/deploy-peer/pom.xml +++ b/deploy/deploy-peer/pom.xml @@ -58,6 +58,24 @@ ${core.version} + + com.jd.blockchain + tools-regparti-booter + ${core.version} + + + + com.jd.blockchain + tools-activeparti-booter + ${core.version} + + + + com.jd.blockchain + tools-deactiveparti-booter + ${core.version} + + diff --git a/deploy/deploy-peer/src/main/resources/scripts/active-parti.sh b/deploy/deploy-peer/src/main/resources/scripts/active-parti.sh new file mode 100644 index 00000000..df895210 --- /dev/null +++ b/deploy/deploy-peer/src/main/resources/scripts/active-parti.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +OME=$(cd `dirname $0`;cd ../; pwd) +boot_file=$(ls ../libs | grep tools-activeparti-booter-) +if [ ! -n "$boot_file" ]; then + echo "tools-activeparti-booter is null" +else + echo "active participant" + java -jar $HOME/libs/$boot_file $* +fi \ No newline at end of file diff --git a/deploy/deploy-peer/src/main/resources/scripts/deactive-parti.sh b/deploy/deploy-peer/src/main/resources/scripts/deactive-parti.sh new file mode 100644 index 00000000..0dc00080 --- /dev/null +++ b/deploy/deploy-peer/src/main/resources/scripts/deactive-parti.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +OME=$(cd `dirname $0`;cd ../; pwd) +boot_file=$(ls ../libs | grep tools-deactiveparti-booter-) +if [ ! -n "$boot_file" ]; then + echo "tools-deactiveparti-booter is null" +else + echo "deactive participant" + java -jar $HOME/libs/$boot_file $* +fi \ No newline at end of file diff --git a/deploy/deploy-peer/src/main/resources/scripts/reg-parti.sh b/deploy/deploy-peer/src/main/resources/scripts/reg-parti.sh new file mode 100644 index 00000000..cd31b360 --- /dev/null +++ b/deploy/deploy-peer/src/main/resources/scripts/reg-parti.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +HOME=$(cd `dirname $0`;cd ../; pwd) + boot_file=$(ls ../libs | grep tools-regparti-booter-) + if [ ! -n "$boot_file" ]; then + echo "tools-regparti-booter is null" + else + echo "register new participant" + java -jar $HOME/libs/$boot_file $* + fi \ No newline at end of file diff --git a/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Update_ConsensusSettings_Demo.java b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Update_ConsensusSettings_Demo.java new file mode 100644 index 00000000..de875c32 --- /dev/null +++ b/samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Update_ConsensusSettings_Demo.java @@ -0,0 +1,42 @@ +package com.jd.blockchain.sdk.samples; + +import com.jd.blockchain.ledger.PreparedTransaction; +import com.jd.blockchain.ledger.TransactionResponse; +import com.jd.blockchain.ledger.TransactionTemplate; +import com.jd.blockchain.utils.Property; + +import java.util.ArrayList; +import java.util.List; + +public class SDK_Update_ConsensusSettings_Demo extends SDK_Base_Demo { + + public static void main(String[] args) { + new SDK_Update_ConsensusSettings_Demo().updateSettings(); + } + + public void updateSettings() { + + List properties = new ArrayList(); + + // 修改bftsmart.conf配置文件中的选项; + properties.add(new Property("system.communication.useSenderThread", "false")); + + Property[] propertiesArray = properties.toArray(new Property[properties.size()]); + + TransactionTemplate txTpl = blockchainService.newTransaction(ledgerHash); + + txTpl.settings().update(propertiesArray); + + // TX 准备就绪; + PreparedTransaction prepTx = txTpl.prepare(); + + // 使用私钥进行签名; + prepTx.sign(adminKey); + + // 提交交易; + TransactionResponse transactionResponse = prepTx.commit(); + + System.out.println(transactionResponse.isSuccess()); + + } +} From 4d02bc655710ffb45b02c1cc9c6a75e9c4252b37 Mon Sep 17 00:00:00 2001 From: shaozhuguang Date: Thu, 12 Nov 2020 17:07:38 +0800 Subject: [PATCH 33/35] update headers --- core | 2 +- framework | 2 +- test | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core b/core index b5a9bd91..c2074f06 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit b5a9bd9155034260d8babebb6d8701c3627c226b +Subproject commit c2074f0661b4d3bb7bbc674870ff81a1ce150351 diff --git a/framework b/framework index 6afcd0d1..f92776f7 160000 --- a/framework +++ b/framework @@ -1 +1 @@ -Subproject commit 6afcd0d1f2387c37cc722c35b3eba57f86611b62 +Subproject commit f92776f7b789f3288073aa134df38df55eb81ae5 diff --git a/test b/test index 0dc92a2f..0b91bba8 160000 --- a/test +++ b/test @@ -1 +1 @@ -Subproject commit 0dc92a2f6bffe9896839e573baa0c5d4c7fbbd5c +Subproject commit 0b91bba862d52844e18ca420098afcefb8a68ca5 From fdd608c852a445cf2541dfb958da203fd4b4ebae Mon Sep 17 00:00:00 2001 From: zhangshuang Date: Thu, 12 Nov 2020 17:48:18 +0800 Subject: [PATCH 34/35] fix merge develop code , compile error! --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index c2074f06..0e30483c 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit c2074f0661b4d3bb7bbc674870ff81a1ce150351 +Subproject commit 0e30483c0b030262ab64378315426a978367b7a1 From 64a1c1e2eb5d00bc4cb0770c3b49470bfffed612 Mon Sep 17 00:00:00 2001 From: zhangshuang Date: Thu, 12 Nov 2020 18:27:30 +0800 Subject: [PATCH 35/35] fix sdk compile error --- .../test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java | 5 ++++- .../sdk/test/SDK_GateWay_BatchInsertData_Test_.java | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java index 52e2be93..0425f5ce 100644 --- a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java +++ b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java @@ -6,6 +6,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import com.jd.blockchain.crypto.base.DefaultCryptoEncoding; +import com.jd.blockchain.crypto.base.HashDigestBytes; import org.junit.Before; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -297,7 +299,8 @@ public class SDK_Contract_Test { } private static HashDigest getLedgerHash() { - return new HashDigest(Base58Utils.decode(ledgerAddress)); + byte[] addressBytes = Base58Utils.decode(ledgerAddress); + return new HashDigestBytes(DefaultCryptoEncoding.decodeAlgorithm(addressBytes), addressBytes); } /** diff --git a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java index d459ac94..eb04157b 100644 --- a/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java +++ b/samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java @@ -10,6 +10,8 @@ package test.com.jd.blockchain.sdk.test; import static org.junit.Assert.assertEquals; +import com.jd.blockchain.crypto.base.DefaultCryptoEncoding; +import com.jd.blockchain.crypto.base.HashDigestBytes; import org.junit.Before; import org.junit.Test; @@ -113,7 +115,7 @@ public class SDK_GateWay_BatchInsertData_Test_ { private HashDigest getLedgerHash() { byte[] hashBytes = Base58Utils.decode(ledgerHash); - return new HashDigest(hashBytes); + return new HashDigestBytes(DefaultCryptoEncoding.decodeAlgorithm(hashBytes), hashBytes); }