From c37f560a37affd2b1d4e055122826fc9781ec923 Mon Sep 17 00:00:00 2001 From: imuge Date: Tue, 5 Jan 2021 10:41:43 +0800 Subject: [PATCH 1/3] update log configurations --- .../src/main/resources/config/log4j2-gw.xml | 11 ++++++----- .../src/main/resources/scripts/startup.sh | 8 ++++---- .../src/main/resources/config/log4j2-peer.xml | 11 ++++++----- .../src/main/resources/scripts/peer-startup.sh | 5 ++++- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml b/deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml index 437bc6f0..7a9914af 100644 --- a/deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml +++ b/deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml @@ -2,7 +2,7 @@ - + - + - + @@ -26,9 +26,10 @@ - + + - + diff --git a/deploy/deploy-gateway/src/main/resources/scripts/startup.sh b/deploy/deploy-gateway/src/main/resources/scripts/startup.sh index 2db26ec4..a38f2f62 100644 --- a/deploy/deploy-gateway/src/main/resources/scripts/startup.sh +++ b/deploy/deploy-gateway/src/main/resources/scripts/startup.sh @@ -19,8 +19,8 @@ APP_HOME=$(cd `dirname $0`;cd ../; pwd) #Lib目录 APP_LIB_PATH=$APP_HOME/lib -#节点输出日志路径 -LOG_OUT=$APP_HOME/logs +#nohup输出日志路径 +LOG_OUT=$APP_HOME/bin/gw.out #获取Peer节点的启动Jar包 APP_JAR=$(ls $APP_LIB_PATH | grep $APP_JAR_PREFIX) @@ -32,7 +32,7 @@ CONFIG_PATH=$APP_HOME/config GATEWAY_CONFIG=$CONFIG_PATH/gateway.conf #定义程序启动的参数 -JAVA_OPTS="-jar -server -Xms1024m -Xmx1024m -Djdchain.log=$LOG_OUT -Dlogging.config=file:$APP_HOME/config/log4j2-gw.xml" +JAVA_OPTS="-jar -server -Xms1024m -Xmx1024m -Djdchain.log=$APP_HOME/logs -Dlogging.config=file:$APP_HOME/config/log4j2-gw.xml" #APP具体相关命令 APP_CMD=$APP_LIB_PATH/$APP_JAR" -c "$GATEWAY_CONFIG @@ -90,7 +90,7 @@ if [[ $psid -ne 0 ]]; then echo "================================" else echo "Starting Gateway ......" - nohup $JAVA_BIN $JAVA_OPTS $APP_CMD $* & + nohup $JAVA_BIN $JAVA_OPTS $APP_CMD $* >$LOG_OUT 2>&1 & JAVA_CMD="$JAVA_BIN $JAVA_OPTS $APP_CMD $*" sleep 1 checkpid diff --git a/deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml b/deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml index e5ab655a..ad218870 100644 --- a/deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml +++ b/deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml @@ -2,7 +2,7 @@ - + - + - + @@ -26,9 +26,10 @@ - + + - + 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 1823ad19..e54c7d38 100644 --- a/deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh +++ b/deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh @@ -30,6 +30,9 @@ APP_HOME=$(cd `dirname $0`;cd ../; pwd) #System目录 APP_SYSTEM_PATH=$APP_HOME/system +#nohup输出日志路径 +LOG_OUT=$APP_HOME/bin/peer.out + #获取Peer节点的启动Jar包 APP_JAR=$(ls $APP_SYSTEM_PATH | grep $APP_JAR_PREFIX) @@ -101,7 +104,7 @@ if [[ $psid -ne 0 ]]; then echo "================================" else echo "Starting Peer ......" - nohup $JAVA_BIN $JAVA_OPTS $APP_CMD $* & + nohup $JAVA_BIN $JAVA_OPTS $APP_CMD $* >$LOG_OUT 2>&1 & JAVA_CMD="$JAVA_BIN $JAVA_OPTS $APP_CMD $*" sleep 1 checkpid From 198a3e1e24e10125388fe47d3bdb8255248ed1f9 Mon Sep 17 00:00:00 2001 From: imuge Date: Tue, 5 Jan 2021 14:36:13 +0800 Subject: [PATCH 2/3] update contract samples --- framework | 2 +- .../jdchain/samples/sdk/ContractSample.java | 66 +++++++++++++++++-- 2 files changed, 63 insertions(+), 5 deletions(-) diff --git a/framework b/framework index dbde6e52..e9afd349 160000 --- a/framework +++ b/framework @@ -1 +1 @@ -Subproject commit dbde6e525ab2673c82824b385d349be093ca7b81 +Subproject commit e9afd349b3e52d8921d5cddf485d201831e8ee66 diff --git a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/ContractSample.java b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/ContractSample.java index 901ca223..70d139e4 100644 --- a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/ContractSample.java +++ b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/ContractSample.java @@ -2,14 +2,23 @@ package com.jdchain.samples.sdk; import com.jd.blockchain.ledger.BlockchainKeyGenerator; import com.jd.blockchain.ledger.BlockchainKeypair; +import com.jd.blockchain.ledger.BytesDataList; +import com.jd.blockchain.ledger.BytesValue; import com.jd.blockchain.ledger.PreparedTransaction; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionTemplate; +import com.jd.blockchain.ledger.TypedValue; +import com.jd.blockchain.transaction.ContractEventSendOperationBuilder; +import com.jd.blockchain.transaction.ContractReturnValue; +import com.jd.blockchain.transaction.GenericValueHolder; +import com.jd.blockchain.utils.io.BytesUtils; import com.jd.blockchain.utils.io.FileUtils; import com.jdchain.samples.contract.SampleContract; import org.junit.Assert; import org.junit.Test; +import java.util.UUID; + /** * 合约相关操作示例: * 合约部署,合约调用 @@ -40,16 +49,48 @@ public class ContractSample extends SampleBase { } /** - * 合约调用 + * 基于动态代理方式合约调用,需要依赖合约接口 */ @Test - public void testExecute() { + public void testExecuteByProxy() { // 新建交易 TransactionTemplate txTemp = blockchainService.newTransaction(ledger); // 运行前,填写正确的合约地址 + // 一次交易中可调用多个(多次调用)合约方法 // 调用合约的 registerUser 方法 - txTemp.contract("LdeNr7H1CUbqe3kWjwPwiqHcmd86zEQz2VRye", SampleContract.class).registerUser("至少32位字节数-----------------------------"); + SampleContract sampleContract = txTemp.contract("LdeNr7H1CUbqe3kWjwPwiqHcmd86zEQz2VRye", SampleContract.class); + GenericValueHolder userAddress = ContractReturnValue.decode(sampleContract.registerUser(UUID.randomUUID().toString())); + + // 准备交易 + PreparedTransaction ptx = txTemp.prepare(); + // 交易签名 + ptx.sign(adminKey); + // 提交交易 + TransactionResponse response = ptx.commit(); + Assert.assertTrue(response.isSuccess()); + + // 获取返回值 + System.out.println(userAddress.get()); + } + + /** + * 非动态代理方式合约调用,不需要依赖合约接口及实现 + */ + @Test + public void testExecuteWithArgus() { + // 新建交易 + TransactionTemplate txTemp = blockchainService.newTransaction(ledger); + + ContractEventSendOperationBuilder builder = txTemp.contract(); + // 运行前,填写正确的合约地址,数据账户地址等参数 + // 一次交易中可调用多个(多次调用)合约方法 + // 调用合约的 registerUser 方法,传入合约地址,合约方法名,合约方法参数列表 + builder.send("LdeNr7H1CUbqe3kWjwPwiqHcmd86zEQz2VRye", "registerUser", + new BytesDataList(new TypedValue[]{ + TypedValue.fromText(UUID.randomUUID().toString()) + }) + ); // 准备交易 PreparedTransaction ptx = txTemp.prepare(); // 交易签名 @@ -59,7 +100,24 @@ public class ContractSample extends SampleBase { Assert.assertTrue(response.isSuccess()); Assert.assertEquals(1, response.getOperationResults().length); - System.out.println(response.getOperationResults()[0].getResult().getBytes().toString()); + // 解析合约方法调用返回值 + for (int i = 0; i < response.getOperationResults().length; i++) { + BytesValue content = response.getOperationResults()[i].getResult(); + switch (content.getType()) { + case TEXT: + System.out.println(content.getBytes().toUTF8String()); + break; + case INT64: + System.out.println(BytesUtils.toLong(content.getBytes().toBytes())); + break; + case BOOLEAN: + System.out.println(BytesUtils.toBoolean(content.getBytes().toBytes()[0])); + break; + default: // byte[], Bytes + System.out.println(content.getBytes().toBase58()); + break; + } + } } } From a9f2286f11298543fc6c53ad058660e47f3f9586 Mon Sep 17 00:00:00 2001 From: imuge Date: Tue, 5 Jan 2021 11:20:47 +0800 Subject: [PATCH 3/3] update log configurations --- core | 2 +- deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml | 1 + deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core b/core index f72f7252..b29d5721 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit f72f7252c1aa15b3f28f8d01a558c03d254b4835 +Subproject commit b29d5721df1dcfbf359d01000d40f332a0866e2d diff --git a/deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml b/deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml index 7a9914af..a83fdec9 100644 --- a/deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml +++ b/deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml @@ -7,6 +7,7 @@ + diff --git a/deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml b/deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml index ad218870..ebd1df90 100644 --- a/deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml +++ b/deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml @@ -7,6 +7,7 @@ +