diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java
index f7ef4a4e..57ddde05 100644
--- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java
@@ -1,129 +1,129 @@
-package com.jd.blockchain.ledger;
-
-import com.jd.blockchain.binaryproto.PrimitiveType;
-import com.jd.blockchain.binaryproto.EnumContract;
-import com.jd.blockchain.binaryproto.EnumField;
-import com.jd.blockchain.consts.DataCodes;
-
-/**
- * 交易(事务)执行状态;
- *
- * @author huanghaiquan
- *
- */
-@EnumContract(code = DataCodes.ENUM_TYPE_TRANSACTION_STATE)
-public enum TransactionState {
-
- /**
- * 成功;
- */
- SUCCESS((byte) 0),
-
- /**
- * 账本错误;
- */
- LEDGER_ERROR((byte) 0x01),
-
- /**
- * 数据账户不存在;
- */
- DATA_ACCOUNT_DOES_NOT_EXIST((byte) 0x02),
-
- /**
- * 用户不存在;
- */
- USER_DOES_NOT_EXIST((byte) 0x03),
-
- /**
- * 合约不存在;
- */
- CONTRACT_DOES_NOT_EXIST((byte) 0x04),
-
- /**
- * 数据写入时版本冲突;
- */
- DATA_VERSION_CONFLICT((byte) 0x05),
-
- /**
- * 参与方不存在;
- */
- PARTICIPANT_DOES_NOT_EXIST((byte) 0x05),
-
- /**
- * 被安全策略拒绝;
- */
- REJECTED_BY_SECURITY_POLICY((byte) 0x10),
-
- /**
- * 由于在错误的账本上执行交易而被丢弃;
- */
- IGNORED_BY_WRONG_LEDGER((byte) 0x40),
-
- /**
- * 由于交易内容的验签失败而丢弃;
- */
- IGNORED_BY_WRONG_CONTENT_SIGNATURE((byte) 0x41),
-
- /**
- * 由于交易内容的验签失败而丢弃;
- */
- IGNORED_BY_CONFLICTING_STATE((byte) 0x42),
-
- /**
- * 由于交易的整体回滚而丢弃;
- *
- *
- * 注: “整体回滚”是指把交易引入的数据更改以及交易记录本身全部都回滚;
- * “部分回滚”是指把交易引入的数据更改回滚了,但是交易记录本身以及相应的“交易结果({@link TransactionState})”都会提交;
- */
- IGNORED_BY_TX_FULL_ROLLBACK((byte) 0x43),
-
- /**
- * 由于区块的整体回滚而丢弃;
- *
- *
- * 注: “整体回滚”是指把交易引入的数据更改以及交易记录本身全部都回滚;
- *
- * “部分回滚”是指把交易引入的数据更改回滚了,但是交易记录本身以及相应的“交易结果({@link TransactionState})”都会提交;
- */
- IGNORED_BY_BLOCK_FULL_ROLLBACK((byte) 0x44),
-
- /**
- *
- * 共识阶段加入新区块哈希预计算功能, 如果来自其他Peer的新区块哈希值不一致,本批次整体回滚
- *
- */
- IGNORED_BY_CONSENSUS_PHASE_PRECOMPUTE_ROLLBACK((byte) 0x45),
-
- /**
- * 系统错误;
- */
- SYSTEM_ERROR((byte) 0x80),
-
- /**
- * 超时;
- */
- TIMEOUT((byte) 0x81),
-
- /**
- * 共识错误;
- */
- CONSENSUS_ERROR((byte) 0x82);
-
- @EnumField(type = PrimitiveType.INT8)
- public final byte CODE;
-
- private TransactionState(byte code) {
- this.CODE = code;
- }
-
- public static TransactionState valueOf(byte code) {
- for (TransactionState tr : values()) {
- if (tr.CODE == code) {
- return tr;
- }
- }
- throw new IllegalArgumentException("Unsupported transaction result code!");
- }
-
-}
+package com.jd.blockchain.ledger;
+
+import com.jd.blockchain.binaryproto.PrimitiveType;
+import com.jd.blockchain.binaryproto.EnumContract;
+import com.jd.blockchain.binaryproto.EnumField;
+import com.jd.blockchain.consts.DataCodes;
+
+/**
+ * 交易(事务)执行状态;
+ *
+ * @author huanghaiquan
+ *
+ */
+@EnumContract(code = DataCodes.ENUM_TYPE_TRANSACTION_STATE)
+public enum TransactionState {
+
+ /**
+ * 成功;
+ */
+ SUCCESS((byte) 0),
+
+ /**
+ * 账本错误;
+ */
+ LEDGER_ERROR((byte) 0x01),
+
+ /**
+ * 数据账户不存在;
+ */
+ DATA_ACCOUNT_DOES_NOT_EXIST((byte) 0x02),
+
+ /**
+ * 用户不存在;
+ */
+ USER_DOES_NOT_EXIST((byte) 0x03),
+
+ /**
+ * 合约不存在;
+ */
+ CONTRACT_DOES_NOT_EXIST((byte) 0x04),
+
+ /**
+ * 数据写入时版本冲突;
+ */
+ DATA_VERSION_CONFLICT((byte) 0x05),
+
+ /**
+ * 参与方不存在;
+ */
+ PARTICIPANT_DOES_NOT_EXIST((byte) 0x06),
+
+ /**
+ * 被安全策略拒绝;
+ */
+ REJECTED_BY_SECURITY_POLICY((byte) 0x10),
+
+ /**
+ * 由于在错误的账本上执行交易而被丢弃;
+ */
+ IGNORED_BY_WRONG_LEDGER((byte) 0x40),
+
+ /**
+ * 由于交易内容的验签失败而丢弃;
+ */
+ IGNORED_BY_WRONG_CONTENT_SIGNATURE((byte) 0x41),
+
+ /**
+ * 由于交易内容的验签失败而丢弃;
+ */
+ IGNORED_BY_CONFLICTING_STATE((byte) 0x42),
+
+ /**
+ * 由于交易的整体回滚而丢弃;
+ *
+ *
+ * 注: “整体回滚”是指把交易引入的数据更改以及交易记录本身全部都回滚;
+ * “部分回滚”是指把交易引入的数据更改回滚了,但是交易记录本身以及相应的“交易结果({@link TransactionState})”都会提交;
+ */
+ IGNORED_BY_TX_FULL_ROLLBACK((byte) 0x43),
+
+ /**
+ * 由于区块的整体回滚而丢弃;
+ *
+ *
+ * 注: “整体回滚”是指把交易引入的数据更改以及交易记录本身全部都回滚;
+ *
+ * “部分回滚”是指把交易引入的数据更改回滚了,但是交易记录本身以及相应的“交易结果({@link TransactionState})”都会提交;
+ */
+ IGNORED_BY_BLOCK_FULL_ROLLBACK((byte) 0x44),
+
+ /**
+ *
+ * 共识阶段加入新区块哈希预计算功能, 如果来自其他Peer的新区块哈希值不一致,本批次整体回滚
+ *
+ */
+ IGNORED_BY_CONSENSUS_PHASE_PRECOMPUTE_ROLLBACK((byte) 0x45),
+
+ /**
+ * 系统错误;
+ */
+ SYSTEM_ERROR((byte) 0x80),
+
+ /**
+ * 超时;
+ */
+ TIMEOUT((byte) 0x81),
+
+ /**
+ * 共识错误;
+ */
+ CONSENSUS_ERROR((byte) 0x82);
+
+ @EnumField(type = PrimitiveType.INT8)
+ public final byte CODE;
+
+ private TransactionState(byte code) {
+ this.CODE = code;
+ }
+
+ public static TransactionState valueOf(byte code) {
+ for (TransactionState tr : values()) {
+ if (tr.CODE == code) {
+ return tr;
+ }
+ }
+ throw new IllegalArgumentException("Unsupported transaction result code!");
+ }
+
+}
diff --git a/source/pom.xml b/source/pom.xml
index eb777e4d..feb7e913 100644
--- a/source/pom.xml
+++ b/source/pom.xml
@@ -515,7 +515,63 @@
-Xdoclint:none
+
+
+
+ sonatype-oss-release
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 2.1.2
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.7
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.1
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+
+
+
+
+ sonatype-nexus-staging
+ Nexus Release Repository
+ https://oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
diff --git a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayServiceFactory.java b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayServiceFactory.java
index 79a329af..1d50d1d7 100644
--- a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayServiceFactory.java
+++ b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayServiceFactory.java
@@ -71,7 +71,6 @@ public class GatewayServiceFactory implements BlockchainServiceFactory, Closeabl
ByteArrayObjectUtil.init();
}
-
protected GatewayServiceFactory(ServiceEndpoint gatewayEndpoint, BlockchainKeypair userKey) {
httpConnectionManager = new ServiceConnectionManager();
this.userKey = userKey;
@@ -80,7 +79,7 @@ public class GatewayServiceFactory implements BlockchainServiceFactory, Closeabl
TransactionService txProcSrv = createConsensusService(gatewayEndpoint);
this.blockchainService = new GatewayBlockchainServiceProxy(txProcSrv, queryService);
}
-
+
@Override
public BlockchainService getBlockchainService() {
return blockchainService;
@@ -107,19 +106,49 @@ public class GatewayServiceFactory implements BlockchainServiceFactory, Closeabl
// factory.setMaxConnections(100);
// return factory;
// }
-
+
+ /**
+ * 连接网关节点;
+ *
+ * @param gatewayAddress 网关节点的网络地址;
+ * @return 网关服务工厂的实例;
+ */
public static GatewayServiceFactory connect(NetworkAddress gatewayAddress) {
return connect(gatewayAddress.getHost(), gatewayAddress.getPort(), gatewayAddress.isSecure(), null);
}
+ /**
+ * 网关服务工厂的实例;
+ *
+ * @param gatewayAddress 网关节点的网络地址;
+ * @param userKey 自动交易签名的用户密钥;可选参数,如果不为 null,则在提交交易时,自动以参数指定的密钥签署交易;
+ * @return 网关服务工厂的实例;
+ */
public static GatewayServiceFactory connect(NetworkAddress gatewayAddress, BlockchainKeypair userKey) {
return connect(gatewayAddress.getHost(), gatewayAddress.getPort(), gatewayAddress.isSecure(), userKey);
}
-
+
+ /**
+ * 连接网关节点;
+ *
+ * @param gatewayHost 网关节点的地址;
+ * @param gatewayPort 网关节点的端口;
+ * @param secure 是否采用安全的通讯协议(HTTPS);
+ * @return 网关服务工厂的实例;
+ */
public static GatewayServiceFactory connect(String gatewayHost, int gatewayPort, boolean secure) {
return connect(gatewayHost, gatewayPort, secure, null);
}
+ /**
+ * 连接网关节点;
+ *
+ * @param gatewayHost 网关节点的地址;
+ * @param gatewayPort 网关节点的端口;
+ * @param secure 是否采用安全的通讯协议(HTTPS);
+ * @param userKey 自动交易签名的用户密钥;可选参数,如果不为 null,则在提交交易时,自动以参数指定的密钥签署交易;
+ * @return 网关服务工厂的实例;
+ */
public static GatewayServiceFactory connect(String gatewayHost, int gatewayPort, boolean secure,
BlockchainKeypair userKey) {
// if (userKey == null) {
@@ -128,8 +157,8 @@ public class GatewayServiceFactory implements BlockchainServiceFactory, Closeabl
ServiceEndpoint gatewayEndpoint = new ServiceEndpoint(gatewayHost, gatewayPort, secure);
GatewayServiceFactory factory = new GatewayServiceFactory(gatewayEndpoint, userKey);
factory.setMaxConnections(100);
- //TODO: 未实现网关对用户的认证;
- //TODO: 未实现加载不同账本的密码算法配置;
+ // TODO: 未实现网关对用户的认证;
+ // TODO: 未实现加载不同账本的密码算法配置;
return factory;
}
@@ -171,7 +200,7 @@ public class GatewayServiceFactory implements BlockchainServiceFactory, Closeabl
@Override
public TransactionResponse process(TransactionRequest txRequest) {
TxRequestMessage reqMsg = (TxRequestMessage) txRequest;
- //TODO: 未实现按不同的账本的密码参数配置,采用不同的哈希算法和签名算法;
+ // TODO: 未实现按不同的账本的密码参数配置,采用不同的哈希算法和签名算法;
if (!reqMsg.containsEndpointSignature(userKey.getAddress())) {
// TODO: 优化上下文对此 TransactionContent 的多次序列化带来的额外性能开销;
DigitalSignature signature = SignatureUtils.sign(txRequest.getTransactionContent(), userKey);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4Nodes.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4Nodes.java
index ec77fbee..1ccf994c 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4Nodes.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4Nodes.java
@@ -53,6 +53,7 @@ public class LedgerInitializeWeb4Nodes {
System.setProperty("peer.log", path);
System.setProperty("init.log", path);
System.setProperty("gateway.log", path);
+ System.setProperty("jdchain.log", path);
} catch (Exception e) {
e.printStackTrace();
}