Browse Source

Merge commit '3e51629b86977c47cbc4f6d0f57dff95c7edc995' into release/1.4.0

* commit '3e51629b86977c47cbc4f6d0f57dff95c7edc995':
  update log configurations
  update contract samples
  update log configurations
tags/1.4.0^2
huanghaiquan 4 years ago
parent
commit
114db56a92
5 changed files with 84 additions and 19 deletions
  1. +7
    -5
      deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml
  2. +4
    -4
      deploy/deploy-gateway/src/main/resources/scripts/startup.sh
  3. +7
    -5
      deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml
  4. +4
    -1
      deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh
  5. +62
    -4
      samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/ContractSample.java

+ 7
- 5
deploy/deploy-gateway/src/main/resources/config/log4j2-gw.xml View File

@@ -2,17 +2,18 @@
<configuration status="WARN" monitorInterval="60">
<appenders>
<console name="Console" target="SYSTEM_OUT">
<ThresholdFilter level="all" onMatch="ACCEPT" onMismatch="DENY"/>
<ThresholdFilter level="fatal" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
</console>
<RollingFile name="GWRolling" fileName="${sys:jdchain.log}/gw.log"
filePattern="${sys:jdchain.log}/$${date:yyyy-MM}/gw-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss:SSS}] [%thread] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="250 MB"/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
<DefaultRolloverStrategy max="100"/>
</RollingFile>
<RollingFile name="GWRollingError" fileName="${sys:jdchain.log}/gw.error.log"
filePattern="${sys:jdchain.log}/$${date:yyyy-MM}/gw.error-%d{yyyy-MM-dd}-%i.log">
@@ -26,9 +27,10 @@
</appenders>

<loggers>
<logger name="org.springframework" level="ERROR"></logger>
<logger name="org.springframework" level="error"></logger>
<logger name="bftsmart" level="error"></logger>
<!--修改此处,以变更日志等级-->
<root level="all">
<root level="info">
<appender-ref ref="Console"/>
<appender-ref ref="GWRolling"/>
<appender-ref ref="GWRollingError"/>


+ 4
- 4
deploy/deploy-gateway/src/main/resources/scripts/startup.sh View File

@@ -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


+ 7
- 5
deploy/deploy-peer/src/main/resources/config/log4j2-peer.xml View File

@@ -2,17 +2,18 @@
<configuration status="WARN" monitorInterval="60">
<appenders>
<console name="Console" target="SYSTEM_OUT">
<ThresholdFilter level="all" onMatch="ACCEPT" onMismatch="DENY"/>
<ThresholdFilter level="fatal" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
</console>
<RollingFile name="PeerRolling" fileName="${sys:jdchain.log}/peer.log"
filePattern="${sys:jdchain.log}/$${date:yyyy-MM}/peer-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss:SSS}] [%thread] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="250 MB"/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
<DefaultRolloverStrategy max="100"/>
</RollingFile>
<RollingFile name="PeerRollingError" fileName="${sys:jdchain.log}/peer.error.log"
filePattern="${sys:jdchain.log}/$${date:yyyy-MM}/peer.error-%d{yyyy-MM-dd}-%i.log">
@@ -26,9 +27,10 @@
</appenders>

<loggers>
<logger name="org.springframework" level="ERROR"></logger>
<logger name="org.springframework" level="error"></logger>
<logger name="bftsmart" level="error"></logger>
<!--修改此处,以变更日志等级-->
<root level="all">
<root level="info">
<appender-ref ref="Console"/>
<appender-ref ref="PeerRolling"/>
<appender-ref ref="PeerRollingError"/>


+ 4
- 1
deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh View File

@@ -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


+ 62
- 4
samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/ContractSample.java View File

@@ -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<String> 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;
}
}
}

}

Loading…
Cancel
Save