Browse Source

Merge branch 'release/1.2.0'

# Conflicts:
#	deploy/deploy-gateway/pom.xml
#	deploy/deploy-peer/pom.xml
#	deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh
#	samples/contract-samples/pom.xml
#	samples/sdk-samples/pom.xml
#	source/base/pom.xml
#	source/binary-proto/pom.xml
#	source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/BinaryProtocol.java
#	source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/PrimitiveType.java
#	source/consensus/consensus-bftsmart/pom.xml
#	source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/client/BftsmartMessageService.java
#	source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/service/BftsmartNodeServer.java
#	source/consensus/consensus-framework/pom.xml
#	source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ActionMessage.java
#	source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ConsensusSecurityException.java
#	source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ConsensusService.java
#	source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/OrderedAction.java
#	source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/UnorderedAction.java
#	source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/action/ActionResponseData.java
#	source/consensus/consensus-mq/pom.xml
#	source/consensus/pom.xml
#	source/contract/contract-framework/pom.xml
#	source/contract/contract-jvm/pom.xml
#	source/contract/contract-maven-plugin/pom.xml
#	source/contract/pom.xml
#	source/crypto/crypto-adv/pom.xml
#	source/crypto/crypto-classic/pom.xml
#	source/crypto/crypto-framework/pom.xml
#	source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/AddressEncoding.java
#	source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/AddressVersion.java
#	source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/CryptoKey.java
#	source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/PrivKey.java
#	source/crypto/crypto-pki/pom.xml
#	source/crypto/crypto-sm/pom.xml
#	source/crypto/pom.xml
#	source/deployment/pom.xml
#	source/gateway/pom.xml
#	source/gateway/src/main/java/com/jd/blockchain/gateway/GatewayConfiguration.java
#	source/gateway/src/main/java/com/jd/blockchain/gateway/GatewayServerBooter.java
#	source/gateway/src/main/java/com/jd/blockchain/gateway/web/GatewayWebSecurityConfigurer.java
#	source/gateway/src/main/java/com/jd/blockchain/gateway/web/TxProcessingController.java
#	source/gateway/src/main/resources/gateway.conf
#	source/gateway/src/test/java/test/com/jd/blockchain/gateway/data/HashDigestDeserializer.java
#	source/gateway/src/test/java/test/com/jd/blockchain/gateway/data/HashDigestSerializer.java
#	source/ledger/ledger-core/pom.xml
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ContractAccount.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ContractAccountSet.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/DataAccount.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/DataAccountSet.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerAdminDataset.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerQueryService.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/MerkleAccountSet.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/MerkleDataSet.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/Node.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ParticipantCertData.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/Peer.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/TransactionBatchProcessor.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/UserAccount.java
#	source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/UserAccountSet.java
#	source/ledger/ledger-model/pom.xml
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/Contract.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractEvent.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/EventHandle.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockRollbackException.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainEventType.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainIdentityData.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainKeyGenerator.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainKeypair.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/CodeDeployOperation.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractCodeDeployOperation.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataAccountKVSetOperation.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataAccountRegisterOperation.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataType.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataVersionConflictException.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DigitalSignature.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/EndpointRequest.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/HashAlgorithm.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/HashObject.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/Ledger.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerImpl.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitOperation.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/MagicNumber.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/NodeRequest.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/OperationArgument.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/PermissionType.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/RolesConfigureOperation.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/SignatureInfo.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/StateOpType.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/Transaction.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionRequestBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionResponse.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionRollbackException.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionTemplate.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserAuthorizeOperation.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserInfoSetOperation.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserRegisterOperation.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/setting/GatewayIncomingSetting.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/BlockchainOperationFactory.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/BlockchainQueryService.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractCodeDeployOpTemplate.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractCodeDeployOperationBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractCodeDeployOperationBuilderImpl.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOperationBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOperationBuilderImpl.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractInvocationProxyBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountKVSetOpTemplate.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountKVSetOperationBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountKVSetOperationBuilderImpl.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOpTemplate.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOperationBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOperationBuilderImpl.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DigitalSignatureBlob.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOpTemplate.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperationBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperationBuilderImpl.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/NewLedgerOpBlob.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PreparedTx.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PrivilegeSettingOperationBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PubKeyData.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/RolesConfigureOpTemplate.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/SecurityOperationBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/SignatureEncoding.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TransactionService.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestMessage.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxResponseMessage.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxTemplate.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserAuthorizeOpTemplate.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserRegisterOpTemplate.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserRegisterOperationBuilder.java
#	source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserRegisterOperationBuilderImpl.java
#	source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/BytesEncodingTest.java
#	source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/OpBlobTest.java
#	source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/SizeHeaderMaskTest.java
#	source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/TxContentBlobTest.java
#	source/ledger/ledger-rpc/pom.xml
#	source/ledger/pom.xml
#	source/manager/manager-booter/pom.xml
#	source/manager/manager-model/pom.xml
#	source/manager/manager-service/pom.xml
#	source/manager/manager-web/pom.xml
#	source/manager/pom.xml
#	source/peer/config/hosts.config
#	source/peer/config/system.config
#	source/peer/pom.xml
#	source/peer/src/main/java/com/jd/blockchain/peer/PeerConfiguration.java
#	source/peer/src/main/java/com/jd/blockchain/peer/consensus/BlockchainConsensusServiceImpl.java
#	source/peer/src/main/java/com/jd/blockchain/peer/consensus/ConsensusViewDefinition.java
#	source/peer/src/main/java/com/jd/blockchain/peer/web/LedgerQueryController.java
#	source/peer/src/main/java/com/jd/blockchain/peer/web/PeerWebSecurityConfiguration.java
#	source/peer/src/main/java/com/jd/blockchain/peer/web/PeerWebServerConfigurer.java
#	source/peer/src/test/java/test/com/jd/blockchain/peer/service/ConsensusViewDefinitionTest.java
#	source/peer/src/test/java/test/com/jd/blockchain/peer/service/LedgerInitCordinatorTest.java
#	source/peer/src/test/java/test/com/jd/blockchain/peer/web/ControllerTestConfiguration.java
#	source/peer/src/test/java/test/com/jd/blockchain/peer/web/LedgerInitializingControllerTest.java
#	source/peer/src/test/java/test/com/jd/blockchain/peer/web/LedgerInitializingTest.java
#	source/peer/src/test/java/test/com/jd/blockchain/peer/web/PeerKeyStorageServiceImpl.java
#	source/pom.xml
#	source/runtime/pom.xml
#	source/runtime/runtime-context/pom.xml
#	source/runtime/runtime-modular-booter/pom.xml
#	source/runtime/runtime-modular/pom.xml
#	source/sdk/pom.xml
#	source/sdk/sdk-base/pom.xml
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/AbstractBlockchainServiceFactory.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainEventHandle.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainEventListener.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainEventMessage.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainEventService.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainService.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainTransactionService.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/ManagementHttpService.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/PrivilegeSetting.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/TxCommiter.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/BlockchainServiceProxy.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/CodeDeployOperationBuilder.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/CodeInvokeOperationBuilder.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/HttpQueryServiceAdapter.java
#	source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/NodeSigningAppender.java
#	source/sdk/sdk-base/src/test/java/test/com/jd/blockchain/sdk/proxy/TxMessageTest.java
#	source/sdk/sdk-client/pom.xml
#	source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayIncomingInfo.java
#	source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayServiceFactory.java
#	source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/HttpConsensusService.java
#	source/storage/pom.xml
#	source/storage/storage-composite/pom.xml
#	source/storage/storage-redis/pom.xml
#	source/storage/storage-redis/src/main/java/com/jd/blockchain/storage/service/impl/redis/JedisProperties.java
#	source/storage/storage-redis/src/main/java/com/jd/blockchain/storage/service/impl/redis/RedisStorageService.java
#	source/storage/storage-redis/src/main/resources/META-INF/spring.factories
#	source/storage/storage-rocksdb/pom.xml
#	source/storage/storage-rocksdb/src/main/java/com/jd/blockchain/storage/service/impl/rocksdb/RocksDBStorageService.java
#	source/storage/storage-service/pom.xml
#	source/storage/storage-service/src/main/java/com/jd/blockchain/storage/service/VersioningKVStorage.java
#	source/test/pom.xml
#	source/test/test-consensus-client/pom.xml
#	source/test/test-consensus-client/src/main/java/test/perf/com/jd/blockchain/consensus/client/Settings.java
#	source/test/test-consensus-client/src/main/java/test/perf/com/jd/blockchain/consensus/client/WebConfiguration.java
#	source/test/test-consensus-client/src/main/resources/application.properties
#	source/test/test-consensus-node/config/bft-system.config
#	source/test/test-consensus-node/pom.xml
#	source/test/test-consensus-node/src/main/java/test/perf/com/jd/blockchain/consensus/node/Settings.java
#	source/test/test-consensus-node/src/main/java/test/perf/com/jd/blockchain/consensus/node/WebConfiguration.java
#	source/test/test-consensus-node/src/main/resources/application.properties
#	source/test/test-integration/pom.xml
#	source/test/test-ledger/pom.xml
#	source/tools/pom.xml
#	source/tools/tools-capability/pom.xml
#	source/tools/tools-initializer-booter/pom.xml
#	source/tools/tools-initializer/pom.xml
#	source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/DecisionRequestBodyConverter.java
#	source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/DecisionResponseConverter.java
#	source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/InitServiceExceptionHandler.java
#	source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/InitWebSecurityConfiguration.java
#	source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/InitWebServerConfiguration.java
#	source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitMessageConverter.java
#	source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/PermissionResponseConverter.java
#	source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/SignatureDigestRequestBodyConverter.java
#	source/tools/tools-initializer/src/main/resources/META-INF/spring.factories
#	source/tools/tools-initializer/src/main/resources/application.properties
#	source/tools/tools-keygen-booter/pom.xml
#	source/tools/tools-keygen/pom.xml
#	source/tools/tools-mocker/pom.xml
#	source/utils/.gitignore
#	source/utils/pom.xml
#	source/utils/utils-common/.gitignore
#	source/utils/utils-common/pom.xml
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/ArrayUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/AttributeMap.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/Attributes.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/BaseConstant.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/BusinessException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/DataEntry.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/Disposable.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/EmptyProperties.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/IllegalDataException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/IteratorWrapper.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/PathUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/PrimitiveUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/PropertiesUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/ReadonlyArrayListWrapper.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/ServiceFactory.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/codec/Base58Utils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/codec/DataDecodeException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/codec/HexUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/concurrent/AsyncFuture.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/concurrent/AsyncFutureListener.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/concurrent/CompletableAsyncFuture.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/concurrent/NamedThreadFactory.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/concurrent/RuntimeExecutionException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/concurrent/RuntimeInterruptedException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/concurrent/RuntimeTimeoutException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/concurrent/SyncFutureAdaptor.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/concurrent/ThreadUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/console/CommandConsole.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/console/CommondProcessor.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/decompiler/utils/DecompilerUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/event/DefaultExceptionHandle.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/event/EventMulticaster.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/event/ExceptionHandle.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/event/ExceptionLoggingHandle.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/event/RethrowExceptionHandler.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/hash/Hashing.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/hash/MurmurHash3.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/id/KeyGenerator.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/id/KeyGeneratorFactory.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/ByteArray.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/BytesBlob.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/BytesChunkReader.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/BytesChunkWriter.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/BytesEncoding.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/BytesReader.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/BytesUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/BytesWriter.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/EmptyInputStream.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/ForwardReadonlyInputStream.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/NumberMask.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/RuntimeIOException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/io/UnclosableOutputStream.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/net/NetworkAddress.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/net/NetworkException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/AESUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/AuthenticationException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/DESUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/DecryptionException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/Ed25519Utils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/EncryptionException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/KeyGenerationException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/KeyStoreException.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/KeyStoreUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/RSAKeyPair.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/RSAUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/RandomUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/RipeMD160Utils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/security/ShaUtils.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/transfer/AsyncSendable.java
#	source/utils/utils-common/src/main/java/com/jd/blockchain/utils/transfer/Sendable.java
#	source/utils/utils-common/src/test/java/test/my/utils/io/BytesEncodingTest.java
#	source/utils/utils-common/src/test/java/test/my/utils/io/BytesUtilsTest.java
#	source/utils/utils-common/src/test/java/test/my/utils/security/AESUtilsTest.java
#	source/utils/utils-common/src/test/java/test/my/utils/security/RSAUtilsTest.java
#	source/utils/utils-common/src/test/java/test/my/utils/security/RandomUtilsTest.java
#	source/utils/utils-common/src/test/java/test/my/utils/security/ShaUtilsTest.java
#	source/utils/utils-http/.gitignore
#	source/utils/utils-http/pom.xml
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/HttpAction.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/HttpMethod.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/HttpService.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/HttpServiceConsts.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/HttpServiceContext.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/HttpServiceException.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/HttpStatusException.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/PathParam.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/PropertiesConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/RequestBody.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/RequestBodyConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/RequestParam.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/RequestParamFilter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/RequestParamMap.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/ResponseBodyConverterFactory.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/ResponseConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/StringConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/ArgDefEntry.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/AuthorizationAlgs.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/AuthorizationHeader.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/AuthorizationHeaderResovler.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/CustomHeader.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/DefaultResponseConverterFactory.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/HttpServiceAgent.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/HttpServiceConnection.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/IllegalHttpServiceDefinitionException.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/LocalHttpDelete.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/NullRequestParamFilter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/PathParamDefinition.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/PathParamResolver.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/PathParamResolvers.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/PojoPropertiesConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/PropertiesConverterFactory.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestBodyDefinition.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestBodyResolver.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestBodyResolverComposite.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestBodyResolvers.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestHeader.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestParamDefinition.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestParamMapDefinition.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestParamResolver.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestParamResolvers.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestPathTemplate.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/RequestUtils.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/ServiceActionContext.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/ServiceConnection.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/ServiceConnectionManager.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/ServiceEndpoint.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/ServiceRequest.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/StringConverterFactory.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/agent/TypeAutoAdaptingRequestBodyConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/auth/Securities.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/ByteArrayBodyConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/ByteArrayResponseConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/EmptyBodyConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/InputStreamBodyConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/JsonBodyConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/JsonConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/JsonResponseConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/NullResponseConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/ObjectToStringBodyConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/ObjectToStringConverter.java
#	source/utils/utils-http/src/main/java/com/jd/blockchain/utils/http/converters/StringResponseConverter.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/BaseRequestSetting.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/ContentRequestSetting.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/CustomBooleanConverter.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/DataResponse.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/GetContentException.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/GetContentResponseConverter.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/GetContentResponseConverterWithException.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/HttpRequestCollector.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/HttpRequestInfo.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/HttpServiceAgentTest.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/HttpTestService.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/MultiRequestBodiesWithDefaultConverterTestService.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/OpType.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/RequestContent.java
#	source/utils/utils-http/src/test/java/test/my/utils/http/agent/TestData.java
#	source/utils/utils-serialize/pom.xml
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/binary/BinarySerializeUtils.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/ArrayMergeStrategy.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/GenericType.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/JSONBean.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/JSONBeanDeserializer.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/JSONBeanSerializer.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/JSONSerializeUtils.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/JSONString.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/JSONStringDeserializer.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/JSONStringSerializer.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/RuntimeDeserializer.java
#	source/utils/utils-serialize/src/main/java/com/jd/blockchain/utils/serialize/json/ToStringSerializer.java
#	source/utils/utils-serialize/src/test/java/test/my/utils/serialize/BinarySerializeUtilsTest.java
#	source/utils/utils-serialize/src/test/java/test/my/utils/serialize/Car.java
#	source/utils/utils-serialize/src/test/java/test/my/utils/serialize/Entity.java
#	source/utils/utils-serialize/src/test/java/test/my/utils/serialize/JSONBeanTest.java
#	source/utils/utils-serialize/src/test/java/test/my/utils/serialize/JSONSerializeUtilsTest.java
#	source/utils/utils-serialize/src/test/java/test/my/utils/serialize/Level.java
#	source/utils/utils-test/.gitignore
#	source/utils/utils-test/pom.xml
#	source/utils/utils-test/src/main/java/com/jd/blockchain/utils/test/JunitAssertMatcher.java
#	source/utils/utils-test/src/main/java/com/jd/blockchain/utils/test/ServletRegister.java
#	source/utils/utils-test/src/main/java/com/jd/blockchain/utils/test/WebBoot.java
#	source/utils/utils-test/src/main/java/com/jd/blockchain/utils/test/WebTest.java
#	source/utils/utils-web-server/.gitignore
#	source/utils/utils-web-server/pom.xml
#	source/utils/utils-web-server/src/main/java/com/jd/blockchain/utils/web/server/ServletSetting.java
#	source/utils/utils-web-server/src/main/java/com/jd/blockchain/utils/web/server/WebServer.java
#	source/utils/utils-web-server/src/main/java/com/jd/blockchain/utils/web/server/WebServerDemo.java
#	source/utils/utils-web-server/src/main/java/com/jd/blockchain/utils/web/server/WebServerException.java
#	source/utils/utils-web/.gitignore
#	source/utils/utils-web/pom.xml
#	source/utils/utils-web/src/main/java/com/jd/blockchain/utils/web/client/WebResponseConverter.java
#	source/utils/utils-web/src/main/java/com/jd/blockchain/utils/web/client/WebResponseConverterFactory.java
#	source/utils/utils-web/src/main/java/com/jd/blockchain/utils/web/client/WebServiceException.java
#	source/utils/utils-web/src/main/java/com/jd/blockchain/utils/web/model/BinaryMessageConverter.java
#	source/utils/utils-web/src/main/java/com/jd/blockchain/utils/web/model/ErrorCode.java
#	source/utils/utils-web/src/main/java/com/jd/blockchain/utils/web/model/JsonWebResponseMessageConverter.java
#	source/utils/utils-web/src/main/java/com/jd/blockchain/utils/web/model/WebResponse.java
tags/1.2.0^0
huanghaiquan 5 years ago
parent
commit
df94696564
100 changed files with 914 additions and 159 deletions
  1. +2
    -0
      .gitignore
  2. +21
    -0
      .gitmodules
  3. +53
    -45
      README.md
  4. +47
    -0
      build/build.sh
  5. +82
    -0
      build/env.sh
  6. +56
    -0
      build/pack.sh
  7. +144
    -0
      build/repo.sh
  8. +38
    -0
      build/test.sh
  9. +1
    -0
      core
  10. +0
    -0
      deploy/deploy-gateway/conf/application-gw.properties
  11. +9
    -8
      deploy/deploy-gateway/pom.xml
  12. +0
    -0
      deploy/deploy-gateway/src/main/java/com/jd/blockchain/gateway/boot/GatewayBooter.java
  13. +1
    -1
      deploy/deploy-gateway/src/main/resources/assembly.xml
  14. +0
    -0
      deploy/deploy-gateway/src/main/resources/config/gateway.conf
  15. +0
    -0
      deploy/deploy-gateway/src/main/resources/docs/api_doc_cn_1.3.MD
  16. +0
    -0
      deploy/deploy-gateway/src/main/resources/docs/api_doc_cn_1.3.html
  17. +0
    -0
      deploy/deploy-gateway/src/main/resources/docs/api_doc_cn_1.4.MD
  18. +2
    -2
      deploy/deploy-gateway/src/main/resources/scripts/shutdown.sh
  19. +1
    -1
      deploy/deploy-gateway/src/main/resources/scripts/startup.sh
  20. +99
    -0
      deploy/deploy-kvdb/pom.xml
  21. +54
    -0
      deploy/deploy-kvdb/src/main/resources/assembly.xml
  22. +11
    -0
      deploy/deploy-kvdb/src/main/resources/config/cluster.conf
  23. +15
    -0
      deploy/deploy-kvdb/src/main/resources/config/kvdb.conf
  24. +12
    -0
      deploy/deploy-kvdb/src/main/resources/script/kvdb-benchmark.sh
  25. +12
    -0
      deploy/deploy-kvdb/src/main/resources/script/kvdb-cli.sh
  26. +23
    -0
      deploy/deploy-kvdb/src/main/resources/script/start.sh
  27. +27
    -0
      deploy/deploy-kvdb/src/main/resources/script/stop.sh
  28. +2
    -0
      deploy/deploy-kvdb/src/main/resources/system/dblist
  29. +28
    -11
      deploy/deploy-peer/pom.xml
  30. +0
    -0
      deploy/deploy-peer/src/main/java/com/jd/blockchain/boot/peer/PeerBooter.java
  31. +5
    -3
      deploy/deploy-peer/src/main/resources/assembly.xml
  32. +0
    -0
      deploy/deploy-peer/src/main/resources/config/init/bftsmart.config
  33. +0
    -0
      deploy/deploy-peer/src/main/resources/config/init/ledger.init
  34. +1
    -0
      deploy/deploy-peer/src/main/resources/config/init/local.conf
  35. +0
    -0
      deploy/deploy-peer/src/main/resources/config/init/mq/ledger.init
  36. +0
    -0
      deploy/deploy-peer/src/main/resources/config/init/mq/local.conf
  37. +0
    -0
      deploy/deploy-peer/src/main/resources/config/init/mq/mq.config
  38. +0
    -0
      deploy/deploy-peer/src/main/resources/docs/imgs/browser.jpeg
  39. +0
    -0
      deploy/deploy-peer/src/main/resources/docs/imgs/keys.jpeg
  40. +0
    -0
      deploy/deploy-peer/src/main/resources/docs/imgs/structure.png
  41. +0
    -0
      deploy/deploy-peer/src/main/resources/docs/安装部署.MD
  42. +0
    -0
      deploy/deploy-peer/src/main/resources/docs/安装部署.html
  43. +0
    -0
      deploy/deploy-peer/src/main/resources/scripts/keygen.sh
  44. +0
    -0
      deploy/deploy-peer/src/main/resources/scripts/ledger-init.sh
  45. +0
    -0
      deploy/deploy-peer/src/main/resources/scripts/manager-shutdown.sh
  46. +0
    -0
      deploy/deploy-peer/src/main/resources/scripts/manager-startup.sh
  47. +2
    -2
      deploy/deploy-peer/src/main/resources/scripts/peer-shutdown.sh
  48. +2
    -3
      deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh
  49. +26
    -0
      deploy/pom.xml
  50. +1
    -0
      explorer
  51. +1
    -0
      framework
  52. +1
    -0
      kvdb
  53. +1
    -0
      libs/bft-smart
  54. +23
    -0
      pom.xml
  55. +1
    -0
      project
  56. +5
    -15
      samples/contract-samples/pom.xml
  57. +0
    -0
      samples/contract-samples/src/main/java/com/jd/blockchain/contract/ComplexContract.java
  58. +0
    -0
      samples/contract-samples/src/main/java/com/jd/blockchain/contract/ComplexContractImpl.java
  59. +0
    -0
      samples/contract-samples/src/main/java/com/jd/blockchain/contract/RandomContract.java
  60. +0
    -0
      samples/contract-samples/src/main/java/com/jd/blockchain/contract/RandomContractImpl.java
  61. +0
    -0
      samples/contract-samples/src/main/java/com/jd/blockchain/contract/ReadContract.java
  62. +0
    -0
      samples/contract-samples/src/main/java/com/jd/blockchain/contract/ReadContractImpl.java
  63. +0
    -0
      samples/contract-samples/src/main/java/com/jd/blockchain/contract/TransferContract.java
  64. +0
    -0
      samples/contract-samples/src/main/java/com/jd/blockchain/contract/TransferContractImpl.java
  65. +50
    -0
      samples/pom.xml
  66. +45
    -61
      samples/sdk-samples/pom.xml
  67. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/contract/ContractConfigure.java
  68. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContract.java
  69. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContract2.java
  70. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContractImpl.java
  71. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_ConfigureSecurity.java
  72. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Constant.java
  73. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Contract.java
  74. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_DataAccount.java
  75. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_EventListener.java
  76. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_InsertData.java
  77. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Params.java
  78. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_PrivilegeSetting.java
  79. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Query.java
  80. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterAccount.java
  81. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterTest.java
  82. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterUser.java
  83. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Tx_Persistance.java
  84. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_User.java
  85. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Base_Demo.java
  86. +8
    -5
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Contract_Check_Demo.java
  87. +2
    -2
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Contract_Demo.java
  88. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Contract_Random_Demo.java
  89. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_DataAccount_Demo.java
  90. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_InsertData_Demo.java
  91. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_RoleConfig_Demo.java
  92. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Threads_KvInsert_Demo.java
  93. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_User2Role_Demo.java
  94. +0
    -0
      samples/sdk-samples/src/main/java/com/jd/chain/contracts/ContractTestInf.java
  95. +0
    -0
      samples/sdk-samples/src/main/resources/contract-jdchain.jar
  96. +0
    -0
      samples/sdk-samples/src/main/resources/transfer.jar
  97. +0
    -0
      samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDKDemo_Contract_Test_.java
  98. +0
    -0
      samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java
  99. +0
    -0
      samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java
  100. +0
    -0
      samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java

+ 2
- 0
.gitignore View File

@@ -5,6 +5,8 @@


target/ target/


build/local.sh

*.bak *.bak
bin/ bin/
*.iml *.iml


+ 21
- 0
.gitmodules View File

@@ -0,0 +1,21 @@
[submodule "explorer"]
path = explorer
url = git@github.com:blockchain-jd-com/explorer.git
[submodule "libs/bft-smart"]
path = libs/bft-smart
url = git@github.com:blockchain-jd-com/bftsmart.git
[submodule "project"]
path = project
url = git@github.com:blockchain-jd-com/jdchain-project.git
[submodule "framework"]
path = framework
url = git@github.com:blockchain-jd-com/jdchain-framework.git
[submodule "core"]
path = core
url = git@github.com:blockchain-jd-com/jdchain-core.git
[submodule "test"]
path = test
url = git@github.com:blockchain-jd-com/jdchain-test.git
[submodule "kvdb"]
path = kvdb
url = git@github.com:blockchain-jd-com/jdchain-kvdb.git

+ 53
- 45
README.md View File

@@ -52,69 +52,77 @@ JD Chain 主要部署组件包括以下几种:
![](docs/images/deployment.jpg) ![](docs/images/deployment.jpg)




## 三、编译源代码
## 三、构建源代码


1. 安装 Maven 环境
1. 安装 Maven 环境


JD Chain 当前版本以 Java 语言开发,需要安装配置 JVM 和 Maven,JDK 版本不低于1.8 。(没有特殊要求,请按标准方法安装,此处不赘述) JD Chain 当前版本以 Java 语言开发,需要安装配置 JVM 和 Maven,JDK 版本不低于1.8 。(没有特殊要求,请按标准方法安装,此处不赘述)
2. 安装 Git 工具
2. 安装 Git 工具
为了能够执行 git clone 命令获取代码仓库。 (没有特殊要求,请按标准方法安装,此处不赘述) 为了能够执行 git clone 命令获取代码仓库。 (没有特殊要求,请按标准方法安装,此处不赘述)
3. 工程代码
3. 项目库说明

JD Chain 源代码包括 3 个代码仓库

- jdchain 项目库:
- URL:git@github.com:blockchain-jd-com/jdchain.git
- 说明:主项目库,包含说明文档、示例代码,用于集成构建和打包;
#### `主项目库包含以下 6 个子模块仓库,通过执行脚本 <主项目库根目录>/build/build.sh 便可以一键完成子模块的下载和整体的编译、测试和打包操作.`

- project 项目库:
- URL:git@github.com:blockchain-jd-com/jdchain-project.git
- 说明:公共的父项目,定义公共的依赖;
- framework 项目库:
- URL:git@github.com:blockchain-jd-com/jdchain-framework.git
- 说明:框架源码库,定义公共数据类型、框架、模块组件接口、SDK、SPI、工具;
- core 项目库:
- URL:git@github.com:blockchain-jd-com/jdchain-core.git
- 说明:模块组件实现的源码库;
- explorer 项目库:
- URL:git@github.com:blockchain-jd-com/explorer.git
- 说明:相关产品的前端模块的源码库;
- libs/bft-smart 项目库:
- URL:git@github.com:blockchain-jd-com/bftsmart.git
- 说明:BFT-SMaRT 共识算法的源码库;
- test 项目库:
- URL:git@github.com:blockchain-jd-com/jdchain-test.git
- 说明:集成测试用例的源码库;


4. 构建操作


JD Chain 源代码包括 3 个代码仓库


- jdchain
- 这是当前仓库,也是核心仓库,包含了共识节点、网关节点、SDK等一切部署组件。依赖于 explorer 和 bftsmart 这两个仓库先进行编译安装;
- explorer
- 这是区块链浏览器的前端Web页面的工程,需要编译成静态资源包,由网关节点集成到一起部署。
- 地址:git@github.com:blockchain-jd-com/explorer.git

- bftsmart
- 这是bftsmart共识协议的工程,需要先编译安装到本地 maven 仓库;


4. 命令操作

- 编译安装 explorer 到本地 maven 仓库;
```sh ```sh
$ git clone git@github.com:blockchain-jd-com/explorer.git explorer
$ git clone git@github.com:blockchain-jd-com/jdchain.git jdchain


$ cd explorer
$ cd jdchain


$ git checkout master
$ git checkout develop


$ mvn clean install
```
- 编译安装 bftsmart 到本地 maven 仓库;
- 需要手动先安装一个第三方包,位于仓库根目录下 lib/core-0.1.4.jar
```sh
$ git clone git@github.com:blockchain-jd-com/bftsmart.git bftsmart
$ chmod +x build/*.sh


$ cd bftsmart
# 执行完整的构建,包括执行”集成测试“和”打包“两部分;提供两个参数:
# --skipTests :跳过集成测试部分;
# --update :从远程仓库更新子模块。注意,采用此参数会导致子模块本地仓库丢失尚未 commit 的代码。
# 不附带此参数的情况下不会更新子模块仓库。
$ build/build.sh --update


$ git checkout master
$ mvn install:install-file -Dfile=lib/core-0.1.4.jar -DgroupId=com.yahoo.ycsb -DartifactId=core -Dversion=0.1.4 -Dpackaging=jar
# 跳过集成测试,直接编译和打包;
$ build/build.sh --skipTests


$ mvn clean install
# 只执行集成测试;
$ build/test.sh
``` ```
- 编译 jdchain 工程;
- 当编译完成后,共识节点的安装包位于 "仓库根目录"/source/deployment/deployment-peer/target/jdchain-peer-1.0.1.RELEASE.zip
- 当编译完成后,网关节点的安装包位于 "仓库根目录"/source/deployment/deployment-gateway/target/jdchain-gateway-1.0.1.RELEASE.zip

```sh
$ git clone git@github.com:blockchain-jd-com/jdchain.git jdchain


$ cd jdchain/source
5. jdchain 的安装包


$ git checkout master
当编译完成后,安装包位于主项目库的 deploy 目录中:


$ mvn clean package
```
- 共识节点的安装包:
- <主项目库根目录>/deploy/deploy-peer/target/jdchain-peer-**.zip
- 网关节点的安装包:
- <主项目库根目录>/deploy/deploy-gateway/target/jdchain-gateway-**.zip

+ 47
- 0
build/build.sh View File

@@ -0,0 +1,47 @@

#定义子脚本的错误返回命令
RTN="return"


#调用当前脚本目录下 env.sh 脚本,设置环境变量,处理当前传入参数;
source `dirname $0`/env.sh "$*"

echo "主目录:$BASE_DIR"

#判断是否忽略测试;
if [ $SKIP_TESTS == 1 ]
then
echo "跳过测试。。。"
else
#执行测试;
source $TEST_SHELL

#检查执行结果是否正常
ERR=$?
if [ $ERR != 0 ]
then
echo "构建过程中发生了集成测试错误[$ERR]!!终止构建!!"
exit $ERR
fi
#结束集成测试错误检查;
fi

#如果执行了测试,并且测试已经通过,那么在打包的过程中可以跳过执行单元测试;
if [ $SKIP_TESTS == 0 ]
then
# 可选值:1,2;
# 值为1时附加编译参数 -DskipTests=true;
# 值为2时附加编译参数 -Dmaven.test.skip=true
SKIP_TESTS=2
fi

#执行打包构建;
source $PACK_SHELL

#检查执行结果是否正常
ERR=$?
if [ $ERR != 0 ]
then
echo "构建过程中发生了打包错误[$ERR]!!终止构建!!"
exit $ERR
fi

+ 82
- 0
build/env.sh View File

@@ -0,0 +1,82 @@

#定义默认的子脚本错误退出命令;
if [ ! $RTN ]
then
#当以 source 命令调用子脚本时,只能用 return 命令终止子脚本的执行;
#当直接在 shell 中调用脚本或者 fork 等其它命令执行子脚本时,用 exit 命令终止脚本执行;
RTN="exit"
fi

if [ $ENV_SHELL ]
then
#如果已经设置过环境变量,则不再重复执行;
echo "略过初始化环境变量。。。"
${RTN}
fi

echo "---------------- 初始化环境变量 ----------------"

#主代码库的根目录
BASE_DIR=$(cd `dirname $0`/..; pwd)

#标记环境变量脚本;
ENV_SHELL=$BASE_DIR/build/env.sh

#执行代码库更新的脚本;
UPDATE_SHELL=$BASE_DIR/build/repo.sh

#执行测试的脚本;
TEST_SHELL=$BASE_DIR/build/test.sh

#执行构建打包产品的脚本;
PACK_SHELL=$BASE_DIR/build/pack.sh

#框架工程的Git仓库的根目录
FRAMEWORK_DIR=$BASE_DIR/framework

#核心实现工程的Git仓库的根目录
CORE_DIR=$BASE_DIR/core

#打包工程的Git仓库的根目录
DEPLOY_DIR=$BASE_DIR/deploy

#测试工程的Git仓库的根目录
TEST_DIR=$BASE_DIR/test

#初始化参数:是否略过测试步骤;
SKIP_TESTS=0

#初始化参数:是否略过子模块的更新;默认值:1-忽略;
SKIP_SUBMODULES_UPDATE=1

#初始化参数:是否将仓库采用公开配置(即覆盖本地化配置);
CONFIG_REPO_PUBLIC=0

#检查输入参数
for i in $*; do
case $i in
"--skipTests")
#跳过测试;
echo "收到参数 --skipTests 指示跳过测试环节。。。"

SKIP_TESTS=1
;;
"--update")
#跳过更新子模块;
echo "收到参数 --update 指示跳过子模块源码更新环节。。。"

SKIP_SUBMODULES_UPDATE=0
;;
"--public")
#仓库采用公开配置;
echo "收到参数 --public 指示仓库采用公开配置。。。"

CONFIG_REPO_PUBLIC=1
;;

esac
done

echo "---------------- 完成环境变量初始化 ----------------"



+ 56
- 0
build/pack.sh View File

@@ -0,0 +1,56 @@


#调用当前脚本目录下 env.sh 脚本,设置环境变量,处理当前传入参数;
if [ ! $ENV_SHELL ]
then
source `dirname $0`/env.sh "$*"
fi

# 更新代码库;
source $UPDATE_SHELL

#检查执行结果是否正常
ERR=$?
if [ $ERR != 0 ]
then
echo "更新代码库时发生了错误[$ERR]!!终止打包!!"
${RTN} $ERR
fi


echo "--------------- 开始编译打包 ---------------"

cd $DEPLOY_DIR
echo "当前目录:`pwd`"

#初始化变量 SKIP_TESTS;
if [ ! $SKIP_TESTS ]
then
SKIP_TESTS=0
fi

CMD="mvn clean package"

if [ $SKIP_TESTS == 1 ]
then
echo "编译参数:-DskipTests=true"
CMD="$CMD -DskipTests=true"
fi
if [ $SKIP_TESTS == 2 ]
then
echo "编译参数:-Dmaven.test.skip=true"
CMD="$CMD -Dmaven.test.skip=true"
fi

echo "执行命令:$CMD"
${CMD}

#检查执行结果是否正常
ERR=$?
if [ $ERR != 0 ]
then
echo "编译打包过程中发生了错误[$ERR]!!终止打包!!"
${RTN} $ERR
fi

echo "--------------- 完成编译打包 ---------------"

+ 144
- 0
build/repo.sh View File

@@ -0,0 +1,144 @@

#调用当前脚本目录下 env.sh 脚本,设置环境变量,处理当前传入参数;
if [ ! $ENV_SHELL ]
then
source `dirname $0`/env.sh "$*"
fi

echo ""

echo "切换到主库根目录。。。"
cd $BASE_DIR
pwd

#先执行初始化; 注:此命令只在 .git/config 文件中没有相应子模块的配置时才生效,重复执行并不会更改已有的配置;
git submodule init

echo ""

#根据本地仓库的 .git 目录下是否存在 local.sh 脚本判断是否在更新子模块的代码库之前执行本地化配置;
echo "检查是否执行子模块的本地化配置。。。"
#判断本地化配置脚本是否存在;
LOCAL_CONFIG="$BASE_DIR/.git/local.config"

LOCALIZED=0
if [ -f $LOCAL_CONFIG -a $CONFIG_REPO_PUBLIC == 0 ]
then
#执行子模块的本地化配置,将子模块的远程仓库地址指向本地;
echo "---------------- 执行仓库的本地化配置 ----------------"
#解析本地配置
KEYS=($(cat $LOCAL_CONFIG | awk -F '=' 'length($1)>0 { print $1}'))
VALUES=($(cat $LOCAL_CONFIG | awk -F '=' 'length($2)>0 { print $2}'))
#匹配子模块 URL 配置名称的正则表达式
# REG="submodule[\.].*[\.]url"

#判断本地配置是否为空;
echo "共有 ${#KEYS[@]} 项本地配置。。。"
if [ ${#KEYS[@]} -gt 0 ]
then
for ((i=0; i<${#KEYS[@]}; i++));
do
#执行本地化配置;
echo "[$i]: git config ${KEYS[i]} ${VALUES[i]}"
git config ${KEYS[i]} ${VALUES[i]}

#检查执行结果是否正常
ERR=$?
if [ $ERR != 0 ]
then
echo "执行仓库的本地化配置的过程中发生了错误[$ERR]!!终止构建!!"
${RTN} $ERR
fi
done
LOCALIZED=1
fi
echo "---------------- 完成执行仓库的本地化配置 ----------------"
echo ""
fi


# 如果没有进行仓库的本地化配置,则将仓库设置为公开配置;
cd $BASE_DIR

if [ $LOCALIZED == 0 ]
then
echo "---------------- 执行仓库的公共配置 ----------------"

echo "同步子模块的公共配置。。。"
git submodule sync

# 更新远程仓库地址;
git config remote.origin.url git@github.com:blockchain-jd-com/jdchain.git
echo "---------------- 完成执行仓库的公共配置 ----------------"
echo ""
fi


#同步主库的远程仓库 origin 的推送地址;
REMOTE_ORIGIN_URL=$(git config --get remote.origin.url)
git config remote.origin.pushurl $REMOTE_ORIGIN_URL

echo "远程仓库的地址更新为:"$REMOTE_ORIGIN_URL
echo ""

#同步更新子模块的远程仓库 origin 的地址;
echo "---------------- 更新子模块的远程仓库地址 ----------------"
# 子模块名称列表;

SUBMODULES=$(git submodule | awk '{print $2}')
for m in $SUBMODULES;
do
SUBMODULE_URL=$(git config --get submodule.$m.url)
echo "模块[$m].URL="$SUBMODULE_URL

cd $BASE_DIR/$m

git config remote.origin.url $SUBMODULE_URL
git config remote.origin.pushurl $SUBMODULE_URL

cd $BASE_DIR
done

#检查是否要跳过子模块更新环节;
if [ $SKIP_SUBMODULES_UPDATE == 1 ]
then
echo "跳过子模块代码更新操作。。。[$RTN]"
${RTN}
fi

#初始化变量 SUBMODULES_UPDATED
if [ ! $SUBMODULES_UPDATED ]
then
SUBMODULES_UPDATED=0
fi

if [ $SUBMODULES_UPDATED == 1 ]
then
echo "代码库已经最新,跳过更新操作。。。"
${RTN}
fi

# 更新子模块代码库
echo "---------------- 更新子模块代码库 ----------------"
cd $BASE_DIR
echo "git submodule update --recursive --progress --jobs 6"
git submodule update --recursive --progress --jobs 6

#检查执行结果是否正常
ERR=$?
if [ $ERR != 0 ]
then
echo "更新子模块代码库时发生了错误!!返回错误码:$ERR"
${RTN} $ERR
fi

#标记代码已经更新;
SUBMODULES_UPDATED=1

echo "---------------- 完成子模块代码库更新 ----------------"

echo ""

+ 38
- 0
build/test.sh View File

@@ -0,0 +1,38 @@
#定义子脚本的错误返回命令
RTN="return"

#调用当前脚本目录下 env.sh 脚本,设置环境变量,处理当前传入参数;
if [ ! $ENV_SHELL ]
then
source `dirname $0`/env.sh "$*"
fi

# 更新代码库;
source $UPDATE_SHELL

#检查执行结果是否正常
ERR=$?
if [ $ERR != 0 ]
then
echo "更新代码库时发生了错误[$ERR]!!终止测试!! [$RTN]"
${RTN} $ERR
fi


echo "---------------- 开始集成测试 ----------------"

cd $TEST_DIR
echo "当前目录:`pwd`"

echo "执行命令:mvn clean package"
mvn clean package

#检查执行结果是否正常
ERR=$?
if [ $ERR != 0 ]
then
echo "集成测试过程中发生了错误[$ERR]!!终止测试!! [$RTN]"
${RTN} $ERR
fi

echo "---------------- 完成集成测试 ----------------"

+ 1
- 0
core

@@ -0,0 +1 @@
Subproject commit 5afafb536796160f0f6644c7955e0dc56632d141

source/deployment/deployment-gateway/conf/application-gw.properties → deploy/deploy-gateway/conf/application-gw.properties View File


source/deployment/deployment-gateway/pom.xml → deploy/deploy-gateway/pom.xml View File

@@ -4,30 +4,31 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>deployment</artifactId>
<version>1.1.4.RELEASE</version>
<artifactId>deploy-root</artifactId>
<version>1.2.0.RELEASE</version>
</parent> </parent>
<artifactId>deployment-gateway</artifactId>
<artifactId>deploy-gateway</artifactId>


<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>gateway</artifactId> <artifactId>gateway</artifactId>
<version>${project.version}</version>
<version>${core.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>consensus-bftsmart</artifactId> <artifactId>consensus-bftsmart</artifactId>
<version>${project.version}</version>
<version>${core.version}</version>
</dependency> </dependency>


<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>consensus-mq</artifactId> <artifactId>consensus-mq</artifactId>
<version>${project.version}</version>
<version>${core.version}</version>
</dependency> </dependency>


<dependency>
<!-- <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>crypto-classic</artifactId> <artifactId>crypto-classic</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
@@ -36,7 +37,7 @@
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>crypto-sm</artifactId> <artifactId>crypto-sm</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency>
</dependency> -->
</dependencies> </dependencies>


<build> <build>

source/deployment/deployment-gateway/src/main/java/com/jd/blockchain/gateway/boot/GatewayBooter.java → deploy/deploy-gateway/src/main/java/com/jd/blockchain/gateway/boot/GatewayBooter.java View File


source/deployment/deployment-gateway/src/main/resources/assembly.xml → deploy/deploy-gateway/src/main/resources/assembly.xml View File

@@ -31,7 +31,7 @@
<useProjectArtifact>true</useProjectArtifact> <useProjectArtifact>true</useProjectArtifact>
<outputDirectory>lib</outputDirectory> <outputDirectory>lib</outputDirectory>
<includes> <includes>
<include>com.jd.blockchain:deployment-gateway</include>
<include>com.jd.blockchain:deploy-gateway</include>
</includes> </includes>
</dependencySet> </dependencySet>
</dependencySets> </dependencySets>

source/deployment/deployment-gateway/src/main/resources/config/gateway.conf → deploy/deploy-gateway/src/main/resources/config/gateway.conf View File


source/deployment/deployment-gateway/src/main/resources/docs/api_doc_cn_1.3.MD → deploy/deploy-gateway/src/main/resources/docs/api_doc_cn_1.3.MD View File


source/deployment/deployment-gateway/src/main/resources/docs/api_doc_cn_1.3.html → deploy/deploy-gateway/src/main/resources/docs/api_doc_cn_1.3.html View File


source/deployment/deployment-gateway/src/main/resources/docs/api_doc_cn_1.4.MD → deploy/deploy-gateway/src/main/resources/docs/api_doc_cn_1.4.MD View File


source/deployment/deployment-gateway/src/main/resources/scripts/shutdown.sh → deploy/deploy-gateway/src/main/resources/scripts/shutdown.sh View File

@@ -15,11 +15,11 @@ if [ -f "$PID_LOG" ]; then
if [[ $PID_LINE == *GW_BOOT_PID* ]]; then if [[ $PID_LINE == *GW_BOOT_PID* ]]; then
LOG_PID=$(echo $PID_LINE | cut -d "=" -f 2 | cut -d "[" -f 2 | cut -d "]" -f 1) LOG_PID=$(echo $PID_LINE | cut -d "=" -f 2 | cut -d "[" -f 2 | cut -d "]" -f 1)
echo "Last Gateway Boot PID = $LOG_PID ..." echo "Last Gateway Boot PID = $LOG_PID ..."
PID=`ps -ef | grep deployment-gateway | grep $LOG_PID | grep -v grep | awk '{print $2}'`
PID=`ps -ef | grep deploy-gateway- | grep $LOG_PID | grep -v grep | awk '{print $2}'`
fi fi
#启动文件不存在则直接通过PS进行过滤 #启动文件不存在则直接通过PS进行过滤
else else
PID=`ps -ef | grep $BOOT_HOME/lib/deployment-gateway | grep -v grep | awk '{print $2}'`
PID=`ps -ef | grep $BOOT_HOME/lib/deploy-gateway- | grep -v grep | awk '{print $2}'`
fi fi


#通过Kill命令将进程杀死 #通过Kill命令将进程杀死

source/deployment/deployment-gateway/src/main/resources/scripts/startup.sh → deploy/deploy-gateway/src/main/resources/scripts/startup.sh View File

@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash


HOME=$(cd `dirname $0`;cd ../; pwd) HOME=$(cd `dirname $0`;cd ../; pwd)
GATEWAY=$(ls $HOME/lib | grep deployment-gateway-)
GATEWAY=$(ls $HOME/lib | grep deploy-gateway-)
PROC_INFO=$HOME/lib/$GATEWAY" -c "$HOME/config/gateway.conf PROC_INFO=$HOME/lib/$GATEWAY" -c "$HOME/config/gateway.conf
#echo $PROC_INFO #echo $PROC_INFO
#get PID #get PID

+ 99
- 0
deploy/deploy-kvdb/pom.xml View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<parent>
<artifactId>deploy-root</artifactId>
<groupId>com.jd.blockchain</groupId>
<version>1.2.0.RELEASE</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>deploy-kvdb</artifactId>
<version>1.0.0.RELEASE</version>

<dependencies>

<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>kvdb-protocol</artifactId>
<version>${version}</version>
</dependency>

<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>kvdb-engine</artifactId>
<version>${version}</version>
</dependency>

<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>kvdb-server</artifactId>
<version>${version}</version>
</dependency>

<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>kvdb-cli</artifactId>
<version>${version}</version>
</dependency>

<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>kvdb-benchmark</artifactId>
<version>${version}</version>
</dependency>

<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>kvdb-client</artifactId>
<version>${version}</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>kvdb</finalName>
<descriptors>
<descriptor>src/main/resources/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>

<!-- 生成SHA-256校验文件 -->
<plugin>
<groupId>net.nicoulaj.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<goals>
<goal>artifacts</goal>
</goals>
</execution>
</executions>
<configuration>
<algorithms>
<algorithm>SHA-256</algorithm> <!--采用SHA-256算法,还支持其他算法-->
</algorithms>
<file>${project.basedir}/target/deployment-kvdb-${project.version}.zip</file><!--给zip文件进行加密-->
<xmlSummary>true</xmlSummary><!--生成XML格式的md5文件-->
<xmlSummaryFile>${project.basedir}/target/SHA-256.xml</xmlSummaryFile>
</configuration>
</plugin>
</plugins>
</build>
</project>

+ 54
- 0
deploy/deploy-kvdb/src/main/resources/assembly.xml View File

@@ -0,0 +1,54 @@
<?xml version='1.0' encoding='UTF-8'?>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0
http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>${project.version}</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/main/resources/script</directory>
<outputDirectory>bin</outputDirectory>
<lineEnding>unix</lineEnding>
</fileSet>
<fileSet>
<directory>src/main/resources/config</directory>
<outputDirectory>config</outputDirectory>
<lineEnding>unix</lineEnding>
</fileSet>
<fileSet>
<directory>src/main/resources/system</directory>
<outputDirectory>system</outputDirectory>
<lineEnding>unix</lineEnding>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<unpack>false</unpack>
<useProjectArtifact>true</useProjectArtifact>
<outputDirectory>libs</outputDirectory>
</dependencySet>

</dependencySets>
<moduleSets>
<moduleSet>
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>com.jd.blockchain:kvdb-engine</include>
<include>com.jd.blockchain:kvdb-benchmark</include>
<include>com.jd.blockchain:kvdb-client</include>
<include>com.jd.blockchain:kvdb-protocol</include>
<include>com.jd.blockchain:kvdb-cli</include>
<include>com.jd.blockchain:kvdb-server</include>
</includes>
<binaries>
<outputDirectory>libs</outputDirectory>
<unpack>false</unpack>
</binaries>
</moduleSet>
</moduleSets>

</assembly>

+ 11
- 0
deploy/deploy-kvdb/src/main/resources/config/cluster.conf View File

@@ -0,0 +1,11 @@
# 数据库集群的分片数,每一个分片都赋予唯一的编号,分片编号最小为 0,所有分片的编号必须连续递增
#cluster.test1.partitions=2
# 数据库集群 ‘<name>’ 的第 1 个分片的数据库实例地址(URL格式);
#cluster.test1.0=kvdb://localhost:7078/test1
# 数据库集群 ‘<name>’ 的第 2 个分片的数据库实例地址(URL格式);
#cluster.test1.1=kvdb://localhost:7079/test1

# 指定多个不同的集群
#cluster.test2.partitions=2
#cluster.test2.0=kvdb://localhost:7078/test2
#cluster.test2.1=kvdb://localhost:7079/test2

+ 15
- 0
deploy/deploy-kvdb/src/main/resources/config/kvdb.conf View File

@@ -0,0 +1,15 @@
# 数据库服务的本机监听地址;
server.host=0.0.0.0

# 数据库服务的本机监听端口;
server.port=7078

# 管理控制台的端口;
# 注:管理控制台总是绑定到环回地址 127.0.0.1,只允许本机访问;
manager.port=7060

# 数据库实例默认的根目录
dbs.rootdir=../dbs

# 数据库实例默认的本地分区数
dbs.partitions=4

+ 12
- 0
deploy/deploy-kvdb/src/main/resources/script/kvdb-benchmark.sh View File

@@ -0,0 +1,12 @@
#!/bin/bash

HOME=$(cd `dirname $0`;cd ../; pwd)
KVDB=$(ls $HOME/libs | grep kvdb-benchmark)
JVM_SET="-Xmx2g -Xms2g"
LOG_SET="-Dlogging.path="$HOME/logs" -Dlogging.level=error"
PROC_INFO=$HOME/libs/$KVDB
if [ ! -n "$KVDB" ]; then
echo "Can not find kvdb-benchmark !!!"
else
java -jar $LOG_SET $JVM_SET $PROC_INFO $*
fi

+ 12
- 0
deploy/deploy-kvdb/src/main/resources/script/kvdb-cli.sh View File

@@ -0,0 +1,12 @@
#!/bin/bash

HOME=$(cd `dirname $0`;cd ../; pwd)
KVDB=$(ls $HOME/libs | grep kvdb-cli)
JVM_SET="-Xmx2g -Xms2g"
LOG_SET="-Dlogging.path="$HOME/logs" -Dlogging.level.root=error"
PROC_INFO=$HOME/libs/$KVDB
if [ ! -n "$KVDB" ]; then
echo "Can not find kvdb-cli !!!"
else
java -jar $LOG_SET $JVM_SET $PROC_INFO $*
fi

+ 23
- 0
deploy/deploy-kvdb/src/main/resources/script/start.sh View File

@@ -0,0 +1,23 @@
#!/bin/bash

HOME=$(cd `dirname $0`;cd ../; pwd)
KVDB=$(ls $HOME/libs | grep kvdb-server)
JVM_SET="-Xmx2g -Xms2g"
PROC_INFO=$HOME/libs/$KVDB" -home "$HOME
LOG_SET="-Dlogging.path="$HOME/logs" -Dlogging.level=error"
#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
fi
if [ ! -n "$KVDB" ]; then
echo "Can not find kvdb-server !!!"
else
nohup java -jar $LOG_SET $JVM_SET $PROC_INFO $* >/dev/null 2>&1 &

echo $! > $HOME/system/pid
fi

+ 27
- 0
deploy/deploy-kvdb/src/main/resources/script/stop.sh View File

@@ -0,0 +1,27 @@
#!/bin/bash

#启动Home路径
HOME=$(cd `dirname $0`;cd ../; pwd)

#进程启动后PID.log所在路径
PID_LOG=$HOME/system/pid

#从启动文件中读取PID
if [ -f "$PID_LOG" ]; then
# File exist
echo "Read PID From File:[$PID_LOG] ..."
PID=`sed -n '$p' $PID_LOG`
#启动文件不存在则直接通过PS进行过滤
else
PID=`ps -ef | grep $HOME/libs/kvdb-server | grep -v grep | awk '{print $2}'`
fi

#通过Kill命令将进程杀死
if [ -z "$PID" ]; then
echo "Unable to find kvdb PID. stop aborted."
else
echo "Start to kill PID = $PID ..."
kill -9 $PID
echo "kvdb has been stopped ..."
echo "" > $PID_LOG
fi

+ 2
- 0
deploy/deploy-kvdb/src/main/resources/system/dblist View File

@@ -0,0 +1,2 @@
#通过配置enable为true可以在kvdb-server启动时创建或加载指定数据库
#db.test1.enable=true

source/deployment/deployment-peer/pom.xml → deploy/deploy-peer/pom.xml View File

@@ -4,33 +4,33 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>deployment</artifactId>
<version>1.1.4.RELEASE</version>
<artifactId>deploy-root</artifactId>
<version>1.2.0.RELEASE</version>
</parent> </parent>
<artifactId>deployment-peer</artifactId>
<artifactId>deploy-peer</artifactId>


<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>peer</artifactId> <artifactId>peer</artifactId>
<version>${project.version}</version>
<version>${core.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>runtime-modular</artifactId> <artifactId>runtime-modular</artifactId>
<version>${project.version}</version>
<version>${core.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>runtime-modular-booter</artifactId> <artifactId>runtime-modular-booter</artifactId>
<version>${project.version}</version>
<version>${core.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>manager-booter</artifactId> <artifactId>manager-booter</artifactId>
<version>${project.version}</version>
<version>${core.version}</version>
</dependency> </dependency>
<dependency>
<!-- <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>storage-composite</artifactId> <artifactId>storage-composite</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
@@ -39,16 +39,33 @@
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>storage-service</artifactId> <artifactId>storage-service</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency>
</dependency> -->
<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>storage-redis</artifactId> <artifactId>storage-redis</artifactId>
<version>${project.version}</version>
<version>${core.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>storage-rocksdb</artifactId> <artifactId>storage-rocksdb</artifactId>
<version>${project.version}</version>
<version>${core.version}</version>
</dependency>
<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>storage-kvdb</artifactId>
<version>${core.version}</version>
</dependency>

<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>tools-initializer-booter</artifactId>
<version>${core.version}</version>
</dependency>

<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>storage-service</artifactId>
<version>${core.version}</version>
</dependency> </dependency>


<!-- <dependency> <groupId>com.jd.blockchain</groupId> <artifactId>gateway</artifactId> <!-- <dependency> <groupId>com.jd.blockchain</groupId> <artifactId>gateway</artifactId>

source/deployment/deployment-peer/src/main/java/com/jd/blockchain/boot/peer/PeerBooter.java → deploy/deploy-peer/src/main/java/com/jd/blockchain/boot/peer/PeerBooter.java View File


source/deployment/deployment-peer/src/main/resources/assembly.xml → deploy/deploy-peer/src/main/resources/assembly.xml View File

@@ -32,14 +32,15 @@
<outputDirectory>system</outputDirectory> <outputDirectory>system</outputDirectory>
<includes> <includes>
<include>com.jd.blockchain:ledger-core</include> <include>com.jd.blockchain:ledger-core</include>
<include>com.jd.blockchain:storage-service</include>
<!-- <include>com.jd.blockchain:storage-service</include>-->
<include>com.jd.blockchain:storage-rocksdb</include> <include>com.jd.blockchain:storage-rocksdb</include>
<include>com.jd.blockchain:storage-redis</include> <include>com.jd.blockchain:storage-redis</include>
<include>com.jd.blockchain:storage-kvdb</include>
<include>com.jd.blockchain:storage-composite</include> <include>com.jd.blockchain:storage-composite</include>
<include>com.jd.blockchain:runtime-modular</include> <include>com.jd.blockchain:runtime-modular</include>
<include>com.jd.blockchain:runtime-modular-booter</include> <include>com.jd.blockchain:runtime-modular-booter</include>
<include>com.jd.blockchain:peer</include> <include>com.jd.blockchain:peer</include>
<include>com.jd.blockchain:deployment-peer</include>
<include>com.jd.blockchain:deploy-peer</include>
</includes> </includes>
</dependencySet> </dependencySet>
<dependencySet> <dependencySet>
@@ -60,9 +61,10 @@
<outputDirectory>libs</outputDirectory> <outputDirectory>libs</outputDirectory>
<excludes> <excludes>
<exclude>com.jd.blockchain:ledger-core</exclude> <exclude>com.jd.blockchain:ledger-core</exclude>
<exclude>com.jd.blockchain:storage-service</exclude>
<!-- <exclude>com.jd.blockchain:storage-service</exclude>-->
<exclude>com.jd.blockchain:storage-rocksdb</exclude> <exclude>com.jd.blockchain:storage-rocksdb</exclude>
<exclude>com.jd.blockchain:storage-redis</exclude> <exclude>com.jd.blockchain:storage-redis</exclude>
<exclude>com.jd.blockchain:storage-kvdb</exclude>
<exclude>com.jd.blockchain:storage-composite</exclude> <exclude>com.jd.blockchain:storage-composite</exclude>
<exclude>com.jd.blockchain:runtime-modular</exclude> <exclude>com.jd.blockchain:runtime-modular</exclude>
<exclude>com.jd.blockchain:runtime-modular-booter</exclude> <exclude>com.jd.blockchain:runtime-modular-booter</exclude>

source/deployment/deployment-peer/src/main/resources/config/init/bftsmart.config → deploy/deploy-peer/src/main/resources/config/init/bftsmart.config View File


source/deployment/deployment-peer/src/main/resources/config/init/ledger.init → deploy/deploy-peer/src/main/resources/config/init/ledger.init View File


source/deployment/deployment-peer/src/main/resources/config/init/local.conf → deploy/deploy-peer/src/main/resources/config/init/local.conf View File

@@ -17,6 +17,7 @@ ledger.binding.out=../
#账本数据库的连接字符 #账本数据库的连接字符
#rocksdb数据库连接格式:rocksdb://{path},例如:rocksdb:///export/App08/peer/rocks.db/rocksdb0.db #rocksdb数据库连接格式:rocksdb://{path},例如:rocksdb:///export/App08/peer/rocks.db/rocksdb0.db
#redis数据库连接格式:redis://{ip}:{prot}/{db},例如:redis://127.0.0.1:6379/0 #redis数据库连接格式:redis://{ip}:{prot}/{db},例如:redis://127.0.0.1:6379/0
#kvdb数据库连接格式:kvdb://{ip}:{prot}/{db},例如:kvdb://127.0.0.1:7078/test
ledger.db.uri= ledger.db.uri=


#账本数据库的连接口令 #账本数据库的连接口令

source/deployment/deployment-peer/src/main/resources/config/init/mq/ledger.init → deploy/deploy-peer/src/main/resources/config/init/mq/ledger.init View File


source/deployment/deployment-peer/src/main/resources/config/init/mq/local.conf → deploy/deploy-peer/src/main/resources/config/init/mq/local.conf View File


source/deployment/deployment-peer/src/main/resources/config/init/mq/mq.config → deploy/deploy-peer/src/main/resources/config/init/mq/mq.config View File


source/deployment/deployment-peer/src/main/resources/docs/imgs/browser.jpeg → deploy/deploy-peer/src/main/resources/docs/imgs/browser.jpeg View File


source/deployment/deployment-peer/src/main/resources/docs/imgs/keys.jpeg → deploy/deploy-peer/src/main/resources/docs/imgs/keys.jpeg View File


source/deployment/deployment-peer/src/main/resources/docs/imgs/structure.png → deploy/deploy-peer/src/main/resources/docs/imgs/structure.png View File


source/deployment/deployment-peer/src/main/resources/docs/安装部署.MD → deploy/deploy-peer/src/main/resources/docs/安装部署.MD View File


source/deployment/deployment-peer/src/main/resources/docs/安装部署.html → deploy/deploy-peer/src/main/resources/docs/安装部署.html View File


source/deployment/deployment-peer/src/main/resources/scripts/keygen.sh → deploy/deploy-peer/src/main/resources/scripts/keygen.sh View File


source/deployment/deployment-peer/src/main/resources/scripts/ledger-init.sh → deploy/deploy-peer/src/main/resources/scripts/ledger-init.sh View File


source/deployment/deployment-peer/src/main/resources/scripts/manager-shutdown.sh → deploy/deploy-peer/src/main/resources/scripts/manager-shutdown.sh View File


source/deployment/deployment-peer/src/main/resources/scripts/manager-startup.sh → deploy/deploy-peer/src/main/resources/scripts/manager-startup.sh View File


source/deployment/deployment-peer/src/main/resources/scripts/peer-shutdown.sh → deploy/deploy-peer/src/main/resources/scripts/peer-shutdown.sh View File

@@ -15,11 +15,11 @@ if [ -f "$PID_LOG" ]; then
if [[ $PID_LINE == *PEER_BOOT_PID* ]]; then if [[ $PID_LINE == *PEER_BOOT_PID* ]]; then
LOG_PID=$(echo $PID_LINE | cut -d "=" -f 2 | cut -d "[" -f 2 | cut -d "]" -f 1) LOG_PID=$(echo $PID_LINE | cut -d "=" -f 2 | cut -d "[" -f 2 | cut -d "]" -f 1)
echo "Last Peer Boot PID = $LOG_PID ..." echo "Last Peer Boot PID = $LOG_PID ..."
PID=`ps -ef | grep deployment-peer | grep $LOG_PID | grep -v grep | awk '{print $2}'`
PID=`ps -ef | grep deploy-peer- | grep $LOG_PID | grep -v grep | awk '{print $2}'`
fi fi
#启动文件不存在则直接通过PS进行过滤 #启动文件不存在则直接通过PS进行过滤
else else
PID=`ps -ef | grep $BOOT_HOME/system/deployment-peer | grep -v grep | awk '{print $2}'`
PID=`ps -ef | grep $BOOT_HOME/system/deploy-peer- | grep -v grep | awk '{print $2}'`
fi fi


#通过Kill命令将进程杀死 #通过Kill命令将进程杀死

source/deployment/deployment-peer/src/main/resources/scripts/peer-startup.sh → deploy/deploy-peer/src/main/resources/scripts/peer-startup.sh View File

@@ -1,8 +1,7 @@
#!/bin/bash #!/bin/bash


HOME=$(cd `dirname $0`;cd ../; pwd) HOME=$(cd `dirname $0`;cd ../; pwd)
PEER=$(ls $HOME/system | grep deployment-peer-)
JVM_SET="-server -Xmx2g -Xms1g"
PEER=$(ls $HOME/system | grep deploy-peer-)
PROC_INFO=$HOME/system/$PEER" -home="$HOME" -c "$HOME/config/ledger-binding.conf" -p 7080" PROC_INFO=$HOME/system/$PEER" -home="$HOME" -c "$HOME/config/ledger-binding.conf" -p 7080"
#echo $PROC_INFO #echo $PROC_INFO
#get PID #get PID
@@ -16,5 +15,5 @@ fi
if [ ! -n "$PEER" ]; then if [ ! -n "$PEER" ]; then
echo "Peer Is Null !!!" echo "Peer Is Null !!!"
else else
nohup java -jar $JVM_SET -Djdchain.log=$HOME $PROC_INFO $* >$HOME/bin/peer.out 2>&1 &
nohup java -jar -server -Xmx1g -Xms1g -Djdchain.log=$HOME $PROC_INFO $* >$HOME/bin/peer.out 2>&1 &
fi fi

+ 26
- 0
deploy/pom.xml View File

@@ -0,0 +1,26 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.jd.blockchain</groupId>
<artifactId>jdchain-parent</artifactId>
<version>1.1.4.RELEASE</version>
<relativePath>../project/parent</relativePath>
</parent>
<artifactId>deploy-root</artifactId>
<version>1.2.0.RELEASE</version>
<packaging>pom</packaging>

<properties>
<core.version>1.2.0.RELEASE</core.version>
</properties>

<modules>
<module>../core</module>
<module>deploy-gateway</module>
<module>deploy-peer</module>
<module>deploy-kvdb</module>
</modules>

</project>

+ 1
- 0
explorer

@@ -0,0 +1 @@
Subproject commit da3b9c925d7bc263474baf2c72ff0cee5c8308e1

+ 1
- 0
framework

@@ -0,0 +1 @@
Subproject commit 7260fab6ee0336e2a197ddef7bebf2daf9363844

+ 1
- 0
kvdb

@@ -0,0 +1 @@
Subproject commit 6e541d84081362c86430a89806c7dfcbb5fd8a71

+ 1
- 0
libs/bft-smart

@@ -0,0 +1 @@
Subproject commit 1a3c32c4090e3cf7551998366a4d26a0160451ec

+ 23
- 0
pom.xml View File

@@ -0,0 +1,23 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion>

<groupId>com.jd.blockchain</groupId>
<artifactId>jdchain-root</artifactId>
<version>1.2.0.RELEASE</version>
<packaging>pom</packaging>
<description>jdchain root project</description>

<modules>
<module>project</module>
<module>framework</module>
<module>core</module>
<module>kvdb</module>
<module>deploy</module>
<module>test</module>
<module>samples</module>
</modules>


</project>

+ 1
- 0
project

@@ -0,0 +1 @@
Subproject commit ec38eec4a6269e7abd35d9ea1b67417a97815bf9

source/contract/contract-samples/pom.xml → samples/contract-samples/pom.xml View File

@@ -2,12 +2,12 @@


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" 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"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>contract</artifactId>
<groupId>com.jd.blockchain</groupId>
<version>1.1.4.RELEASE</version>
</parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.jd.blockchain</groupId>
<artifactId>jdchain-samples</artifactId>
<version>1.2.0.RELEASE</version>
</parent>


<artifactId>contract-samples</artifactId> <artifactId>contract-samples</artifactId>


@@ -17,14 +17,12 @@
<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>ledger-model</artifactId> <artifactId>ledger-model</artifactId>
<version>${project.version}</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>


<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>crypto-framework</artifactId> <artifactId>crypto-framework</artifactId>
<version>${project.version}</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>


@@ -70,14 +68,6 @@
<skip>true</skip> <skip>true</skip>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<configuration>
<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
</configuration>
</plugin>



</plugins> </plugins>
</build> </build>

source/contract/contract-samples/src/main/java/com/jd/blockchain/contract/ComplexContract.java → samples/contract-samples/src/main/java/com/jd/blockchain/contract/ComplexContract.java View File


source/contract/contract-samples/src/main/java/com/jd/blockchain/contract/ComplexContractImpl.java → samples/contract-samples/src/main/java/com/jd/blockchain/contract/ComplexContractImpl.java View File


source/contract/contract-samples/src/main/java/com/jd/blockchain/contract/RandomContract.java → samples/contract-samples/src/main/java/com/jd/blockchain/contract/RandomContract.java View File


source/contract/contract-samples/src/main/java/com/jd/blockchain/contract/RandomContractImpl.java → samples/contract-samples/src/main/java/com/jd/blockchain/contract/RandomContractImpl.java View File


source/contract/contract-samples/src/main/java/com/jd/blockchain/contract/ReadContract.java → samples/contract-samples/src/main/java/com/jd/blockchain/contract/ReadContract.java View File


source/contract/contract-samples/src/main/java/com/jd/blockchain/contract/ReadContractImpl.java → samples/contract-samples/src/main/java/com/jd/blockchain/contract/ReadContractImpl.java View File


source/contract/contract-samples/src/main/java/com/jd/blockchain/contract/TransferContract.java → samples/contract-samples/src/main/java/com/jd/blockchain/contract/TransferContract.java View File


source/contract/contract-samples/src/main/java/com/jd/blockchain/contract/TransferContractImpl.java → samples/contract-samples/src/main/java/com/jd/blockchain/contract/TransferContractImpl.java View File


+ 50
- 0
samples/pom.xml View File

@@ -0,0 +1,50 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.jd.blockchain</groupId>
<artifactId>jdchain-parent</artifactId>
<version>1.1.4.RELEASE</version>
<relativePath>../project/parent</relativePath>
</parent>

<groupId>com.jd.blockchain</groupId>
<artifactId>jdchain-samples</artifactId>
<version>1.2.0.RELEASE</version>
<packaging>pom</packaging>

<properties>
<framework.version>1.2.0.RELEASE</framework.version>
</properties>

<modules>
<module>../framework</module>
<module>sdk-samples</module>
<module>contract-samples</module>
</modules>

<dependencyManagement>
<dependencies>

<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>sdk-client</artifactId>
<version>${framework.version}</version>
</dependency>
<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>ledger-model</artifactId>
<version>${framework.version}</version>
</dependency>
<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>crypto-framework</artifactId>
<version>${framework.version}</version>
</dependency>
</dependencies>

</dependencyManagement>


</project>

source/sdk/sdk-samples/pom.xml → samples/sdk-samples/pom.xml View File

@@ -1,62 +1,46 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.jd.blockchain</groupId>
<artifactId>sdk</artifactId>
<version>1.1.4.RELEASE</version>
</parent>
<artifactId>sdk-samples</artifactId>

<dependencies>
<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>sdk-client</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>ledger-model</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>tools-initializer</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>contract-samples</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<configuration>
<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>

</configuration>
</plugin>

<!--<plugin> -->
<!--<groupId>org.springframework.boot</groupId> -->
<!--<artifactId>spring-boot-maven-plugin</artifactId> -->
<!--<configuration> -->
<!--<mainClass>com.jd.blockchain.sdk.samples.SDKDemo_RegisterTest</mainClass> -->
<!--</configuration> -->
<!--</plugin> -->
</plugins>
</build>
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.jd.blockchain</groupId>
<artifactId>jdchain-samples</artifactId>
<version>1.2.0.RELEASE</version>
</parent>
<artifactId>sdk-samples</artifactId>
<dependencies>
<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>sdk-client</artifactId>
</dependency>
<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>ledger-model</artifactId>
</dependency>
<dependency>
<groupId>com.jd.blockchain</groupId>
<artifactId>contract-samples</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<!--<plugin> -->
<!--<groupId>org.springframework.boot</groupId> -->
<!--<artifactId>spring-boot-maven-plugin</artifactId> -->
<!--<configuration> -->
<!--<mainClass>com.jd.blockchain.sdk.samples.SDKDemo_RegisterTest</mainClass> -->
<!--</configuration> -->
<!--</plugin> -->
</plugins>
</build>
</project> </project>

source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/ContractConfigure.java → samples/sdk-samples/src/main/java/com/jd/blockchain/contract/ContractConfigure.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContract.java → samples/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContract.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContract2.java → samples/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContract2.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContractImpl.java → samples/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContractImpl.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_ConfigureSecurity.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_ConfigureSecurity.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Constant.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Constant.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Contract.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Contract.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_DataAccount.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_DataAccount.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_EventListener.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_EventListener.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_InsertData.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_InsertData.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Params.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Params.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_PrivilegeSetting.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_PrivilegeSetting.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Query.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Query.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterAccount.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterAccount.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterTest.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterTest.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterUser.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_RegisterUser.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Tx_Persistance.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Tx_Persistance.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_User.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_User.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Base_Demo.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Base_Demo.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Contract_Check_Demo.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Contract_Check_Demo.java View File

@@ -1,14 +1,17 @@
package com.jd.blockchain.sdk.samples; package com.jd.blockchain.sdk.samples;


import com.jd.blockchain.contract.TransferContract;
import com.jd.blockchain.ledger.*;
import static com.jd.blockchain.sdk.samples.SDKDemo_Constant.readChainCodes;
import static com.jd.blockchain.transaction.ContractReturnValue.decode;

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.transaction.GenericValueHolder; import com.jd.blockchain.transaction.GenericValueHolder;
import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.Bytes;
import com.jd.chain.contracts.ContractTestInf; import com.jd.chain.contracts.ContractTestInf;


import static com.jd.blockchain.sdk.samples.SDKDemo_Constant.readChainCodes;
import static com.jd.blockchain.transaction.ContractReturnValue.decode;

public class SDK_Contract_Check_Demo extends SDK_Base_Demo { public class SDK_Contract_Check_Demo extends SDK_Base_Demo {


public static void main(String[] args) { public static void main(String[] args) {

source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Contract_Demo.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Contract_Demo.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Contract_Random_Demo.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Contract_Random_Demo.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_DataAccount_Demo.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_DataAccount_Demo.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_InsertData_Demo.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_InsertData_Demo.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_RoleConfig_Demo.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_RoleConfig_Demo.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Threads_KvInsert_Demo.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Threads_KvInsert_Demo.java View File


source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_User2Role_Demo.java → samples/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_User2Role_Demo.java View File


source/sdk/sdk-samples/src/main/java/com/jd/chain/contracts/ContractTestInf.java → samples/sdk-samples/src/main/java/com/jd/chain/contracts/ContractTestInf.java View File


source/sdk/sdk-samples/src/main/resources/contract-jdchain.jar → samples/sdk-samples/src/main/resources/contract-jdchain.jar View File


source/sdk/sdk-samples/src/main/resources/transfer.jar → samples/sdk-samples/src/main/resources/transfer.jar View File


source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDKDemo_Contract_Test_.java → samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDKDemo_Contract_Test_.java View File


source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java → samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java View File


source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java → samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java View File


source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java → samples/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save