diff --git a/.gitmodules b/.gitmodules
index 9b0e9384..ec3fca5a 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -20,3 +20,12 @@
path = libs/kvdb
url = git@github.com:blockchain-jd-com/jdchain-kvdb.git
+[submodule "libs/binary-proto"]
+ path = libs/binary-proto
+ url = git@github.com:blockchain-jd-com/binary-proto.git
+[submodule "libs/utils"]
+ path = libs/utils
+ url = git@github.com:blockchain-jd-com/utils.git
+[submodule "libs/httpservice"]
+ path = libs/httpservice
+ url = git@github.com:blockchain-jd-com/httpservice.git
diff --git a/deploy/deploy-gateway/pom.xml b/deploy/deploy-gateway/pom.xml
index 082c78ec..6fad3834 100644
--- a/deploy/deploy-gateway/pom.xml
+++ b/deploy/deploy-gateway/pom.xml
@@ -5,7 +5,7 @@
com.jd.blockchain
deploy-root
- 1.5.0-SNAPSHOT
+ 1.4.1.RELEASE
deploy-gateway
diff --git a/deploy/deploy-peer/pom.xml b/deploy/deploy-peer/pom.xml
index 2e391729..1be47643 100644
--- a/deploy/deploy-peer/pom.xml
+++ b/deploy/deploy-peer/pom.xml
@@ -5,7 +5,7 @@
com.jd.blockchain
deploy-root
- 1.5.0-SNAPSHOT
+ 1.4.1.RELEASE
deploy-peer
diff --git a/deploy/docker/docker-demo/pom.xml b/deploy/docker/docker-demo/pom.xml
index dcfad1b7..f502706d 100644
--- a/deploy/docker/docker-demo/pom.xml
+++ b/deploy/docker/docker-demo/pom.xml
@@ -5,7 +5,7 @@
docker
com.jd.blockchain
- 1.5.0-SNAPSHOT
+ 1.4.1.RELEASE
4.0.0
docker-demo
diff --git a/deploy/docker/docker-sdk/pom.xml b/deploy/docker/docker-sdk/pom.xml
index 4f15b727..f7612d70 100644
--- a/deploy/docker/docker-sdk/pom.xml
+++ b/deploy/docker/docker-sdk/pom.xml
@@ -3,9 +3,9 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- docker
com.jd.blockchain
- 1.5.0-SNAPSHOT
+ docker
+ 1.4.1.RELEASE
4.0.0
@@ -63,4 +63,4 @@
-
+
\ No newline at end of file
diff --git a/deploy/docker/docker-sdk/src/main/java/com/jd/blockchain/SDK_Base_Demo.java b/deploy/docker/docker-sdk/src/main/java/com/jd/blockchain/SDK_Base_Demo.java
index 9f2e4754..4f321b13 100644
--- a/deploy/docker/docker-sdk/src/main/java/com/jd/blockchain/SDK_Base_Demo.java
+++ b/deploy/docker/docker-sdk/src/main/java/com/jd/blockchain/SDK_Base_Demo.java
@@ -1,15 +1,21 @@
package com.jd.blockchain;
+import static com.jd.blockchain.SDKDemo_Constant.readChainCodes;
+import static com.jd.blockchain.transaction.ContractReturnValue.decode;
+
import com.jd.blockchain.crypto.HashDigest;
-import com.jd.blockchain.ledger.*;
+import com.jd.blockchain.ledger.BlockchainIdentity;
+import com.jd.blockchain.ledger.BlockchainKeyGenerator;
+import com.jd.blockchain.ledger.BlockchainKeypair;
+import com.jd.blockchain.ledger.PreparedTransaction;
+import com.jd.blockchain.ledger.TransactionResponse;
+import com.jd.blockchain.ledger.TransactionTemplate;
import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.client.GatewayServiceFactory;
import com.jd.blockchain.transaction.GenericValueHolder;
-import com.jd.blockchain.utils.Bytes;
import com.jd.chain.contract.TransferContract;
-import static com.jd.blockchain.SDKDemo_Constant.readChainCodes;
-import static com.jd.blockchain.transaction.ContractReturnValue.decode;
+import utils.Bytes;
public abstract class SDK_Base_Demo {
protected BlockchainKeypair adminKey;
diff --git a/deploy/docker/pom.xml b/deploy/docker/pom.xml
index 990104ec..66a9d3c2 100644
--- a/deploy/docker/pom.xml
+++ b/deploy/docker/pom.xml
@@ -3,15 +3,18 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- deploy-root
com.jd.blockchain
- 1.5.0-SNAPSHOT
+ deploy-root
+ 1.4.1.RELEASE
4.0.0
pom
docker
-
+
+
+ 1.4.1.RELEASE
+
docker-sdk
diff --git a/deploy/pom.xml b/deploy/pom.xml
index 18fb7491..862d42df 100644
--- a/deploy/pom.xml
+++ b/deploy/pom.xml
@@ -9,12 +9,11 @@
../project/parent
deploy-root
- 1.5.0-SNAPSHOT
+ 1.4.1.RELEASE
pom
- 1.5.0-SNAPSHOT
- 1.4.0.RELEASE
+ 1.4.1.RELEASE
diff --git a/framework b/framework
index 02331175..b60d7010 160000
--- a/framework
+++ b/framework
@@ -1 +1 @@
-Subproject commit 02331175672597cbd627396c74ece32bead3f4ce
+Subproject commit b60d70105418aaa44e03078393657433f354643f
diff --git a/libs/bft-smart b/libs/bft-smart
index f817655c..f27aaea6 160000
--- a/libs/bft-smart
+++ b/libs/bft-smart
@@ -1 +1 @@
-Subproject commit f817655c4632ca020411a403e4b7555b250c0dfb
+Subproject commit f27aaea6fce85edf73e35d4c25e30f324d4902cf
diff --git a/libs/binary-proto b/libs/binary-proto
new file mode 160000
index 00000000..19db4580
--- /dev/null
+++ b/libs/binary-proto
@@ -0,0 +1 @@
+Subproject commit 19db4580048ef610eeb965187970ad28e63b7223
diff --git a/libs/httpservice b/libs/httpservice
new file mode 160000
index 00000000..6af5fca3
--- /dev/null
+++ b/libs/httpservice
@@ -0,0 +1 @@
+Subproject commit 6af5fca352a2e0fb4def68988162b7a6fbadd81d
diff --git a/libs/kvdb b/libs/kvdb
index 87edd6f6..a2de1dda 160000
--- a/libs/kvdb
+++ b/libs/kvdb
@@ -1 +1 @@
-Subproject commit 87edd6f608331e74f749256aaef9ce60734caacb
+Subproject commit a2de1ddab83127add5099e42e657589af295e5db
diff --git a/libs/utils b/libs/utils
new file mode 160000
index 00000000..3886f068
--- /dev/null
+++ b/libs/utils
@@ -0,0 +1 @@
+Subproject commit 3886f0683748f18cd1b6b54a5b78fffc3935bdf4
diff --git a/samples/contract-samples/src/main/java/com/jdchain/samples/contract/SampleContractImpl.java b/samples/contract-samples/src/main/java/com/jdchain/samples/contract/SampleContractImpl.java
index b4492707..5777640c 100644
--- a/samples/contract-samples/src/main/java/com/jdchain/samples/contract/SampleContractImpl.java
+++ b/samples/contract-samples/src/main/java/com/jdchain/samples/contract/SampleContractImpl.java
@@ -9,7 +9,8 @@ import com.jd.blockchain.crypto.SignatureFunction;
import com.jd.blockchain.ledger.BlockchainKeypair;
import com.jd.blockchain.ledger.Event;
import com.jd.blockchain.ledger.TypedKVEntry;
-import com.jd.blockchain.utils.Bytes;
+
+import utils.Bytes;
/**
* 合约样例实现
diff --git a/samples/pom.xml b/samples/pom.xml
index dc762899..471df7b6 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -4,12 +4,11 @@
4.0.0
com.jd.blockchain
jdchain-samples
- 1.5.0-SNAPSHOT
+ 1.4.0.RELEASE
pom
- 1.4.0.RELEASE
- 1.5.0-SNAPSHOT
+ 1.4.1.RELEASE
diff --git a/samples/sdk-samples/pom.xml b/samples/sdk-samples/pom.xml
index 3f3070e3..4e03903e 100644
--- a/samples/sdk-samples/pom.xml
+++ b/samples/sdk-samples/pom.xml
@@ -58,11 +58,6 @@
peer
${core.version}
-
- com.jd.blockchain
- utils-common
- ${framework.version}
-
com.jd.blockchain
gateway
diff --git a/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/TestNet.java b/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/TestNet.java
index 4f70cbe9..a431b209 100644
--- a/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/TestNet.java
+++ b/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/TestNet.java
@@ -19,13 +19,15 @@ import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
import com.jd.blockchain.tools.initializer.PresetAnswerPrompter;
import com.jd.blockchain.tools.initializer.Prompter;
-import com.jd.blockchain.utils.concurrent.ThreadInvoker;
-import com.jd.blockchain.utils.io.FileUtils;
-import com.jd.blockchain.utils.net.NetworkAddress;
import com.jdchain.samples.sdk.testnet.GatewayRunner;
import com.jdchain.samples.sdk.testnet.NodeWebContext;
import com.jdchain.samples.sdk.testnet.PartNode;
import com.jdchain.samples.sdk.testnet.PeerServer;
+
+import utils.concurrent.ThreadInvoker;
+import utils.io.FileUtils;
+import utils.net.NetworkAddress;
+
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.Configurator;
import org.junit.Assert;
diff --git a/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/GatewayRunner.java b/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/GatewayRunner.java
index 0d7ab864..4d85c576 100644
--- a/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/GatewayRunner.java
+++ b/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/GatewayRunner.java
@@ -2,10 +2,13 @@ package com.jdchain.samples.sdk.testnet;
import com.jd.blockchain.gateway.GatewayConfigProperties;
import com.jd.blockchain.gateway.GatewayConfigProperties.KeyPairConfig;
+
+import utils.concurrent.ThreadInvoker;
+import utils.concurrent.ThreadInvoker.AsyncCallback;
+import utils.net.NetworkAddress;
+
import com.jd.blockchain.gateway.GatewayServerBooter;
-import com.jd.blockchain.utils.concurrent.ThreadInvoker;
-import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
-import com.jd.blockchain.utils.net.NetworkAddress;
+
import org.springframework.core.io.ClassPathResource;
import org.springframework.util.CollectionUtils;
diff --git a/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/NodeWebContext.java b/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/NodeWebContext.java
index 1bca1ebd..eaba367b 100644
--- a/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/NodeWebContext.java
+++ b/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/NodeWebContext.java
@@ -14,8 +14,10 @@ import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerInitProcess;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.LedgerInitializeWebController;
-import com.jd.blockchain.utils.concurrent.ThreadInvoker;
-import com.jd.blockchain.utils.net.NetworkAddress;
+
+import utils.concurrent.ThreadInvoker;
+import utils.net.NetworkAddress;
+
import org.springframework.boot.SpringApplication;
import org.springframework.context.ConfigurableApplicationContext;
diff --git a/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/PartNode.java b/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/PartNode.java
index 92ed6622..a0525b77 100644
--- a/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/PartNode.java
+++ b/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/PartNode.java
@@ -4,7 +4,8 @@ import com.jd.blockchain.crypto.AddressEncoding;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.ParticipantNode;
import com.jd.blockchain.ledger.ParticipantNodeState;
-import com.jd.blockchain.utils.Bytes;
+
+import utils.Bytes;
public class PartNode implements ParticipantNode {
diff --git a/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/PeerServer.java b/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/PeerServer.java
index e7228ac4..03ce6cbd 100644
--- a/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/PeerServer.java
+++ b/samples/sdk-samples/src/main/java/com/jdchain/samples/sdk/testnet/PeerServer.java
@@ -4,8 +4,9 @@ import com.jd.blockchain.ledger.core.LedgerManager;
import com.jd.blockchain.peer.PeerServerBooter;
import com.jd.blockchain.storage.service.DbConnectionFactory;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
-import com.jd.blockchain.utils.concurrent.ThreadInvoker;
-import com.jd.blockchain.utils.net.NetworkAddress;
+
+import utils.concurrent.ThreadInvoker;
+import utils.net.NetworkAddress;
public class PeerServer {
private NetworkAddress serviceAddress;
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 70d139e4..30146310 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
@@ -11,9 +11,11 @@ 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 utils.io.BytesUtils;
+import utils.io.FileUtils;
+
import org.junit.Assert;
import org.junit.Test;
diff --git a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/DataAccountSample.java b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/DataAccountSample.java
index ddece471..d5206147 100644
--- a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/DataAccountSample.java
+++ b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/DataAccountSample.java
@@ -5,7 +5,9 @@ import com.jd.blockchain.ledger.BlockchainKeypair;
import com.jd.blockchain.ledger.PreparedTransaction;
import com.jd.blockchain.ledger.TransactionResponse;
import com.jd.blockchain.ledger.TransactionTemplate;
-import com.jd.blockchain.utils.Bytes;
+
+import utils.Bytes;
+
import org.junit.Assert;
import org.junit.Test;
diff --git a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/EventSample.java b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/EventSample.java
index aedf7360..f5c114cf 100644
--- a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/EventSample.java
+++ b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/EventSample.java
@@ -8,8 +8,10 @@ import com.jd.blockchain.ledger.PreparedTransaction;
import com.jd.blockchain.ledger.SystemEvent;
import com.jd.blockchain.ledger.TransactionResponse;
import com.jd.blockchain.ledger.TransactionTemplate;
-import com.jd.blockchain.utils.Bytes;
-import com.jd.blockchain.utils.io.BytesUtils;
+
+import utils.Bytes;
+import utils.io.BytesUtils;
+
import org.junit.Assert;
import org.junit.Test;
diff --git a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/ParticipantSample.java b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/ParticipantSample.java
index 512609d2..be934d65 100644
--- a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/ParticipantSample.java
+++ b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/ParticipantSample.java
@@ -1,15 +1,8 @@
package com.jdchain.samples.sdk;
-import com.jd.blockchain.crypto.KeyGenUtils;
-import com.jd.blockchain.ledger.BlockchainKeyGenerator;
-import com.jd.blockchain.ledger.BlockchainKeypair;
-import com.jd.blockchain.ledger.PreparedTransaction;
-import com.jd.blockchain.ledger.TransactionResponse;
-import com.jd.blockchain.ledger.TransactionTemplate;
-import com.jd.blockchain.utils.codec.Base58Utils;
-import com.jd.blockchain.utils.http.converters.JsonResponseConverter;
-import com.jd.blockchain.utils.security.ShaUtils;
-import com.jd.blockchain.utils.web.model.WebResponse;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
@@ -19,8 +12,17 @@ import org.apache.http.message.BasicNameValuePair;
import org.junit.Assert;
import org.junit.Test;
-import java.util.ArrayList;
-import java.util.List;
+import com.jd.blockchain.crypto.KeyGenUtils;
+import com.jd.blockchain.ledger.BlockchainKeyGenerator;
+import com.jd.blockchain.ledger.BlockchainKeypair;
+import com.jd.blockchain.ledger.PreparedTransaction;
+import com.jd.blockchain.ledger.TransactionResponse;
+import com.jd.blockchain.ledger.TransactionTemplate;
+import com.jd.httpservice.converters.JsonResponseConverter;
+import com.jd.httpservice.utils.web.WebResponse;
+
+import utils.codec.Base58Utils;
+import utils.security.ShaUtils;
/**
* 参与方节点相关操作示例:
diff --git a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/QuerySample.java b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/QuerySample.java
index cc418c0e..f81142ba 100644
--- a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/QuerySample.java
+++ b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/QuerySample.java
@@ -22,8 +22,10 @@ import com.jd.blockchain.ledger.TransactionState;
import com.jd.blockchain.ledger.TypedKVEntry;
import com.jd.blockchain.ledger.UserInfo;
import com.jd.blockchain.ledger.UserPrivilegeSet;
-import com.jd.blockchain.utils.codec.Base58Utils;
-import com.jd.blockchain.utils.io.BytesUtils;
+
+import utils.codec.Base58Utils;
+import utils.io.BytesUtils;
+
import org.junit.Assert;
import org.junit.Test;
diff --git a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/SampleBase.java b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/SampleBase.java
index f4e417fa..e1206a69 100644
--- a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/SampleBase.java
+++ b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/SampleBase.java
@@ -8,7 +8,8 @@ import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.BlockchainKeypair;
import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.client.GatewayServiceFactory;
-import com.jd.blockchain.utils.codec.Base58Utils;
+
+import utils.codec.Base58Utils;
import java.util.Properties;
diff --git a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/UserSample.java b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/UserSample.java
index 502913a8..3c4c655f 100644
--- a/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/UserSample.java
+++ b/samples/sdk-samples/src/test/java/com/jdchain/samples/sdk/UserSample.java
@@ -7,7 +7,9 @@ import com.jd.blockchain.ledger.PreparedTransaction;
import com.jd.blockchain.ledger.TransactionPermission;
import com.jd.blockchain.ledger.TransactionResponse;
import com.jd.blockchain.ledger.TransactionTemplate;
-import com.jd.blockchain.utils.Bytes;
+
+import utils.Bytes;
+
import org.junit.Assert;
import org.junit.Test;