diff --git a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/MsgQueueConsensusSettingsBuilder.java b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/MsgQueueConsensusSettingsBuilder.java
index 85b1fbc3..3ae907d8 100644
--- a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/MsgQueueConsensusSettingsBuilder.java
+++ b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/MsgQueueConsensusSettingsBuilder.java
@@ -20,9 +20,9 @@ import com.jd.blockchain.consensus.mq.settings.MsgQueueConsensusSettings;
import com.jd.blockchain.consensus.mq.settings.MsgQueueNetworkSettings;
import com.jd.blockchain.consensus.mq.settings.MsgQueueNodeSettings;
import com.jd.blockchain.crypto.AddressEncoding;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.ParticipantNode;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.PropertiesUtils;
import com.jd.blockchain.utils.codec.Base58Utils;
@@ -129,7 +129,7 @@ public class MsgQueueConsensusSettingsBuilder implements ConsensusSettingsBuilde
String keyOfPubkey = nodeKey(PUBKEY_PATTERN, id);
String base58PubKey = PropertiesUtils.getRequiredProperty(resolvingProps, keyOfPubkey);
- PubKey pubKey = KeyGenCommand.decodePubKey(base58PubKey);
+ PubKey pubKey = KeyGenUtils.decodePubKey(base58PubKey);
// PubKey pubKey = new PubKey(Base58Utils.decode(base58PubKey));
resolvingProps.remove(keyOfPubkey);
diff --git a/source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployExeUtil.java b/source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployExeUtil.java
index a206a854..0b27f422 100644
--- a/source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployExeUtil.java
+++ b/source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployExeUtil.java
@@ -7,6 +7,7 @@ import java.io.InputStream;
import com.jd.blockchain.binaryproto.DataContractRegistry;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.BlockchainIdentity;
@@ -29,7 +30,6 @@ import com.jd.blockchain.ledger.TransactionTemplate;
import com.jd.blockchain.ledger.UserRegisterOperation;
import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.client.GatewayServiceFactory;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.codec.Base58Utils;
import com.jd.blockchain.utils.net.NetworkAddress;
@@ -47,8 +47,8 @@ public enum ContractDeployExeUtil {
PubKey pub = null;
PrivKey prv = null;
try {
- prv = KeyGenCommand.readPrivKey(prvPath, KeyGenCommand.encodePassword(rawPassword));
- pub = KeyGenCommand.readPubKey(pubPath);
+ prv = KeyGenUtils.readPrivKey(prvPath, KeyGenUtils.encodePassword(rawPassword));
+ pub = KeyGenUtils.readPubKey(pubPath);
} catch (Exception e) {
e.printStackTrace();
@@ -64,7 +64,7 @@ public enum ContractDeployExeUtil {
BlockchainKeypair contractKeyPair = BlockchainKeyGenerator.getInstance().generate();
pub = contractKeyPair.getPubKey();
}else {
- pub = KeyGenCommand.readPubKey(pubPath);
+ pub = KeyGenUtils.readPubKey(pubPath);
}
} catch (Exception e) {
diff --git a/source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployMojo.java b/source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployMojo.java
index 3eac13bb..427fe00f 100644
--- a/source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployMojo.java
+++ b/source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployMojo.java
@@ -1,10 +1,10 @@
package com.jd.blockchain;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.BlockchainKeypair;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.StringUtils;
import com.jd.blockchain.utils.codec.Base58Utils;
import com.jd.blockchain.utils.io.FileUtils;
@@ -102,8 +102,8 @@ public class ContractDeployMojo extends AbstractMojo {
byte[] contractBytes = FileUtils.readBytes(contractPath);
- PrivKey prv = KeyGenCommand.decodePrivKeyWithRawPassword(prvKey, password);
- PubKey pub = KeyGenCommand.decodePubKey(pubKey);
+ PrivKey prv = KeyGenUtils.decodePrivKeyWithRawPassword(prvKey, password);
+ PubKey pub = KeyGenUtils.decodePubKey(pubKey);
BlockchainKeypair blockchainKeyPair = new BlockchainKeypair(pub, prv);
HashDigest ledgerHash = new HashDigest(Base58Utils.decode(ledger));
diff --git a/source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/KeyGenUtils.java b/source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/KeyGenUtils.java
new file mode 100644
index 00000000..717c813c
--- /dev/null
+++ b/source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/KeyGenUtils.java
@@ -0,0 +1,187 @@
+package com.jd.blockchain.crypto;
+
+import java.util.Arrays;
+
+import javax.crypto.SecretKey;
+
+import com.jd.blockchain.utils.ConsoleUtils;
+import com.jd.blockchain.utils.codec.Base58Utils;
+import com.jd.blockchain.utils.io.BytesUtils;
+import com.jd.blockchain.utils.io.FileUtils;
+import com.jd.blockchain.utils.security.AESUtils;
+import com.jd.blockchain.utils.security.DecryptionException;
+import com.jd.blockchain.utils.security.ShaUtils;
+
+public class KeyGenUtils {
+
+ private static final byte[] PUB_KEY_FILE_MAGICNUM = { (byte) 0xFF, 112, 117, 98 };
+
+ private static final byte[] PRIV_KEY_FILE_MAGICNUM = { (byte) 0x00, 112, 114, 118 };
+
+ /**
+ * 公钥编码输出为 Base58 字符;
+ *
+ * @param pubKey
+ * @return
+ */
+ public static String encodePubKey(PubKey pubKey) {
+ byte[] pubKeyBytes = BytesUtils.concat(PUB_KEY_FILE_MAGICNUM, pubKey.toBytes());
+ String base58PubKey = Base58Utils.encode(pubKeyBytes);
+ return base58PubKey;
+ }
+
+ public static PubKey decodePubKey(String base58PubKey) {
+ byte[] keyBytes = Base58Utils.decode(base58PubKey);
+ return decodePubKey(keyBytes);
+ }
+
+ public static String encodePrivKey(PrivKey privKey, String base58Pwd) {
+ byte[] pwdBytes = Base58Utils.decode(base58Pwd);
+ return encodePrivKey(privKey, pwdBytes);
+ }
+
+ public static String encodePrivKey(PrivKey privKey, byte[] pwdBytes) {
+ byte[] encodedPrivKeyBytes = encryptPrivKey(privKey, pwdBytes);
+ String base58PrivKey = Base58Utils.encode(encodedPrivKeyBytes);
+ return base58PrivKey;
+ }
+
+ public static byte[] encryptPrivKey(PrivKey privKey, byte[] pwdBytes) {
+ SecretKey userKey = AESUtils.generateKey128(pwdBytes);
+ byte[] encryptedPrivKeyBytes = AESUtils.encrypt(privKey.toBytes(), userKey);
+ return BytesUtils.concat(PRIV_KEY_FILE_MAGICNUM, encryptedPrivKeyBytes);
+ }
+
+ /**
+ * @param encodedPubKeyBytes
+ * @return
+ */
+ private static PubKey decodePubKeyBytes(byte[] encodedPubKeyBytes) {
+ byte[] pubKeyBytes = Arrays.copyOfRange(encodedPubKeyBytes, PUB_KEY_FILE_MAGICNUM.length,
+ encodedPubKeyBytes.length);
+ return new PubKey(pubKeyBytes);
+ }
+
+ public static PrivKey decryptedPrivKeyBytes(byte[] encodedPrivKeyBytes, byte[] pwdBytes) {
+ // Read privKye;
+ SecretKey userKey = AESUtils.generateKey128(pwdBytes);
+ byte[] encryptedKeyBytes = Arrays.copyOfRange(encodedPrivKeyBytes, PRIV_KEY_FILE_MAGICNUM.length,
+ encodedPrivKeyBytes.length);
+ try {
+ byte[] plainKeyBytes = AESUtils.decrypt(encryptedKeyBytes, userKey);
+ return new PrivKey(plainKeyBytes);
+ } catch (DecryptionException e) {
+ throw new DecryptionException("Invalid password!", e);
+ }
+ }
+
+ public static PubKey readPubKey(String keyFile) {
+ String base58KeyString = FileUtils.readText(keyFile);
+ return decodePubKey(base58KeyString);
+ }
+
+ /**
+ * 解码公钥;
+ *
+ * @param encodedPubKeyBytes 从公钥;
+ * @return
+ */
+ public static PubKey decodePubKey(byte[] encodedPubKeyBytes) {
+ if (BytesUtils.startsWith(encodedPubKeyBytes, PUB_KEY_FILE_MAGICNUM)) {
+ // Read pubKey;
+ return decodePubKeyBytes(encodedPubKeyBytes);
+ }
+
+ throw new IllegalArgumentException("The specified bytes is not valid PubKey generated by the KeyGen tool!");
+ }
+
+ /**
+ * 从控制台读取加密口令,以二进制数组形式返回原始口令的一次SHA256的结果;
+ *
+ * @return
+ */
+ public static byte[] readPassword() {
+ byte[] pwdBytes = ConsoleUtils.readPassword();
+ return ShaUtils.hash_256(pwdBytes);
+ }
+
+ /**
+ * 对指定的原始密码进行编码生成用于加解密的密码;
+ *
+ * @param rawPassword
+ * @return
+ */
+ public static byte[] encodePassword(String rawPassword) {
+ byte[] pwdBytes = BytesUtils.toBytes(rawPassword, "UTF-8");
+ return ShaUtils.hash_256(pwdBytes);
+ }
+
+ /**
+ * 对指定的原始密码进行编码生成用于加解密的密码;
+ *
+ * @param rawPassword
+ * @return
+ */
+ public static String encodePasswordAsBase58(String rawPassword) {
+ return Base58Utils.encode(encodePassword(rawPassword));
+ }
+
+ /**
+ * 从控制台读取加密口令,以Base58字符串形式返回口令的一次SHA256的结果;
+ *
+ * @return
+ */
+ public static String readPasswordString() {
+ return Base58Utils.encode(readPassword());
+ }
+
+ public static PrivKey readPrivKey(String keyFile, String base58Pwd) {
+ return readPrivKey(keyFile, Base58Utils.decode(base58Pwd));
+ }
+
+ /**
+ * 从文件读取私钥;
+ *
+ * @param keyFile
+ * @param pwdBytes
+ * @return
+ */
+ public static PrivKey readPrivKey(String keyFile, byte[] pwdBytes) {
+ String base58KeyString = FileUtils.readText(keyFile);
+ byte[] keyBytes = Base58Utils.decode(base58KeyString);
+ if (!BytesUtils.startsWith(keyBytes, PRIV_KEY_FILE_MAGICNUM)) {
+ throw new IllegalArgumentException("The specified file is not a private key file!");
+ }
+ return decryptedPrivKeyBytes(keyBytes, pwdBytes);
+ }
+
+ public static PrivKey decodePrivKey(String base58Key, String base58Pwd) {
+ byte[] decryptedKey = Base58Utils.decode(base58Pwd);
+ return decodePrivKey(base58Key, decryptedKey);
+ }
+
+ public static PrivKey decodePrivKey(String base58Key, byte[] pwdBytes) {
+ byte[] keyBytes = Base58Utils.decode(base58Key);
+ if (!BytesUtils.startsWith(keyBytes, PRIV_KEY_FILE_MAGICNUM)) {
+ throw new IllegalArgumentException("The specified file is not a private key file!");
+ }
+ return decryptedPrivKeyBytes(keyBytes, pwdBytes);
+ }
+
+ public static PrivKey decodePrivKeyWithRawPassword(String base58Key, String rawPassword) {
+ byte[] pwdBytes = encodePassword(rawPassword);
+ byte[] keyBytes = Base58Utils.decode(base58Key);
+ if (!BytesUtils.startsWith(keyBytes, PRIV_KEY_FILE_MAGICNUM)) {
+ throw new IllegalArgumentException("The specified file is not a private key file!");
+ }
+ return decryptedPrivKeyBytes(keyBytes, pwdBytes);
+ }
+
+ public static boolean isPubKeyBytes(byte[] keyBytes) {
+ return BytesUtils.startsWith(keyBytes, PUB_KEY_FILE_MAGICNUM);
+ }
+
+ public static boolean isPrivKeyBytes(byte[] keyBytes) {
+ return BytesUtils.startsWith(keyBytes, PRIV_KEY_FILE_MAGICNUM);
+ }
+}
diff --git a/source/gateway/src/main/java/com/jd/blockchain/gateway/GatewayServerBooter.java b/source/gateway/src/main/java/com/jd/blockchain/gateway/GatewayServerBooter.java
index 3b9604f3..76c39b61 100644
--- a/source/gateway/src/main/java/com/jd/blockchain/gateway/GatewayServerBooter.java
+++ b/source/gateway/src/main/java/com/jd/blockchain/gateway/GatewayServerBooter.java
@@ -5,20 +5,20 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
-import com.jd.blockchain.gateway.web.BlockBrowserController;
import org.apache.commons.io.FileUtils;
import org.springframework.boot.SpringApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.io.ClassPathResource;
import com.jd.blockchain.crypto.AsymmetricKeypair;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
+import com.jd.blockchain.gateway.web.BlockBrowserController;
import com.jd.blockchain.utils.ArgumentSet;
+import com.jd.blockchain.utils.ArgumentSet.ArgEntry;
import com.jd.blockchain.utils.BaseConstant;
import com.jd.blockchain.utils.ConsoleUtils;
-import com.jd.blockchain.utils.ArgumentSet.ArgEntry;
public class GatewayServerBooter {
@@ -88,19 +88,19 @@ public class GatewayServerBooter {
String base58Pwd = config.keys().getDefault().getPrivKeyPassword();
if (base58Pwd == null || base58Pwd.length() == 0) {
- base58Pwd = KeyGenCommand.readPasswordString();
+ base58Pwd = KeyGenUtils.readPasswordString();
}
// 加载密钥;
- PubKey pubKey = KeyGenCommand.decodePubKey(config.keys().getDefault().getPubKeyValue());
+ PubKey pubKey = KeyGenUtils.decodePubKey(config.keys().getDefault().getPubKeyValue());
PrivKey privKey = null;
String base58PrivKey = config.keys().getDefault().getPrivKeyValue();
if (base58PrivKey == null) {
//注:GatewayConfigProperties 确保了 PrivKeyValue 和 PrivKeyPath 必有其一;
- privKey = KeyGenCommand.readPrivKey(config.keys().getDefault().getPrivKeyPath(), base58Pwd);
+ privKey = KeyGenUtils.readPrivKey(config.keys().getDefault().getPrivKeyPath(), base58Pwd);
} else {
- privKey = KeyGenCommand.decodePrivKey(base58PrivKey, base58Pwd);
+ privKey = KeyGenUtils.decodePrivKey(base58PrivKey, base58Pwd);
}
defaultKeyPair = new AsymmetricKeypair(pubKey, privKey);
}
diff --git a/source/gateway/src/main/java/com/jd/blockchain/gateway/web/BlockBrowserController.java b/source/gateway/src/main/java/com/jd/blockchain/gateway/web/BlockBrowserController.java
index 50255bd3..895d2d23 100644
--- a/source/gateway/src/main/java/com/jd/blockchain/gateway/web/BlockBrowserController.java
+++ b/source/gateway/src/main/java/com/jd/blockchain/gateway/web/BlockBrowserController.java
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.jd.blockchain.crypto.AddressEncoding;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.gateway.PeerService;
import com.jd.blockchain.gateway.decompiler.utils.DecompilerUtils;
@@ -34,7 +35,6 @@ import com.jd.blockchain.ledger.TransactionState;
import com.jd.blockchain.ledger.UserInfo;
import com.jd.blockchain.sdk.BlockchainExtendQueryService;
import com.jd.blockchain.sdk.ContractSettings;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.BaseConstant;
import com.jd.blockchain.utils.ConsoleUtils;
@@ -482,7 +482,7 @@ public class BlockBrowserController implements BlockchainExtendQueryService {
@RequestMapping(method = RequestMethod.GET, path = "utils/pubkey/{pubkey}/addr")
public String getAddrByPubKey(@PathVariable(name = "pubkey") String strPubKey) {
- PubKey pubKey = KeyGenCommand.decodePubKey(strPubKey);
+ PubKey pubKey = KeyGenUtils.decodePubKey(strPubKey);
return AddressEncoding.generateAddress(pubKey).toBase58();
}
diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitializer.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitializer.java
new file mode 100644
index 00000000..dc612dfa
--- /dev/null
+++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitializer.java
@@ -0,0 +1,154 @@
+package com.jd.blockchain.ledger.core;
+
+import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.PrivKey;
+import com.jd.blockchain.crypto.SignatureDigest;
+import com.jd.blockchain.ledger.BlockchainIdentity;
+import com.jd.blockchain.ledger.BlockchainIdentityData;
+import com.jd.blockchain.ledger.DigitalSignature;
+import com.jd.blockchain.ledger.LedgerBlock;
+import com.jd.blockchain.ledger.LedgerInitException;
+import com.jd.blockchain.ledger.LedgerInitSetting;
+import com.jd.blockchain.ledger.Operation;
+import com.jd.blockchain.ledger.ParticipantNode;
+import com.jd.blockchain.ledger.TransactionBuilder;
+import com.jd.blockchain.ledger.TransactionContent;
+import com.jd.blockchain.ledger.TransactionRequest;
+import com.jd.blockchain.ledger.TransactionState;
+import com.jd.blockchain.ledger.UserRegisterOperation;
+import com.jd.blockchain.storage.service.KVStorageService;
+import com.jd.blockchain.transaction.SignatureUtils;
+import com.jd.blockchain.transaction.TxBuilder;
+import com.jd.blockchain.transaction.TxRequestBuilder;
+
+public class LedgerInitializer {
+
+ private LedgerInitSetting initSetting;
+
+ private TransactionContent initTxContent;
+
+ private volatile LedgerBlock genesisBlock;
+
+ private volatile LedgerEditor ledgerEditor;
+
+ private volatile boolean committed = false;
+
+ private volatile boolean canceled = false;
+
+ /**
+ * 初始化生成的账本hash;
+ *
+ * 在成功执行 {@link #prepareLedger(KVStorageService, DigitalSignature...)} 之前总是返回
+ * null;
+ *
+ * @return
+ */
+ public HashDigest getLedgerHash() {
+ return genesisBlock == null ? null : genesisBlock.getHash();
+ }
+
+ /**
+ * @param initSetting
+ * @param initTxContent
+ */
+ private LedgerInitializer(LedgerInitSetting initSetting, TransactionContent initTxContent) {
+ this.initSetting = initSetting;
+ this.initTxContent = initTxContent;
+ }
+
+ public TransactionContent getTransactionContent() {
+ return initTxContent;
+ }
+
+ public static LedgerInitializer create(LedgerInitSetting initSetting) {
+ // 生成初始化交易,并签署许可;
+ TransactionBuilder initTxBuilder = new TxBuilder(null);// 账本初始化交易的账本 hash 为 null;
+ initTxBuilder.ledgers().create(initSetting);
+ for (ParticipantNode p : initSetting.getConsensusParticipants()) {
+ // TODO:暂时只支持注册用户的初始化操作;
+ BlockchainIdentity superUserId = new BlockchainIdentityData(p.getPubKey());
+ initTxBuilder.users().register(superUserId);
+ }
+ // 账本初始化配置声明的创建时间来初始化交易时间戳;注:不能用本地时间,因为共识节点之间的本地时间系统不一致;
+ TransactionContent initTxContent = initTxBuilder.prepareContent(initSetting.getCreatedTime());
+ return new LedgerInitializer(initSetting, initTxContent);
+ }
+
+ public SignatureDigest signTransaction(PrivKey privKey) {
+ return SignatureUtils.sign(initTxContent, privKey);
+ }
+
+ /**
+ * 准备创建账本;
+ *
+ * @param storageService 存储服务;
+ * @param nodeSignatures 节点签名列表;
+ * @return
+ */
+ public LedgerBlock prepareLedger(KVStorageService storageService, DigitalSignature... nodeSignatures) {
+ if (genesisBlock != null) {
+ throw new LedgerInitException("The ledger has been prepared!");
+ }
+ // 生成账本;
+ this.ledgerEditor = createLedgerEditor(this.initSetting, storageService);
+ this.genesisBlock = prepareLedger(ledgerEditor, nodeSignatures);
+
+ return genesisBlock;
+ }
+
+ public void commit() {
+ if (committed) {
+ throw new LedgerInitException("The ledger has been committed!");
+ }
+ if (canceled) {
+ throw new LedgerInitException("The ledger has been canceled!");
+ }
+ committed = true;
+ this.ledgerEditor.commit();
+ }
+
+ public void cancel() {
+ if (canceled) {
+ throw new LedgerInitException("The ledger has been canceled!");
+ }
+ if (committed) {
+ throw new LedgerInitException("The ledger has been committed!");
+ }
+ this.ledgerEditor.cancel();
+ }
+
+ public static LedgerEditor createLedgerEditor(LedgerInitSetting initSetting, KVStorageService storageService) {
+ LedgerEditor genesisBlockEditor = LedgerTransactionalEditor.createEditor(initSetting,
+ LedgerManage.LEDGER_PREFIX, storageService.getExPolicyKVStorage(),
+ storageService.getVersioningKVStorage());
+ return genesisBlockEditor;
+ }
+
+ /**
+ * 初始化账本数据,返回创始区块;
+ *
+ * @param ledgerEditor
+ * @return
+ */
+ private LedgerBlock prepareLedger(LedgerEditor ledgerEditor, DigitalSignature... nodeSignatures) {
+ // 初始化时,自动将参与方注册为账本的用户;
+ TxRequestBuilder txReqBuilder = new TxRequestBuilder(this.initTxContent);
+ txReqBuilder.addNodeSignature(nodeSignatures);
+
+ TransactionRequest txRequest = txReqBuilder.buildRequest();
+
+ LedgerTransactionContext txCtx = ledgerEditor.newTransaction(txRequest);
+ Operation[] ops = txRequest.getTransactionContent().getOperations();
+ // 注册用户; 注:第一个操作是 LedgerInitOperation;
+ // TODO:暂时只支持注册用户的初始化操作;
+ for (int i = 1; i < ops.length; i++) {
+ UserRegisterOperation userRegOP = (UserRegisterOperation) ops[i];
+ txCtx.getDataset().getUserAccountSet().register(userRegOP.getUserID().getAddress(),
+ userRegOP.getUserID().getPubKey());
+ }
+
+ txCtx.commit(TransactionState.SUCCESS, null);
+
+ return ledgerEditor.prepare();
+ }
+}
diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerManage.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerManage.java
index 0e2ae587..65f8738b 100644
--- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerManage.java
+++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerManage.java
@@ -12,19 +12,21 @@ import com.jd.blockchain.storage.service.KVStorageService;
*/
public interface LedgerManage extends LedgerService {
+ static final String LEDGER_PREFIX = "LDG://";
+
LedgerRepository register(HashDigest ledgerHash, KVStorageService storageService);
void unregister(HashDigest ledgerHash);
- /**
- * 创建新账本;
- *
- * @param initSetting
- * 初始化配置;
- * @param initPermissions
- * 参与者的初始化授权列表;与参与者列表一致;
- * @return
- */
- LedgerEditor newLedger(LedgerInitSetting initSetting, KVStorageService storageService);
+// /**
+// * 创建新账本;
+// *
+// * @param initSetting
+// * 初始化配置;
+// * @param initPermissions
+// * 参与者的初始化授权列表;与参与者列表一致;
+// * @return
+// */
+// LedgerEditor newLedger(LedgerInitSetting initSetting, KVStorageService storageService);
}
\ No newline at end of file
diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerManager.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerManager.java
index aad657fc..2e66b7ca 100644
--- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerManager.java
+++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerManager.java
@@ -9,7 +9,6 @@ import com.jd.blockchain.crypto.CryptoProvider;
import com.jd.blockchain.crypto.HashDigest;
import com.jd.blockchain.ledger.CryptoSetting;
import com.jd.blockchain.ledger.LedgerException;
-import com.jd.blockchain.ledger.LedgerInitSetting;
import com.jd.blockchain.storage.service.ExPolicyKVStorage;
import com.jd.blockchain.storage.service.KVStorageService;
import com.jd.blockchain.storage.service.VersioningKVStorage;
@@ -23,8 +22,6 @@ import com.jd.blockchain.utils.codec.Base58Utils;
*/
public class LedgerManager implements LedgerManage {
- private static final String LEDGER_PREFIX = "LDG://";
-
// @Autowired
// private ExistentialKVStorage exPolicyStorage;
//
@@ -138,18 +135,18 @@ public class LedgerManager implements LedgerManage {
}
}
- /*
- * (non-Javadoc)
- *
- * @see com.jd.blockchain.ledger.core.LedgerManager#newLedger(com.jd.blockchain.
- * ledger.core.ConsensusConfig, com.jd.blockchain.ledger.core.CryptoConfig)
- */
- @Override
- public LedgerEditor newLedger(LedgerInitSetting initSetting, KVStorageService storageService) {
- LedgerEditor genesisBlockEditor = LedgerTransactionalEditor.createEditor(initSetting, LEDGER_PREFIX,
- storageService.getExPolicyKVStorage(), storageService.getVersioningKVStorage());
- return genesisBlockEditor;
- }
+// /*
+// * (non-Javadoc)
+// *
+// * @see com.jd.blockchain.ledger.core.LedgerManager#newLedger(com.jd.blockchain.
+// * ledger.core.ConsensusConfig, com.jd.blockchain.ledger.core.CryptoConfig)
+// */
+// @Override
+// public LedgerEditor newLedger(LedgerInitSetting initSetting, KVStorageService storageService) {
+// LedgerEditor genesisBlockEditor = LedgerTransactionalEditor.createEditor(initSetting, LEDGER_PREFIX,
+// storageService.getExPolicyKVStorage(), storageService.getVersioningKVStorage());
+// return genesisBlockEditor;
+// }
static String getLedgerStoragePrefix(HashDigest ledgerHash) {
String base58LedgerHash = Base58Utils.encode(ledgerHash.toBytes());
diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/core/LedgerManagerTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/core/LedgerManagerTest.java
index cf3a294d..1b3b2348 100644
--- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/core/LedgerManagerTest.java
+++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/core/LedgerManagerTest.java
@@ -37,6 +37,7 @@ import com.jd.blockchain.ledger.core.CryptoConfig;
import com.jd.blockchain.ledger.core.DataAccountSet;
import com.jd.blockchain.ledger.core.LedgerDataset;
import com.jd.blockchain.ledger.core.LedgerEditor;
+import com.jd.blockchain.ledger.core.LedgerInitializer;
import com.jd.blockchain.ledger.core.LedgerManager;
import com.jd.blockchain.ledger.core.LedgerRepository;
import com.jd.blockchain.ledger.core.LedgerTransactionContext;
@@ -81,13 +82,12 @@ public class LedgerManagerTest {
public void testLedgerInit() {
// 创建账本初始化配置;
LedgerInitSetting initSetting = createLedgerInitSetting();
-
+
// 采用基于内存的 Storage;
MemoryKVStorage storage = new MemoryKVStorage();
// 新建账本;
- LedgerManager ledgerManager = new LedgerManager();
- LedgerEditor ldgEdt = ledgerManager.newLedger(initSetting, storage);
+ LedgerEditor ldgEdt = LedgerInitializer.createLedgerEditor(initSetting, storage);
// 创建一个模拟的创世交易;
TransactionRequest genesisTxReq = LedgerTestUtils.createLedgerInitTxRequest(participants);
diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitException.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitException.java
similarity index 75%
rename from source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitException.java
rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitException.java
index 3695a19e..c3a31079 100644
--- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitException.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitException.java
@@ -1,6 +1,4 @@
-package com.jd.blockchain.tools.initializer;
-
-import com.jd.blockchain.ledger.LedgerException;
+package com.jd.blockchain.ledger;
public class LedgerInitException extends LedgerException{
diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitProperties.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitProperties.java
similarity index 96%
rename from source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitProperties.java
rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitProperties.java
index ccc97362..f515eec5 100644
--- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitProperties.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitProperties.java
@@ -1,4 +1,4 @@
-package com.jd.blockchain.tools.initializer;
+package com.jd.blockchain.ledger;
import java.io.File;
import java.io.FileNotFoundException;
@@ -13,14 +13,8 @@ import java.util.TreeMap;
import com.jd.blockchain.consts.Global;
import com.jd.blockchain.crypto.AddressEncoding;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PubKey;
-import com.jd.blockchain.ledger.LedgerPermission;
-import com.jd.blockchain.ledger.ParticipantNode;
-import com.jd.blockchain.ledger.RoleInitData;
-import com.jd.blockchain.ledger.RoleInitSettings;
-import com.jd.blockchain.ledger.RolesPolicy;
-import com.jd.blockchain.ledger.TransactionPermission;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.PropertiesUtils;
import com.jd.blockchain.utils.StringUtils;
@@ -156,6 +150,11 @@ public class LedgerInitProperties {
return null;
}
+ /**
+ * 私有的构造器;
+ *
+ * @param ledgerSeed
+ */
private LedgerInitProperties(byte[] ledgerSeed) {
this.ledgerSeed = ledgerSeed;
}
@@ -232,7 +231,7 @@ public class LedgerInitProperties {
RoleInitData[] rolesInitDatas = rolesInitSettingMap.values()
.toArray(new RoleInitData[rolesInitSettingMap.size()]);
initProps.setRoles(rolesInitDatas);
-
+
// 解析共识相关的属性;
initProps.consensusProvider = PropertiesUtils.getRequiredProperty(props, CONSENSUS_SERVICE_PROVIDER);
String consensusConfigFilePath = PropertiesUtils.getRequiredProperty(props, CONSENSUS_CONFIG);
@@ -274,10 +273,10 @@ public class LedgerInitProperties {
String pubkeyKey = getKeyOfParticipant(i, PART_PUBKEY);
String base58PubKey = PropertiesUtils.getProperty(props, pubkeyKey, false);
if (base58PubKey != null) {
- PubKey pubKey = KeyGenCommand.decodePubKey(base58PubKey);
+ PubKey pubKey = KeyGenUtils.decodePubKey(base58PubKey);
parti.setPubKey(pubKey);
} else if (pubkeyPath != null) {
- PubKey pubKey = KeyGenCommand.readPubKey(pubkeyPath);
+ PubKey pubKey = KeyGenUtils.readPubKey(pubkeyPath);
parti.setPubKey(pubKey);
} else {
throw new IllegalArgumentException(
diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionRequestBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionRequestBuilder.java
index 0818d865..87c445ad 100644
--- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionRequestBuilder.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionRequestBuilder.java
@@ -60,7 +60,7 @@ public interface TransactionRequestBuilder extends HashObject {
* Base64格式的签名摘要;
* @return
*/
- void addEndpointSignature(DigitalSignature signature);
+ void addEndpointSignature(DigitalSignature... signature);
/**
* 加入签名;
@@ -71,7 +71,7 @@ public interface TransactionRequestBuilder extends HashObject {
* Base64格式的签名摘要;
* @return
*/
- void addNodeSignature(DigitalSignature signature);
+ void addNodeSignature(DigitalSignature... signatures);
/**
* 生成交易请求;
diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestBuilder.java
index d8627974..68653c0e 100644
--- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestBuilder.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestBuilder.java
@@ -52,13 +52,21 @@ public class TxRequestBuilder implements TransactionRequestBuilder {
}
@Override
- public void addNodeSignature(DigitalSignature signature) {
- nodeSignatures.add(signature);
+ public void addNodeSignature(DigitalSignature... signatures) {
+ if (signatures != null) {
+ for (DigitalSignature s : signatures) {
+ nodeSignatures.add(s);
+ }
+ }
}
@Override
- public void addEndpointSignature(DigitalSignature signature) {
- endpointSignatures.add(signature);
+ public void addEndpointSignature(DigitalSignature... signatures) {
+ if (signatures != null) {
+ for (DigitalSignature s : signatures) {
+ endpointSignatures.add(s);
+ }
+ }
}
// public static DigitalSignature sign(TransactionContent txContent, AsymmetricKeypair keyPair) {
diff --git a/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Params.java b/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Params.java
index 491abef8..cc2c5bb2 100644
--- a/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Params.java
+++ b/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Params.java
@@ -8,9 +8,9 @@
*/
package com.jd.blockchain.sdk.samples;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
/**
*
@@ -33,13 +33,13 @@ public class SDKDemo_Params {
"177gk2FpjufgEon92mf2oRRFXDBZkRy8SkFci7Jxc5pApZEJz3oeCoxieWatDD3Xg7i1QEN",
"177gjvv7qvfCAXroFezSn23UFXLVLFofKS3y6DXkJ2DwVWS4LcRNtxRgiqWmQEeWNz4KQ3J" };
- public static PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
- public static PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
- public static PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
- public static PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
+ public static PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
+ public static PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
+ public static PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
+ public static PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
- public static PubKey pubKey0 = KeyGenCommand.decodePubKey(PUB_KEYS[0]);
- public static PubKey pubKey1 = KeyGenCommand.decodePubKey(PUB_KEYS[1]);
- public static PubKey pubKey2 = KeyGenCommand.decodePubKey(PUB_KEYS[2]);
- public static PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]);
+ public static PubKey pubKey0 = KeyGenUtils.decodePubKey(PUB_KEYS[0]);
+ public static PubKey pubKey1 = KeyGenUtils.decodePubKey(PUB_KEYS[1]);
+ public static PubKey pubKey2 = KeyGenUtils.decodePubKey(PUB_KEYS[2]);
+ public static PubKey pubKey3 = KeyGenUtils.decodePubKey(PUB_KEYS[3]);
}
\ No newline at end of file
diff --git a/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Base_Demo.java b/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Base_Demo.java
index bbd4ed71..c2a7ce73 100644
--- a/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Base_Demo.java
+++ b/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDK_Base_Demo.java
@@ -1,6 +1,7 @@
package com.jd.blockchain.sdk.samples;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.BlockchainKeypair;
@@ -9,7 +10,6 @@ import com.jd.blockchain.ledger.TransactionResponse;
import com.jd.blockchain.ledger.TransactionTemplate;
import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.client.GatewayServiceFactory;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
public abstract class SDK_Base_Demo {
@@ -25,9 +25,9 @@ public abstract class SDK_Base_Demo {
public void init() {
// 生成连接网关的账号
- PrivKey privKey = KeyGenCommand.decodePrivKeyWithRawPassword(SDKDemo_Constant.PRIV_KEYS[0], SDKDemo_Constant.PASSWORD);
+ PrivKey privKey = KeyGenUtils.decodePrivKeyWithRawPassword(SDKDemo_Constant.PRIV_KEYS[0], SDKDemo_Constant.PASSWORD);
- PubKey pubKey = KeyGenCommand.decodePubKey(SDKDemo_Constant.PUB_KEYS[0]);
+ PubKey pubKey = KeyGenUtils.decodePubKey(SDKDemo_Constant.PUB_KEYS[0]);
adminKey = new BlockchainKeypair(pubKey, privKey);
diff --git a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDKDemo_Contract_Test_.java b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDKDemo_Contract_Test_.java
index 2f7755da..4390c48c 100644
--- a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDKDemo_Contract_Test_.java
+++ b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDKDemo_Contract_Test_.java
@@ -8,6 +8,7 @@ import org.junit.Test;
import com.jd.blockchain.contract.TransferContract;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.BlockchainKeyGenerator;
@@ -18,9 +19,8 @@ import com.jd.blockchain.ledger.TransactionTemplate;
import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.client.GatewayServiceFactory;
import com.jd.blockchain.sdk.samples.SDKDemo_Constant;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
-import com.jd.blockchain.transaction.LongValueHolder;
import com.jd.blockchain.transaction.GenericValueHolder;
+import com.jd.blockchain.transaction.LongValueHolder;
import com.jd.blockchain.utils.Bytes;
public class SDKDemo_Contract_Test_ {
@@ -34,10 +34,10 @@ public class SDKDemo_Contract_Test_ {
@Before
public void init() {
// 生成连接网关的账号
- PrivKey privKey = KeyGenCommand.decodePrivKeyWithRawPassword(SDKDemo_Constant.PRIV_KEYS[0],
+ PrivKey privKey = KeyGenUtils.decodePrivKeyWithRawPassword(SDKDemo_Constant.PRIV_KEYS[0],
SDKDemo_Constant.PASSWORD);
- PubKey pubKey = KeyGenCommand.decodePubKey(SDKDemo_Constant.PUB_KEYS[0]);
+ PubKey pubKey = KeyGenUtils.decodePubKey(SDKDemo_Constant.PUB_KEYS[0]);
adminKey = new BlockchainKeypair(pubKey, privKey);
diff --git a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_KeyPair_Para.java b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_KeyPair_Para.java
index 450e5ff4..706cd370 100644
--- a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_KeyPair_Para.java
+++ b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_KeyPair_Para.java
@@ -1,8 +1,8 @@
package test.com.jd.blockchain.sdk.test;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
/**
* Created by zhangshuang3 on 2018/10/17.
@@ -21,14 +21,14 @@ public class SDK_GateWay_KeyPair_Para {
"177gjtwLgmSx5v1hFb46ijh7L9kdbKUpJYqdKVf9afiEmAuLgo8Rck9yu5UuUcHknWJuWaF",
"177gk1pudweTq5zgJTh8y3ENCTwtSFsKyX7YnpuKPo7rKgCkCBXVXh5z2syaTCPEMbuWRns" };
- public static PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
- public static PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
- public static PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
- public static PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
+ public static PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
+ public static PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
+ public static PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
+ public static PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
- public static PubKey pubKey0 = KeyGenCommand.decodePubKey(PUB_KEYS[0]);
- public static PubKey pubKey1 = KeyGenCommand.decodePubKey(PUB_KEYS[1]);
- public static PubKey pubKey2 = KeyGenCommand.decodePubKey(PUB_KEYS[2]);
- public static PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]);
+ public static PubKey pubKey0 = KeyGenUtils.decodePubKey(PUB_KEYS[0]);
+ public static PubKey pubKey1 = KeyGenUtils.decodePubKey(PUB_KEYS[1]);
+ public static PubKey pubKey2 = KeyGenUtils.decodePubKey(PUB_KEYS[2]);
+ public static PubKey pubKey3 = KeyGenUtils.decodePubKey(PUB_KEYS[3]);
}
diff --git a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/IntegrationTest.java b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/IntegrationTest.java
index 014dcd62..e6c999e8 100644
--- a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/IntegrationTest.java
+++ b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/IntegrationTest.java
@@ -17,6 +17,7 @@ import com.jd.blockchain.crypto.AddressEncoding;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.Crypto;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.gateway.GatewayConfigProperties.KeyPairConfig;
@@ -28,6 +29,7 @@ import com.jd.blockchain.ledger.DataAccountKVSetOperation;
import com.jd.blockchain.ledger.KVDataEntry;
import com.jd.blockchain.ledger.LedgerBlock;
import com.jd.blockchain.ledger.LedgerInfo;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.ParticipantNode;
import com.jd.blockchain.ledger.PreparedTransaction;
import com.jd.blockchain.ledger.TransactionResponse;
@@ -42,9 +44,7 @@ import com.jd.blockchain.sdk.client.GatewayServiceFactory;
import com.jd.blockchain.storage.service.KVStorageService;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.codec.HexUtils;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -110,7 +110,7 @@ public class IntegrationTest {
peerStarting2.waitReturn();
peerStarting3.waitReturn();
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeWebTest.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeWebTest.PASSWORD);
KeyPairConfig gwkey0 = new KeyPairConfig();
gwkey0.setPubKeyValue(LedgerInitializeWebTest.PUB_KEYS[0]);
@@ -452,16 +452,16 @@ public class IntegrationTest {
NetworkAddress initAddr3 = initSetting.getConsensusParticipant(3).getInitializerAddress();
LedgerInitializeWebTest.NodeWebContext nodeCtx3 = new LedgerInitializeWebTest.NodeWebContext(3, initAddr3);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWebTest.PRIV_KEYS[0],
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWebTest.PRIV_KEYS[0],
LedgerInitializeWebTest.PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWebTest.PRIV_KEYS[1],
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWebTest.PRIV_KEYS[1],
LedgerInitializeWebTest.PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWebTest.PRIV_KEYS[2],
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWebTest.PRIV_KEYS[2],
LedgerInitializeWebTest.PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWebTest.PRIV_KEYS[3],
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWebTest.PRIV_KEYS[3],
LedgerInitializeWebTest.PASSWORD);
- String encodedPassword = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeWebTest.PASSWORD);
+ String encodedPassword = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeWebTest.PASSWORD);
CountDownLatch quitLatch = new CountDownLatch(4);
diff --git a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/consensus/ConsensusTest.java b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/consensus/ConsensusTest.java
index b954a08f..05493cdb 100644
--- a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/consensus/ConsensusTest.java
+++ b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/consensus/ConsensusTest.java
@@ -16,12 +16,14 @@ import com.jd.blockchain.consensus.ConsensusProviders;
import com.jd.blockchain.consensus.ConsensusSettings;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.SignatureDigest;
import com.jd.blockchain.gateway.GatewayConfigProperties.KeyPairConfig;
import com.jd.blockchain.ledger.BlockchainKeyGenerator;
import com.jd.blockchain.ledger.BlockchainKeypair;
import com.jd.blockchain.ledger.LedgerBlock;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.PreparedTransaction;
import com.jd.blockchain.ledger.TransactionContent;
import com.jd.blockchain.ledger.TransactionTemplate;
@@ -37,10 +39,8 @@ import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
import com.jd.blockchain.tools.initializer.LedgerInitCommand;
import com.jd.blockchain.tools.initializer.LedgerInitProcess;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.LedgerInitializeWebController;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.ConsoleUtils;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -90,7 +90,7 @@ public class ConsensusTest {
peerStarting2.waitReturn();
peerStarting3.waitReturn();
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(Utils.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(Utils.PASSWORD);
KeyPairConfig gwkey0 = new KeyPairConfig();
gwkey0.setPubKeyValue(Utils.PUB_KEYS[0]);
@@ -205,12 +205,12 @@ public class ConsensusTest {
NetworkAddress initAddr3 = initSetting.getConsensusParticipant(3).getInitializerAddress();
NodeInitContext nodeCtx3 = new NodeInitContext(3, initAddr3);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[0], Utils.PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[1], Utils.PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[2], Utils.PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[3], Utils.PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[0], Utils.PASSWORD);
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[1], Utils.PASSWORD);
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[2], Utils.PASSWORD);
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[3], Utils.PASSWORD);
- String encodedPassword = KeyGenCommand.encodePasswordAsBase58(Utils.PASSWORD);
+ String encodedPassword = KeyGenUtils.encodePasswordAsBase58(Utils.PASSWORD);
CountDownLatch quitLatch = new CountDownLatch(4);
diff --git a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/GlobalPerformanceTest.java b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/GlobalPerformanceTest.java
index 178cb46a..516fb8d4 100644
--- a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/GlobalPerformanceTest.java
+++ b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/GlobalPerformanceTest.java
@@ -18,12 +18,14 @@ import com.jd.blockchain.consensus.ConsensusProviders;
import com.jd.blockchain.consensus.ConsensusSettings;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.SignatureDigest;
import com.jd.blockchain.gateway.GatewayConfigProperties.KeyPairConfig;
import com.jd.blockchain.ledger.BlockchainKeyGenerator;
import com.jd.blockchain.ledger.BlockchainKeypair;
import com.jd.blockchain.ledger.LedgerBlock;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.PreparedTransaction;
import com.jd.blockchain.ledger.TransactionContent;
import com.jd.blockchain.ledger.TransactionTemplate;
@@ -38,10 +40,8 @@ import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
import com.jd.blockchain.tools.initializer.LedgerInitCommand;
import com.jd.blockchain.tools.initializer.LedgerInitProcess;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.LedgerInitializeWebController;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.ConsoleUtils;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -88,7 +88,7 @@ public class GlobalPerformanceTest {
peerStarting2.waitReturn();
peerStarting3.waitReturn();
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(Utils.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(Utils.PASSWORD);
KeyPairConfig gwkey0 = new KeyPairConfig();
gwkey0.setPubKeyValue(Utils.PUB_KEYS[0]);
@@ -203,12 +203,12 @@ public class GlobalPerformanceTest {
NetworkAddress initAddr3 = initSetting.getConsensusParticipant(3).getInitializerAddress();
NodeInitContext nodeCtx3 = new NodeInitContext(3, initAddr3);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[0], Utils.PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[1], Utils.PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[2], Utils.PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[3], Utils.PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[0], Utils.PASSWORD);
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[1], Utils.PASSWORD);
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[2], Utils.PASSWORD);
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[3], Utils.PASSWORD);
- String encodedPassword = KeyGenCommand.encodePasswordAsBase58(Utils.PASSWORD);
+ String encodedPassword = KeyGenUtils.encodePasswordAsBase58(Utils.PASSWORD);
CountDownLatch quitLatch = new CountDownLatch(4);
diff --git a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerInitializeTest.java b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerInitializeTest.java
index d33f0cb9..39618d9d 100644
--- a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerInitializeTest.java
+++ b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerInitializeTest.java
@@ -15,10 +15,12 @@ import com.jd.blockchain.crypto.AddressEncoding;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.Crypto;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.crypto.SignatureDigest;
import com.jd.blockchain.ledger.LedgerBlock;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.core.CryptoConfig;
import com.jd.blockchain.ledger.core.LedgerInitDecision;
import com.jd.blockchain.ledger.core.LedgerInitProposal;
@@ -30,12 +32,10 @@ import com.jd.blockchain.storage.service.utils.MemoryDBConnFactory;
//import com.jd.blockchain.storage.service.utils.MemoryBasedDb;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerInitProcess;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.InitConsensusServiceFactory;
import com.jd.blockchain.tools.initializer.web.LedgerInitConsensusService;
import com.jd.blockchain.tools.initializer.web.LedgerInitializeWebController;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -81,22 +81,22 @@ public class LedgerInitializeTest {
String[] memoryConnString = new String[] { "memory://local/0", "memory://local/1", "memory://local/2",
"memory://local/3" };
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
DBConnectionConfig testDb0 = new DBConnectionConfig();
testDb0.setConnectionUri(memoryConnString[0]);
AsyncCallback callback0 = node0.startInit(0, privkey0, initSetting, testDb0, consolePrompter);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
DBConnectionConfig testDb1 = new DBConnectionConfig();
testDb1.setConnectionUri(memoryConnString[1]);
AsyncCallback callback1 = node1.startInit(1, privkey1, initSetting, testDb1, consolePrompter);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
DBConnectionConfig testDb2 = new DBConnectionConfig();
testDb2.setConnectionUri(memoryConnString[2]);
AsyncCallback callback2 = node2.startInit(2, privkey2, initSetting, testDb2, consolePrompter);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
DBConnectionConfig testDb03 = new DBConnectionConfig();
testDb03.setConnectionUri(memoryConnString[3]);
AsyncCallback callback3 = node3.startInit(3, privkey3, initSetting, testDb03, consolePrompter);
@@ -115,19 +115,19 @@ public class LedgerInitializeTest {
UserAccountSet userset0 = ledger0.getUserAccountSet(genesisBlock);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(PUB_KEYS[0]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(PUB_KEYS[0]);
Bytes address0 = AddressEncoding.generateAddress(pubKey0);
UserAccount user0_0 = userset0.getUser(address0);
- PubKey pubKey1 = KeyGenCommand.decodePubKey(PUB_KEYS[1]);
+ PubKey pubKey1 = KeyGenUtils.decodePubKey(PUB_KEYS[1]);
Bytes address1 = AddressEncoding.generateAddress(pubKey1);
UserAccount user1_0 = userset0.getUser(address1);
- PubKey pubKey2 = KeyGenCommand.decodePubKey(PUB_KEYS[2]);
+ PubKey pubKey2 = KeyGenUtils.decodePubKey(PUB_KEYS[2]);
Bytes address2 = AddressEncoding.generateAddress(pubKey2);
UserAccount user2_0 = userset0.getUser(address2);
- PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]);
+ PubKey pubKey3 = KeyGenUtils.decodePubKey(PUB_KEYS[3]);
Bytes address3 = AddressEncoding.generateAddress(pubKey3);
UserAccount user3_0 = userset0.getUser(address3);
}
@@ -182,8 +182,8 @@ public class LedgerInitializeTest {
public NodeContext(NetworkAddress address, Map serviceRegisterMap) {
this.initCsServiceFactory = new MultiThreadInterInvokerFactory(serviceRegisterMap);
- LedgerInitializeWebController initController = new LedgerInitializeWebController(ledgerManager,
- memoryDBConnFactory, initCsServiceFactory);
+ LedgerInitializeWebController initController = new LedgerInitializeWebController(memoryDBConnFactory,
+ initCsServiceFactory);
serviceRegisterMap.put(address, initController);
this.initProcess = initController;
}
diff --git a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerInitializeWebTest.java b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerInitializeWebTest.java
index 122bcf00..7b49bfb7 100644
--- a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerInitializeWebTest.java
+++ b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerInitializeWebTest.java
@@ -16,12 +16,14 @@ import com.jd.blockchain.consensus.ConsensusSettings;
import com.jd.blockchain.crypto.AddressEncoding;
import com.jd.blockchain.crypto.Crypto;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.crypto.SignatureDigest;
import com.jd.blockchain.crypto.SignatureFunction;
import com.jd.blockchain.ledger.LedgerBlock;
import com.jd.blockchain.ledger.LedgerInitOperation;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.Operation;
import com.jd.blockchain.ledger.TransactionContent;
import com.jd.blockchain.ledger.UserRegisterOperation;
@@ -38,12 +40,10 @@ import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
import com.jd.blockchain.tools.initializer.LedgerInitCommand;
import com.jd.blockchain.tools.initializer.LedgerInitProcess;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.HttpInitConsensServiceFactory;
import com.jd.blockchain.tools.initializer.web.LedgerInitConsensusService;
import com.jd.blockchain.tools.initializer.web.LedgerInitializeWebController;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -101,15 +101,15 @@ public class LedgerInitializeWebTest {
node2.setPrompter(prompter);
node3.setPrompter(prompter);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(PUB_KEYS[0]);
- PubKey pubKey1 = KeyGenCommand.decodePubKey(PUB_KEYS[1]);
- PubKey pubKey2 = KeyGenCommand.decodePubKey(PUB_KEYS[2]);
- PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(PUB_KEYS[0]);
+ PubKey pubKey1 = KeyGenUtils.decodePubKey(PUB_KEYS[1]);
+ PubKey pubKey2 = KeyGenUtils.decodePubKey(PUB_KEYS[2]);
+ PubKey pubKey3 = KeyGenUtils.decodePubKey(PUB_KEYS[3]);
// 测试生成“账本初始化许可”;
LedgerInitProposal permission0 = testPreparePermisssion(node0, privkey0, initSetting, csProps);
@@ -259,10 +259,10 @@ public class LedgerInitializeWebTest {
NetworkAddress initAddr3 = initSetting.getConsensusParticipant(3).getInitializerAddress();
NodeWebContext node3 = new NodeWebContext(3, initAddr3);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
CountDownLatch quitLatch = new CountDownLatch(4);
@@ -300,19 +300,19 @@ public class LedgerInitializeWebTest {
UserAccountSet userset0 = ledger0.getUserAccountSet(genesisBlock);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(PUB_KEYS[0]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(PUB_KEYS[0]);
Bytes address0 = AddressEncoding.generateAddress(pubKey0);
UserAccount user0_0 = userset0.getUser(address0);
- PubKey pubKey1 = KeyGenCommand.decodePubKey(PUB_KEYS[1]);
+ PubKey pubKey1 = KeyGenUtils.decodePubKey(PUB_KEYS[1]);
Bytes address1 = AddressEncoding.generateAddress(pubKey1);
UserAccount user1_0 = userset0.getUser(address1);
- PubKey pubKey2 = KeyGenCommand.decodePubKey(PUB_KEYS[2]);
+ PubKey pubKey2 = KeyGenUtils.decodePubKey(PUB_KEYS[2]);
Bytes address2 = AddressEncoding.generateAddress(pubKey2);
UserAccount user2_0 = userset0.getUser(address2);
- PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]);
+ PubKey pubKey3 = KeyGenUtils.decodePubKey(PUB_KEYS[3]);
Bytes address3 = AddressEncoding.generateAddress(pubKey3);
UserAccount user3_0 = userset0.getUser(address3);
}
diff --git a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerPerformanceTest.java b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerPerformanceTest.java
index 07c05e08..03243aa4 100644
--- a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerPerformanceTest.java
+++ b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerPerformanceTest.java
@@ -21,6 +21,7 @@ import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.Crypto;
import com.jd.blockchain.crypto.CryptoAlgorithm;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.ledger.BlockchainIdentity;
import com.jd.blockchain.ledger.BlockchainKeyGenerator;
@@ -30,6 +31,7 @@ import com.jd.blockchain.ledger.DataAccountKVSetOperation;
import com.jd.blockchain.ledger.DataAccountRegisterOperation;
import com.jd.blockchain.ledger.LedgerBlock;
import com.jd.blockchain.ledger.LedgerInitOperation;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.LedgerPermission;
import com.jd.blockchain.ledger.LedgerSecurityException;
import com.jd.blockchain.ledger.TransactionPermission;
@@ -54,10 +56,8 @@ import com.jd.blockchain.storage.service.impl.redis.RedisStorageService;
import com.jd.blockchain.storage.service.impl.rocksdb.RocksDBConnectionFactory;
import com.jd.blockchain.storage.service.utils.MemoryDBConnFactory;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.LedgerInitConsensusService;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.transaction.TxBuilder;
import com.jd.blockchain.utils.ArgumentSet;
import com.jd.blockchain.utils.Bytes;
@@ -559,19 +559,19 @@ public class LedgerPerformanceTest {
NodeContext node3 = new NodeContext(initSetting.getConsensusParticipant(3).getInitializerAddress(),
serviceRegisterMap, dbsetting3.connectionFactory);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[0], Utils.PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[0], Utils.PASSWORD);
AsyncCallback callback0 = node0.startInit(0, privkey0, initSetting, csProps, csProvider,
dbsetting0.connectionConfig, consolePrompter, !optimized, hashAlg);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[1], Utils.PASSWORD);
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[1], Utils.PASSWORD);
AsyncCallback callback1 = node1.startInit(1, privkey1, initSetting, csProps, csProvider,
dbsetting1.connectionConfig, consolePrompter, !optimized, hashAlg);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[2], Utils.PASSWORD);
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[2], Utils.PASSWORD);
AsyncCallback callback2 = node2.startInit(2, privkey2, initSetting, csProps, csProvider,
dbsetting2.connectionConfig, consolePrompter, !optimized, hashAlg);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[3], Utils.PASSWORD);
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(Utils.PRIV_KEYS[3], Utils.PASSWORD);
AsyncCallback callback3 = node3.startInit(3, privkey3, initSetting, csProps, csProvider,
dbsetting3.connectionConfig, consolePrompter, !optimized, hashAlg);
diff --git a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/Utils.java b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/Utils.java
index d8424013..f6f92da4 100644
--- a/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/Utils.java
+++ b/source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/Utils.java
@@ -16,12 +16,14 @@ import com.jd.blockchain.crypto.Crypto;
import com.jd.blockchain.crypto.CryptoAlgorithm;
import com.jd.blockchain.crypto.CryptoProvider;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.crypto.SignatureDigest;
import com.jd.blockchain.crypto.service.classic.ClassicCryptoService;
import com.jd.blockchain.crypto.service.sm.SMCryptoService;
import com.jd.blockchain.ledger.CryptoSetting;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.ParticipantNode;
import com.jd.blockchain.ledger.core.CryptoConfig;
import com.jd.blockchain.ledger.core.LedgerInitDecision;
@@ -31,12 +33,10 @@ import com.jd.blockchain.ledger.core.LedgerRepository;
import com.jd.blockchain.storage.service.DbConnectionFactory;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerInitProcess;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.InitConsensusServiceFactory;
import com.jd.blockchain.tools.initializer.web.LedgerInitConsensusService;
import com.jd.blockchain.tools.initializer.web.LedgerInitializeWebController;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -47,8 +47,7 @@ public class Utils {
public static final String PASSWORD = "abc";
- public static final String[] PUB_KEYS = {
- "3snPdw7i7PjVKiTH2VnXZu5H8QmNaSXpnk4ei533jFpuifyjS5zzH9",
+ public static final String[] PUB_KEYS = { "3snPdw7i7PjVKiTH2VnXZu5H8QmNaSXpnk4ei533jFpuifyjS5zzH9",
"3snPdw7i7PajLB35tEau1kmixc6ZrjLXgxwKbkv5bHhP7nT5dhD9eX",
"3snPdw7i7PZi6TStiyc6mzjprnNhgs2atSGNS8wPYzhbKaUWGFJt7x",
"3snPdw7i7PifPuRX7fu3jBjsb3rJRfDe9GtbDfvFJaJ4V4hHXQfhwk" };
@@ -86,7 +85,7 @@ public class Utils {
public static ParticipantNode[] loadParticipantNodes() {
ParticipantNode[] participantNodes = new ParticipantNode[PUB_KEYS.length];
for (int i = 0; i < PUB_KEYS.length; i++) {
- participantNodes[i] = new PartNode(i, KeyGenCommand.decodePubKey(PUB_KEYS[i]));
+ participantNodes[i] = new PartNode(i, KeyGenUtils.decodePubKey(PUB_KEYS[i]));
}
return participantNodes;
}
@@ -119,8 +118,8 @@ public class Utils {
DbConnectionFactory dbConnFactory) {
this.dbConnFactory = dbConnFactory;
this.initCsServiceFactory = new MultiThreadInterInvokerFactory(serviceRegisterMap);
- LedgerInitializeWebController initController = new LedgerInitializeWebController(ledgerManager,
- dbConnFactory, initCsServiceFactory);
+ LedgerInitializeWebController initController = new LedgerInitializeWebController(dbConnFactory,
+ initCsServiceFactory);
serviceRegisterMap.put(address, initController);
this.initProcess = initController;
}
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationBaseTest.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationBaseTest.java
index 0fb2d461..46df4b5a 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationBaseTest.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationBaseTest.java
@@ -14,15 +14,15 @@ import com.jd.blockchain.consensus.ConsensusProvider;
import com.jd.blockchain.consensus.ConsensusSettings;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.gateway.GatewayConfigProperties.KeyPairConfig;
import com.jd.blockchain.ledger.LedgerBlock;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.core.LedgerRepository;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
import com.jd.blockchain.utils.net.NetworkAddress;
@@ -68,7 +68,7 @@ public class IntegrationBaseTest {
peerStarting2.waitReturn();
peerStarting3.waitReturn();
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
KeyPairConfig gwkey0 = new KeyPairConfig();
gwkey0.setPubKeyValue(LedgerInitializeWeb4SingleStepsTest.PUB_KEYS[0]);
@@ -140,16 +140,16 @@ public class IntegrationBaseTest {
NetworkAddress initAddr3 = initSetting.getConsensusParticipant(3).getInitializerAddress();
NodeWebContext nodeCtx3 = new NodeWebContext(3, initAddr3);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[0],
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[0],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[1],
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[1],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[2],
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[2],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[3],
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[3],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- String encodedPassword = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
+ String encodedPassword = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
CountDownLatch quitLatch = new CountDownLatch(4);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest2.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest2.java
index 3e5a1e85..cf2774b1 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest2.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest2.java
@@ -18,12 +18,14 @@ import com.jd.blockchain.consensus.ConsensusProvider;
import com.jd.blockchain.consensus.ConsensusSettings;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.gateway.GatewayConfigProperties.KeyPairConfig;
import com.jd.blockchain.ledger.BlockchainKeyGenerator;
import com.jd.blockchain.ledger.BlockchainKeypair;
import com.jd.blockchain.ledger.LedgerBlock;
import com.jd.blockchain.ledger.LedgerInfo;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.PreparedTransaction;
import com.jd.blockchain.ledger.TransactionResponse;
import com.jd.blockchain.ledger.TransactionTemplate;
@@ -32,9 +34,7 @@ import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.client.GatewayServiceFactory;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
import com.jd.blockchain.utils.net.NetworkAddress;
@@ -85,7 +85,7 @@ public class IntegrationTest2 {
peerStarting2.waitReturn();
peerStarting3.waitReturn();
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
KeyPairConfig gwkey0 = new KeyPairConfig();
gwkey0.setPubKeyValue(LedgerInitializeWeb4SingleStepsTest.PUB_KEYS[0]);
@@ -178,16 +178,16 @@ public class IntegrationTest2 {
NetworkAddress initAddr3 = initSetting.getConsensusParticipant(3).getInitializerAddress();
NodeWebContext nodeCtx3 = new NodeWebContext(3, initAddr3);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[0],
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[0],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[1],
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[1],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[2],
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[2],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[3],
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[3],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- String encodedPassword = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
+ String encodedPassword = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
CountDownLatch quitLatch = new CountDownLatch(4);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4Bftsmart.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4Bftsmart.java
index 9b7ae2ba..1838495d 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4Bftsmart.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4Bftsmart.java
@@ -2,6 +2,7 @@ package test.com.jd.blockchain.intgr;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.gateway.GatewayConfigProperties;
@@ -11,7 +12,6 @@ import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.client.GatewayServiceFactory;
import com.jd.blockchain.storage.service.DbConnectionFactory;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import org.junit.Test;
@@ -65,7 +65,7 @@ public class IntegrationTest4Bftsmart {
DbConnectionFactory dbConnectionFactory2 = peerNodes[2].getDBConnectionFactory();
DbConnectionFactory dbConnectionFactory3 = peerNodes[3].getDBConnectionFactory();
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeTest.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeTest.PASSWORD);
GatewayConfigProperties.KeyPairConfig gwkey0 = new GatewayConfigProperties.KeyPairConfig();
gwkey0.setPubKeyValue(IntegrationBase.PUB_KEYS[0]);
@@ -97,9 +97,9 @@ public class IntegrationTest4Bftsmart {
GatewayServiceFactory gwsrvFact = GatewayServiceFactory.connect(gateway.getServiceAddress());
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(IntegrationBase.PRIV_KEYS[0], IntegrationBase.PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(IntegrationBase.PRIV_KEYS[0], IntegrationBase.PASSWORD);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(IntegrationBase.PUB_KEYS[0]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(IntegrationBase.PUB_KEYS[0]);
AsymmetricKeypair adminKey = new AsymmetricKeypair(pubKey0, privkey0);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4Contract.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4Contract.java
index b2067f62..dc2c3ea1 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4Contract.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4Contract.java
@@ -2,6 +2,7 @@ package test.com.jd.blockchain.intgr;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.gateway.GatewayConfigProperties;
@@ -11,7 +12,6 @@ import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.client.GatewayServiceFactory;
import com.jd.blockchain.storage.service.DbConnectionFactory;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import org.junit.Test;
@@ -46,7 +46,7 @@ public class IntegrationTest4Contract {
DbConnectionFactory dbConnectionFactory2 = peerNodes[2].getDBConnectionFactory();
DbConnectionFactory dbConnectionFactory3 = peerNodes[3].getDBConnectionFactory();
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeTest.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeTest.PASSWORD);
GatewayConfigProperties.KeyPairConfig gwkey0 = new GatewayConfigProperties.KeyPairConfig();
gwkey0.setPubKeyValue(IntegrationBase.PUB_KEYS[0]);
@@ -78,9 +78,9 @@ public class IntegrationTest4Contract {
GatewayServiceFactory gwsrvFact = GatewayServiceFactory.connect(gateway.getServiceAddress());
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(IntegrationBase.PRIV_KEYS[0], IntegrationBase.PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(IntegrationBase.PRIV_KEYS[0], IntegrationBase.PASSWORD);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(IntegrationBase.PUB_KEYS[0]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(IntegrationBase.PUB_KEYS[0]);
AsymmetricKeypair adminKey = new AsymmetricKeypair(pubKey0, privkey0);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4MQ.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4MQ.java
index 6e8c7f1a..f401941c 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4MQ.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTest4MQ.java
@@ -2,6 +2,7 @@ package test.com.jd.blockchain.intgr;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.gateway.GatewayConfigProperties.KeyPairConfig;
@@ -11,7 +12,6 @@ import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.client.GatewayServiceFactory;
import com.jd.blockchain.storage.service.DbConnectionFactory;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
import com.jd.blockchain.utils.io.FileUtils;
@@ -72,7 +72,7 @@ public class IntegrationTest4MQ {
DbConnectionFactory dbConnectionFactory2 = peerNodes[2].getDBConnectionFactory();
DbConnectionFactory dbConnectionFactory3 = peerNodes[3].getDBConnectionFactory();
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeTest.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeTest.PASSWORD);
KeyPairConfig gwkey0 = new KeyPairConfig();
gwkey0.setPubKeyValue(IntegrationBase.PUB_KEYS[0]);
@@ -107,9 +107,9 @@ public class IntegrationTest4MQ {
GatewayServiceFactory gwsrvFact = GatewayServiceFactory.connect(gateway.getServiceAddress());
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(IntegrationBase.PRIV_KEYS[0], IntegrationBase.PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(IntegrationBase.PRIV_KEYS[0], IntegrationBase.PASSWORD);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(IntegrationBase.PUB_KEYS[0]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(IntegrationBase.PUB_KEYS[0]);
AsymmetricKeypair adminKey = new AsymmetricKeypair(pubKey0, privkey0);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTestAll4Redis.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTestAll4Redis.java
index 00470903..4ee5c5e8 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTestAll4Redis.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTestAll4Redis.java
@@ -2,7 +2,6 @@ package test.com.jd.blockchain.intgr;
import com.jd.blockchain.crypto.*;
import com.jd.blockchain.gateway.GatewayConfigProperties.KeyPairConfig;
-import com.jd.blockchain.ledger.BytesValue;
import com.jd.blockchain.ledger.*;
import com.jd.blockchain.ledger.core.DataAccount;
import com.jd.blockchain.ledger.core.DataAccountSet;
@@ -14,8 +13,6 @@ import com.jd.blockchain.sdk.client.GatewayServiceFactory;
import com.jd.blockchain.storage.service.DbConnection;
import com.jd.blockchain.storage.service.DbConnectionFactory;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.codec.HexUtils;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -99,7 +96,7 @@ public class IntegrationTestAll4Redis {
DbConnectionFactory dbConnectionFactory2 = peer2.getDBConnectionFactory();
DbConnectionFactory dbConnectionFactory3 = peer3.getDBConnectionFactory();
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
KeyPairConfig gwkey0 = new KeyPairConfig();
gwkey0.setPubKeyValue(PUB_KEYS[0]);
@@ -118,15 +115,15 @@ public class IntegrationTestAll4Redis {
dbConnectionFactory3 });
testConsistencyAmongNodes(ledgers);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(PUB_KEYS[0]);
- PubKey pubKey1 = KeyGenCommand.decodePubKey(PUB_KEYS[1]);
- PubKey pubKey2 = KeyGenCommand.decodePubKey(PUB_KEYS[2]);
- PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(PUB_KEYS[0]);
+ PubKey pubKey1 = KeyGenUtils.decodePubKey(PUB_KEYS[1]);
+ PubKey pubKey2 = KeyGenUtils.decodePubKey(PUB_KEYS[2]);
+ PubKey pubKey3 = KeyGenUtils.decodePubKey(PUB_KEYS[3]);
AsymmetricKeypair adminKey = new AsymmetricKeypair(pubKey0, privkey0);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTestDataAccount.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTestDataAccount.java
index e23fc48a..4efd7ae5 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTestDataAccount.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/IntegrationTestDataAccount.java
@@ -16,6 +16,7 @@ import com.jd.blockchain.consensus.ConsensusProvider;
import com.jd.blockchain.consensus.ConsensusSettings;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.gateway.GatewayConfigProperties.KeyPairConfig;
@@ -24,6 +25,7 @@ import com.jd.blockchain.ledger.BlockchainKeypair;
import com.jd.blockchain.ledger.DataAccountKVSetOperation;
import com.jd.blockchain.ledger.KVDataEntry;
import com.jd.blockchain.ledger.LedgerBlock;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.PreparedTransaction;
import com.jd.blockchain.ledger.TransactionResponse;
import com.jd.blockchain.ledger.TransactionTemplate;
@@ -35,9 +37,7 @@ import com.jd.blockchain.sdk.client.GatewayServiceFactory;
import com.jd.blockchain.storage.service.DbConnection;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
import com.jd.blockchain.utils.io.BytesUtils;
@@ -99,7 +99,7 @@ public class IntegrationTestDataAccount {
peerStarting2.waitReturn();
peerStarting3.waitReturn();
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
KeyPairConfig gwkey0 = new KeyPairConfig();
gwkey0.setPubKeyValue(LedgerInitializeWeb4SingleStepsTest.PUB_KEYS[0]);
@@ -123,9 +123,9 @@ public class IntegrationTestDataAccount {
testConsistencyAmongNodes(context);
// temp test add
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[0],
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[0],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(LedgerInitializeWeb4SingleStepsTest.PUB_KEYS[0]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(LedgerInitializeWeb4SingleStepsTest.PUB_KEYS[0]);
AsymmetricKeypair adminKey = new AsymmetricKeypair(pubKey0, privkey0);
// regist data account
@@ -275,16 +275,16 @@ public class IntegrationTestDataAccount {
NetworkAddress initAddr3 = initSetting.getConsensusParticipant(3).getInitializerAddress();
NodeWebContext nodeCtx3 = new NodeWebContext(3, initAddr3);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[0],
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[0],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[1],
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[1],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[2],
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[2],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[3],
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeWeb4SingleStepsTest.PRIV_KEYS[3],
LedgerInitializeWeb4SingleStepsTest.PASSWORD);
- String encodedPassword = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
+ String encodedPassword = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeWeb4SingleStepsTest.PASSWORD);
CountDownLatch quitLatch = new CountDownLatch(4);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/batch/bftsmart/BftsmartLedgerInit.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/batch/bftsmart/BftsmartLedgerInit.java
index 11f7d8e6..4d45e4a0 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/batch/bftsmart/BftsmartLedgerInit.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/batch/bftsmart/BftsmartLedgerInit.java
@@ -10,6 +10,7 @@ package test.com.jd.blockchain.intgr.batch.bftsmart;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.gateway.GatewayConfigProperties;
@@ -21,7 +22,6 @@ import com.jd.blockchain.sdk.client.GatewayServiceFactory;
import com.jd.blockchain.storage.service.DbConnectionFactory;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
import com.jd.blockchain.tools.initializer.LedgerInitCommand;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import com.jd.blockchain.utils.io.FileUtils;
import com.jd.blockchain.utils.net.NetworkAddress;
@@ -177,9 +177,9 @@ public class BftsmartLedgerInit {
GatewayServiceFactory gwsrvFact = GatewayServiceFactory.connect(gateway.getServiceAddress());
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(BftsmartConfig.PRIV_KEY[0], IntegrationBase.PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(BftsmartConfig.PRIV_KEY[0], IntegrationBase.PASSWORD);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(BftsmartConfig.PUB_KEY[0]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(BftsmartConfig.PUB_KEY[0]);
AsymmetricKeypair adminKey = new AsymmetricKeypair(pubKey0, privkey0);
@@ -233,7 +233,7 @@ public class BftsmartLedgerInit {
}
public GatewayTestRunner initGateWay(PeerTestRunner peerNode) {
- String encodedBase58Pwd = KeyGenCommand.encodePasswordAsBase58(LedgerInitializeTest.PASSWORD);
+ String encodedBase58Pwd = KeyGenUtils.encodePasswordAsBase58(LedgerInitializeTest.PASSWORD);
GatewayConfigProperties.KeyPairConfig gwkey0 = new GatewayConfigProperties.KeyPairConfig();
gwkey0.setPubKeyValue(BftsmartConfig.PUB_KEY[0]);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/batch/bftsmart/BftsmartTestBase.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/batch/bftsmart/BftsmartTestBase.java
index f94f9364..9a485a22 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/batch/bftsmart/BftsmartTestBase.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/batch/bftsmart/BftsmartTestBase.java
@@ -8,8 +8,8 @@
*/
package test.com.jd.blockchain.intgr.batch.bftsmart;
-import static com.jd.blockchain.tools.keygen.KeyGenCommand.encodePrivKey;
-import static com.jd.blockchain.tools.keygen.KeyGenCommand.encodePubKey;
+import static com.jd.blockchain.crypto.KeyGenUtils.encodePrivKey;
+import static com.jd.blockchain.crypto.KeyGenUtils.encodePubKey;
import org.junit.Test;
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeTest.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeTest.java
index 101c874b..813c964c 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeTest.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeTest.java
@@ -18,6 +18,7 @@ import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.Crypto;
import com.jd.blockchain.crypto.CryptoProvider;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.crypto.SignatureDigest;
@@ -25,6 +26,7 @@ import com.jd.blockchain.crypto.service.classic.ClassicCryptoService;
import com.jd.blockchain.crypto.service.sm.SMCryptoService;
import com.jd.blockchain.ledger.LedgerBlock;
import com.jd.blockchain.ledger.LedgerInitOperation;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.UserRegisterOperation;
import com.jd.blockchain.ledger.core.CryptoConfig;
import com.jd.blockchain.ledger.core.LedgerInitDecision;
@@ -36,12 +38,10 @@ import com.jd.blockchain.ledger.core.UserAccountSet;
import com.jd.blockchain.storage.service.utils.MemoryDBConnFactory;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerInitProcess;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.InitConsensusServiceFactory;
import com.jd.blockchain.tools.initializer.web.LedgerInitConsensusService;
import com.jd.blockchain.tools.initializer.web.LedgerInitializeWebController;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -99,22 +99,22 @@ public class LedgerInitializeTest {
NodeContext node3 = new NodeContext(initSetting.getConsensusParticipant(3).getInitializerAddress(),
serviceRegisterMap);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
DBConnectionConfig testDb0 = new DBConnectionConfig();
testDb0.setConnectionUri(dbConnections[0]);
AsyncCallback callback0 = node0.startInit(0, privkey0, initSetting, testDb0, consolePrompter);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
DBConnectionConfig testDb1 = new DBConnectionConfig();
testDb1.setConnectionUri(dbConnections[1]);
AsyncCallback callback1 = node1.startInit(1, privkey1, initSetting, testDb1, consolePrompter);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
DBConnectionConfig testDb2 = new DBConnectionConfig();
testDb2.setConnectionUri(dbConnections[2]);
AsyncCallback callback2 = node2.startInit(2, privkey2, initSetting, testDb2, consolePrompter);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
DBConnectionConfig testDb03 = new DBConnectionConfig();
testDb03.setConnectionUri(dbConnections[3]);
AsyncCallback callback3 = node3.startInit(3, privkey3, initSetting, testDb03, consolePrompter);
@@ -145,22 +145,22 @@ public class LedgerInitializeTest {
UserAccountSet userset0 = ledger0.getUserAccountSet(genesisBlock);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(PUB_KEYS[0]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(PUB_KEYS[0]);
Bytes address0 = AddressEncoding.generateAddress(pubKey0);
UserAccount user0_0 = userset0.getUser(address0);
assertNotNull(user0_0);
- PubKey pubKey1 = KeyGenCommand.decodePubKey(PUB_KEYS[1]);
+ PubKey pubKey1 = KeyGenUtils.decodePubKey(PUB_KEYS[1]);
Bytes address1 = AddressEncoding.generateAddress(pubKey1);
UserAccount user1_0 = userset0.getUser(address1);
assertNotNull(user1_0);
- PubKey pubKey2 = KeyGenCommand.decodePubKey(PUB_KEYS[2]);
+ PubKey pubKey2 = KeyGenUtils.decodePubKey(PUB_KEYS[2]);
Bytes address2 = AddressEncoding.generateAddress(pubKey2);
UserAccount user2_0 = userset0.getUser(address2);
assertNotNull(user2_0);
- PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]);
+ PubKey pubKey3 = KeyGenUtils.decodePubKey(PUB_KEYS[3]);
Bytes address3 = AddressEncoding.generateAddress(pubKey3);
UserAccount user3_0 = userset0.getUser(address3);
assertNotNull(user3_0);
@@ -225,7 +225,7 @@ public class LedgerInitializeTest {
public NodeContext(NetworkAddress address, Map serviceRegisterMap) {
this.initCsServiceFactory = new MultiThreadInterInvokerFactory(serviceRegisterMap);
- LedgerInitializeWebController initController = new LedgerInitializeWebController(ledgerManager, storageDb,
+ LedgerInitializeWebController initController = new LedgerInitializeWebController(storageDb,
initCsServiceFactory);
serviceRegisterMap.put(address, initController);
this.initProcess = initController;
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4Nodes.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4Nodes.java
index 9831cf24..939811a1 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4Nodes.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4Nodes.java
@@ -4,6 +4,7 @@ import com.jd.blockchain.consensus.ConsensusProvider;
import com.jd.blockchain.consensus.ConsensusSettings;
import com.jd.blockchain.crypto.AddressEncoding;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.*;
@@ -12,7 +13,6 @@ import com.jd.blockchain.storage.service.DbConnection;
import com.jd.blockchain.storage.service.impl.composite.CompositeConnectionFactory;
import com.jd.blockchain.tools.initializer.*;
import com.jd.blockchain.tools.initializer.web.LedgerInitializeWebController;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -87,10 +87,10 @@ public class LedgerInitializeWeb4Nodes {
NetworkAddress initAddr3 = initSetting.getConsensusParticipant(3).getInitializerAddress();
NodeWebContext node3 = new NodeWebContext(3, initAddr3);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
CountDownLatch quitLatch = new CountDownLatch(4);
@@ -140,25 +140,25 @@ public class LedgerInitializeWeb4Nodes {
UserAccountSet userset0 = ledger0.getUserAccountSet(genesisBlock);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(PUB_KEYS[0]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(PUB_KEYS[0]);
Bytes address0 = AddressEncoding.generateAddress(pubKey0);
System.out.printf("localNodeAddress0 = %s \r\n", address0.toBase58());
UserAccount user0_0 = userset0.getUser(address0);
assertNotNull(user0_0);
- PubKey pubKey1 = KeyGenCommand.decodePubKey(PUB_KEYS[1]);
+ PubKey pubKey1 = KeyGenUtils.decodePubKey(PUB_KEYS[1]);
Bytes address1 = AddressEncoding.generateAddress(pubKey1);
UserAccount user1_0 = userset0.getUser(address1);
assertNotNull(user1_0);
System.out.printf("localNodeAddress1 = %s \r\n", address1.toBase58());
- PubKey pubKey2 = KeyGenCommand.decodePubKey(PUB_KEYS[2]);
+ PubKey pubKey2 = KeyGenUtils.decodePubKey(PUB_KEYS[2]);
Bytes address2 = AddressEncoding.generateAddress(pubKey2);
UserAccount user2_0 = userset0.getUser(address2);
assertNotNull(user2_0);
System.out.printf("localNodeAddress2 = %s \r\n", address2.toBase58());
- PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]);
+ PubKey pubKey3 = KeyGenUtils.decodePubKey(PUB_KEYS[3]);
Bytes address3 = AddressEncoding.generateAddress(pubKey3);
UserAccount user3_0 = userset0.getUser(address3);
assertNotNull(user3_0);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4SingleStepsTest.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4SingleStepsTest.java
index 081bf1d1..e79afbf4 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4SingleStepsTest.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/initializer/LedgerInitializeWeb4SingleStepsTest.java
@@ -19,10 +19,12 @@ import com.jd.blockchain.binaryproto.BinaryProtocol;
import com.jd.blockchain.consensus.ConsensusProvider;
import com.jd.blockchain.consensus.ConsensusSettings;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.crypto.SignatureDigest;
import com.jd.blockchain.ledger.LedgerInitOperation;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.Operation;
import com.jd.blockchain.ledger.TransactionContent;
import com.jd.blockchain.ledger.UserRegisterOperation;
@@ -36,12 +38,10 @@ import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
import com.jd.blockchain.tools.initializer.LedgerInitCommand;
import com.jd.blockchain.tools.initializer.LedgerInitProcess;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.HttpInitConsensServiceFactory;
import com.jd.blockchain.tools.initializer.web.LedgerInitConsensusService;
import com.jd.blockchain.tools.initializer.web.LedgerInitializeWebController;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.transaction.TxRequestBuilder;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -105,15 +105,15 @@ public class LedgerInitializeWeb4SingleStepsTest {
node2.setPrompter(prompter);
node3.setPrompter(prompter);
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[0], PASSWORD);
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[1], PASSWORD);
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[2], PASSWORD);
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV_KEYS[3], PASSWORD);
- PubKey pubKey0 = KeyGenCommand.decodePubKey(PUB_KEYS[0]);
- PubKey pubKey1 = KeyGenCommand.decodePubKey(PUB_KEYS[1]);
- PubKey pubKey2 = KeyGenCommand.decodePubKey(PUB_KEYS[2]);
- PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]);
+ PubKey pubKey0 = KeyGenUtils.decodePubKey(PUB_KEYS[0]);
+ PubKey pubKey1 = KeyGenUtils.decodePubKey(PUB_KEYS[1]);
+ PubKey pubKey2 = KeyGenUtils.decodePubKey(PUB_KEYS[2]);
+ PubKey pubKey3 = KeyGenUtils.decodePubKey(PUB_KEYS[3]);
// 测试生成“账本初始化许可”;
LedgerInitProposal permission0 = testPreparePermisssion(node0, privkey0, initSetting, csProps);
diff --git a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/ledger/LedgerBlockGeneratingTest.java b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/ledger/LedgerBlockGeneratingTest.java
index c3d268fd..27f53934 100644
--- a/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/ledger/LedgerBlockGeneratingTest.java
+++ b/source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/ledger/LedgerBlockGeneratingTest.java
@@ -18,10 +18,12 @@ import com.jd.blockchain.consensus.ConsensusProviders;
import com.jd.blockchain.consensus.ConsensusSettings;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.ledger.BlockchainKeyGenerator;
import com.jd.blockchain.ledger.BlockchainKeypair;
import com.jd.blockchain.ledger.LedgerBlock;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.TransactionRequest;
import com.jd.blockchain.ledger.TransactionRequestBuilder;
import com.jd.blockchain.ledger.core.DefaultOperationHandleRegisteration;
@@ -32,10 +34,8 @@ import com.jd.blockchain.ledger.core.LedgerRepository;
import com.jd.blockchain.ledger.core.TransactionBatchProcessor;
import com.jd.blockchain.service.TransactionBatchResultHandle;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.LedgerInitConsensusService;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.transaction.TxBuilder;
import com.jd.blockchain.utils.ConsoleUtils;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
@@ -146,28 +146,28 @@ public class LedgerBlockGeneratingTest {
String[] memConns = new String[] { "memory://local/0", "memory://local/1", "memory://local/2",
"memory://local/3" };
- PrivKey privkey0 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeTest.PRIV_KEYS[0],
+ PrivKey privkey0 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeTest.PRIV_KEYS[0],
LedgerInitializeTest.PASSWORD);
DBConnectionConfig testDb0 = new DBConnectionConfig();
testDb0.setConnectionUri(memConns[0]);
AsyncCallback callback0 = node0.startInit(0, privkey0, initSetting, testDb0, consolePrompter,
!optimized);
- PrivKey privkey1 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeTest.PRIV_KEYS[1],
+ PrivKey privkey1 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeTest.PRIV_KEYS[1],
LedgerInitializeTest.PASSWORD);
DBConnectionConfig testDb1 = new DBConnectionConfig();
testDb1.setConnectionUri(memConns[1]);
AsyncCallback callback1 = node1.startInit(1, privkey1, initSetting, testDb1, consolePrompter,
!optimized);
- PrivKey privkey2 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeTest.PRIV_KEYS[2],
+ PrivKey privkey2 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeTest.PRIV_KEYS[2],
LedgerInitializeTest.PASSWORD);
DBConnectionConfig testDb2 = new DBConnectionConfig();
testDb2.setConnectionUri(memConns[2]);
AsyncCallback callback2 = node2.startInit(2, privkey2, initSetting, testDb2, consolePrompter,
!optimized);
- PrivKey privkey3 = KeyGenCommand.decodePrivKeyWithRawPassword(LedgerInitializeTest.PRIV_KEYS[3],
+ PrivKey privkey3 = KeyGenUtils.decodePrivKeyWithRawPassword(LedgerInitializeTest.PRIV_KEYS[3],
LedgerInitializeTest.PASSWORD);
DBConnectionConfig testDb03 = new DBConnectionConfig();
testDb03.setConnectionUri(memConns[3]);
diff --git a/source/tools/tools-capability/src/main/java/com/jd/blockchain/capability/service/SettingsInit.java b/source/tools/tools-capability/src/main/java/com/jd/blockchain/capability/service/SettingsInit.java
index 4723d615..db5e8d1e 100644
--- a/source/tools/tools-capability/src/main/java/com/jd/blockchain/capability/service/SettingsInit.java
+++ b/source/tools/tools-capability/src/main/java/com/jd/blockchain/capability/service/SettingsInit.java
@@ -15,6 +15,7 @@ import com.jd.blockchain.consensus.bftsmart.BftsmartConsensusSettings;
import com.jd.blockchain.consensus.bftsmart.BftsmartNodeSettings;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.ContractCodeDeployOperation;
@@ -30,7 +31,6 @@ import com.jd.blockchain.ledger.TransactionContentBody;
import com.jd.blockchain.ledger.TransactionRequest;
import com.jd.blockchain.ledger.TransactionResponse;
import com.jd.blockchain.ledger.UserRegisterOperation;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.codec.Base58Utils;
/**
@@ -116,8 +116,8 @@ public class SettingsInit {
CapabilitySettings.ledgerHash = hash;
// 处理用户
- PrivKey privKey = KeyGenCommand.decodePrivKeyWithRawPassword(settings.getPrivKey(), settings.getPwd());
- PubKey pubKey = KeyGenCommand.decodePubKey(settings.getPubKey());
+ PrivKey privKey = KeyGenUtils.decodePrivKeyWithRawPassword(settings.getPrivKey(), settings.getPwd());
+ PubKey pubKey = KeyGenUtils.decodePubKey(settings.getPubKey());
CapabilitySettings.adminKey = new AsymmetricKeypair(pubKey, privKey);
}
diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/InitializerConfiguration.java b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/InitializerConfiguration.java
index 3ad076d9..5129433f 100644
--- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/InitializerConfiguration.java
+++ b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/InitializerConfiguration.java
@@ -2,8 +2,12 @@ package com.jd.blockchain.tools.initializer;
import org.springframework.context.annotation.Configuration;
+/**
+ * Spring Boot 项目的配置类;
+ *
+ * @author huanghaiquan
+ *
+ */
@Configuration
public interface InitializerConfiguration {
-
-
}
diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitCommand.java b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitCommand.java
index 0c59c1cc..b288c3d7 100644
--- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitCommand.java
+++ b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitCommand.java
@@ -12,12 +12,13 @@ import org.springframework.context.ConfigurableApplicationContext;
import com.jd.blockchain.crypto.AddressEncoding;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
+import com.jd.blockchain.ledger.LedgerInitProperties;
+import com.jd.blockchain.ledger.LedgerInitProperties.ConsensusParticipantConfig;
import com.jd.blockchain.ledger.core.LedgerManager;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig.BindingConfig;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties.ConsensusParticipantConfig;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.ArgumentSet;
import com.jd.blockchain.utils.ArgumentSet.ArgEntry;
import com.jd.blockchain.utils.ArgumentSet.Setting;
@@ -86,7 +87,7 @@ public class LedgerInitCommand {
// load ledger init setting;
LedgerInitProperties ledgerInitProperties = LedgerInitProperties.resolve(iniArg.getValue());
String localNodePubKeyString = localConf.getLocal().getPubKeyString();
- PubKey localNodePubKey = KeyGenCommand.decodePubKey(localNodePubKeyString);
+ PubKey localNodePubKey = KeyGenUtils.decodePubKey(localNodePubKeyString);
// 地址根据公钥生成
String localNodeAddress = AddressEncoding.generateAddress(localNodePubKey).toBase58();
@@ -97,7 +98,7 @@ public class LedgerInitCommand {
// String partiAddress = partiConf.getAddress();
// if (partiAddress == null) {
// if (partiConf.getPubKeyPath() != null) {
-// PubKey pubKey = KeyGenCommand.readPubKey(partiConf.getPubKeyPath());
+// PubKey pubKey = KeyGenUtils.readPubKey(partiConf.getPubKeyPath());
// partiConf.setPubKey(pubKey);
// partiAddress = partiConf.getAddress();
// }
@@ -114,9 +115,9 @@ public class LedgerInitCommand {
// 加载当前节点的私钥;
String base58Pwd = localConf.getLocal().getPassword();
if (base58Pwd == null) {
- base58Pwd = KeyGenCommand.readPasswordString();
+ base58Pwd = KeyGenUtils.readPasswordString();
}
- PrivKey privKey = KeyGenCommand.decodePrivKey(localConf.getLocal().getPrivKeyString(), base58Pwd);
+ PrivKey privKey = KeyGenUtils.decodePrivKey(localConf.getLocal().getPrivKeyString(), base58Pwd);
// Output ledger binding config of peer;
if (!FileUtils.existDirectory(localConf.getBindingOutDir())) {
@@ -189,7 +190,7 @@ public class LedgerInitCommand {
// 设置参与方名称
bindingConf.getParticipant().setName(ledgerInitProperties.getConsensusParticipant(currId).getName());
- String encodedPrivKey = KeyGenCommand.encodePrivKey(privKey, base58Pwd);
+ String encodedPrivKey = KeyGenUtils.encodePrivKey(privKey, base58Pwd);
bindingConf.getParticipant().setPk(encodedPrivKey);
bindingConf.getParticipant().setPassword(base58Pwd);
diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitProcess.java b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitProcess.java
index 58b01af5..ffa52d4f 100644
--- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitProcess.java
+++ b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/LedgerInitProcess.java
@@ -3,6 +3,7 @@ package com.jd.blockchain.tools.initializer;
import com.jd.blockchain.crypto.HashDigest;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.ledger.CryptoSetting;
+import com.jd.blockchain.ledger.LedgerInitProperties;
/**
*
diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/DecisionResponseConverter.java b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/DecisionResponseConverter.java
index ba60ec8c..e9d3017d 100644
--- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/DecisionResponseConverter.java
+++ b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/DecisionResponseConverter.java
@@ -3,7 +3,7 @@ package com.jd.blockchain.tools.initializer.web;
import java.io.InputStream;
import com.jd.blockchain.binaryproto.BinaryProtocol;
-import com.jd.blockchain.tools.initializer.LedgerInitException;
+import com.jd.blockchain.ledger.LedgerInitException;
import com.jd.blockchain.utils.http.HttpServiceContext;
import com.jd.blockchain.utils.http.ResponseConverter;
import com.jd.blockchain.utils.http.agent.ServiceRequest;
diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitializeWebController.java b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitializeWebController.java
index 2b930628..cd30494a 100644
--- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitializeWebController.java
+++ b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitializeWebController.java
@@ -10,7 +10,6 @@ import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
-import com.jd.blockchain.transaction.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
@@ -31,34 +30,29 @@ import com.jd.blockchain.crypto.SignatureDigest;
import com.jd.blockchain.crypto.SignatureFunction;
import com.jd.blockchain.crypto.service.classic.ClassicCryptoService;
import com.jd.blockchain.crypto.service.sm.SMCryptoService;
-import com.jd.blockchain.ledger.BlockchainIdentity;
-import com.jd.blockchain.ledger.BlockchainIdentityData;
import com.jd.blockchain.ledger.CryptoSetting;
-import com.jd.blockchain.ledger.LedgerBlock;
+import com.jd.blockchain.ledger.DigitalSignature;
+import com.jd.blockchain.ledger.LedgerInitException;
+import com.jd.blockchain.ledger.LedgerInitProperties;
+import com.jd.blockchain.ledger.LedgerInitProperties.ConsensusParticipantConfig;
import com.jd.blockchain.ledger.LedgerInitSetting;
-import com.jd.blockchain.ledger.Operation;
import com.jd.blockchain.ledger.ParticipantNode;
-import com.jd.blockchain.ledger.TransactionBuilder;
import com.jd.blockchain.ledger.TransactionContent;
import com.jd.blockchain.ledger.TransactionRequest;
-import com.jd.blockchain.ledger.TransactionState;
-import com.jd.blockchain.ledger.UserRegisterOperation;
import com.jd.blockchain.ledger.core.CryptoConfig;
-import com.jd.blockchain.ledger.core.LedgerEditor;
import com.jd.blockchain.ledger.core.LedgerInitDecision;
import com.jd.blockchain.ledger.core.LedgerInitProposal;
import com.jd.blockchain.ledger.core.LedgerInitProposalData;
-import com.jd.blockchain.ledger.core.LedgerManage;
-import com.jd.blockchain.ledger.core.LedgerTransactionContext;
+import com.jd.blockchain.ledger.core.LedgerInitializer;
import com.jd.blockchain.storage.service.DbConnection;
import com.jd.blockchain.storage.service.DbConnectionFactory;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.InitializingStep;
-import com.jd.blockchain.tools.initializer.LedgerInitException;
import com.jd.blockchain.tools.initializer.LedgerInitProcess;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties.ConsensusParticipantConfig;
import com.jd.blockchain.tools.initializer.Prompter;
+import com.jd.blockchain.transaction.DigitalSignatureBlob;
+import com.jd.blockchain.transaction.LedgerInitData;
+import com.jd.blockchain.transaction.SignatureUtils;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.concurrent.InvocationResult;
import com.jd.blockchain.utils.io.BytesUtils;
@@ -86,7 +80,7 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
private volatile LedgerInitProposal localPermission;
- private TransactionContent initTxContent;
+ private volatile LedgerInitializer initializer;
private volatile int currentId = -1;
@@ -100,19 +94,12 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
private volatile ConsensusProvider consensusProvider;
- private volatile LedgerBlock genesisBlock;
-
private volatile LedgerInitDecision localDecision;
private volatile DecisionResultHandle[] decisions;
private volatile DbConnection dbConn;
- private volatile LedgerEditor ledgerEditor;
-
- @Autowired
- private LedgerManage ledgerManager;
-
@Autowired
private DbConnectionFactory dbConnFactory;
@@ -123,11 +110,10 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
this.SIGN_FUNC = Crypto.getSignatureFunction(DEFAULT_SIGN_ALGORITHM);
}
- public LedgerInitializeWebController(LedgerManage ledgerManager, DbConnectionFactory dbConnFactory,
+ public LedgerInitializeWebController(DbConnectionFactory dbConnFactory,
InitConsensusServiceFactory initCsServiceFactory) {
this.SIGN_FUNC = Crypto.getSignatureFunction(DEFAULT_SIGN_ALGORITHM);
- this.ledgerManager = ledgerManager;
this.dbConnFactory = dbConnFactory;
this.initCsServiceFactory = initCsServiceFactory;
}
@@ -137,7 +123,7 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
}
public TransactionContent getInitTxContent() {
- return initTxContent;
+ return initializer.getTransactionContent();
}
public LedgerInitProposal getLocalPermission() {
@@ -152,10 +138,6 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
this.prompter = prompter;
}
-// private ConsensusProvider getConsensusProvider() {
-// return consensusProvider;
-// }
-
private void setConsensusProvider(ConsensusProvider consensusProvider) {
this.consensusProvider = consensusProvider;
}
@@ -226,11 +208,10 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
public LedgerInitDecision makeLocalDecision(PrivKey privKey) {
// 生成账本;
- this.ledgerEditor = ledgerManager.newLedger(this.ledgerInitSetting, dbConn.getStorageService());
- this.genesisBlock = initLedgerDataset(ledgerEditor);
+ initializer.prepareLedger(dbConn.getStorageService(), getNodesSignatures());
// 生成签名决定;
- this.localDecision = makeDecision(currentId, genesisBlock.getHash(), privKey);
+ this.localDecision = makeDecision(currentId, initializer.getLedgerHash(), privKey);
this.decisions = new DecisionResultHandle[this.ledgerInitSetting.getConsensusParticipants().length];
for (int i = 0; i < decisions.length; i++) {
// 参与者的 id 是依次递增的;
@@ -241,6 +222,18 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
return localDecision;
}
+ private DigitalSignature[] getNodesSignatures() {
+ ParticipantNode[] parties = this.ledgerInitSetting.getConsensusParticipants();
+ DigitalSignature[] signatures = new DigitalSignature[parties.length];
+ for (int i = 0; i < parties.length; i++) {
+ PubKey pubKey = parties[i].getPubKey();
+ SignatureDigest signDigest = this.permissions[i].getTransactionSignature();
+ signatures[i] = new DigitalSignatureBlob(pubKey, signDigest);
+ }
+
+ return signatures;
+ }
+
public HashDigest consensusDecisions(PrivKey privKey) {
// 获取其它参与方的账本生成结果;
boolean allDecided = startRequestDecisions(privKey, prompter);
@@ -248,13 +241,13 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
prompter.error(
"Rollback ledger initialization because of not all nodes make same decision! --[Current Participant=%s]",
currentId);
- ledgerEditor.cancel();
+ initializer.cancel();
return null;
}
// 执行提交提交;
- ledgerEditor.commit();
- return genesisBlock.getHash();
+ initializer.commit();
+ return initializer.getLedgerHash();
}
public void closeDb() {
@@ -334,7 +327,6 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
List partiList = ledgerProps.getConsensusParticipants();
ConsensusParticipantConfig[] parties = new ConsensusParticipantConfig[partiList.size()];
parties = partiList.toArray(parties);
-// ConsensusParticipantConfig[] parties = partiList.toArray(new ConsensusParticipantConfig[partiList.size()]);
ConsensusParticipantConfig[] orderedParties = sortAndVerify(parties);
initSetting.setConsensusParticipants(orderedParties);
initSetting.setCreatedTime(ledgerProps.getCreatedTime());
@@ -369,19 +361,11 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
initializerAddresses[i] = orderedParties[i].getInitializerAddress();
}
- // 生成初始化交易,并签署许可;
- TransactionBuilder initTxBuilder = new TxBuilder(null);// 账本初始化交易的账本 hash 为 null;
- initTxBuilder.ledgers().create(initSetting);
- for (ParticipantNode p : initSetting.getConsensusParticipants()) {
- // TODO:暂时只支持注册用户的初始化操作;
- BlockchainIdentity superUserId = new BlockchainIdentityData(p.getPubKey());
- initTxBuilder.users().register(superUserId);
- }
- // 账本初始化配置声明的创建时间来初始化交易时间戳;注:不能用本地时间,因为共识节点之间的本地时间系统不一致;
- this.initTxContent = initTxBuilder.prepareContent(initSetting.getCreatedTime());
+ // 初始化账本;
+ this.initializer = LedgerInitializer.create(ledgerInitSetting);
// 对初始交易签名,生成当前参与者的账本初始化许可;
- SignatureDigest permissionSign = SignatureUtils.sign(initTxContent, privKey);
+ SignatureDigest permissionSign = initializer.signTransaction(privKey);
LedgerInitProposalData permission = new LedgerInitProposalData(currentId, permissionSign);
this.currentId = currentId;
@@ -405,39 +389,6 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
}
/**
- * 初始化账本数据,返回创始区块;
- *
- * @param ledgerEditor
- * @return
- */
- private LedgerBlock initLedgerDataset(LedgerEditor ledgerEditor) {
- // 初始化时,自动将参与方注册为账本的用户;
- TxRequestBuilder txReqBuilder = new TxRequestBuilder(this.initTxContent);
- ParticipantNode[] parties = this.ledgerInitSetting.getConsensusParticipants();
- for (int i = 0; i < parties.length; i++) {
- PubKey pubKey = parties[i].getPubKey();
- SignatureDigest signDigest = this.permissions[i].getTransactionSignature();
- DigitalSignatureBlob digitalSignature = new DigitalSignatureBlob(pubKey, signDigest);
- txReqBuilder.addNodeSignature(digitalSignature);
- }
- TransactionRequest txRequest = txReqBuilder.buildRequest();
-
- LedgerTransactionContext txCtx = ledgerEditor.newTransaction(txRequest);
- Operation[] ops = txRequest.getTransactionContent().getOperations();
- // 注册用户; 注:第一个操作是 LedgerInitOperation;
- // TODO:暂时只支持注册用户的初始化操作;
- for (int i = 1; i < ops.length; i++) {
- UserRegisterOperation userRegOP = (UserRegisterOperation) ops[i];
- txCtx.getDataset().getUserAccountSet().register(userRegOP.getUserID().getAddress(),
- userRegOP.getUserID().getPubKey());
- }
-
- txCtx.commit(TransactionState.SUCCESS, null);
-
- return ledgerEditor.prepare();
- }
-
- /**
* 请求所有其它参与方的账本创建许可;
*
* @param privKey
@@ -506,7 +457,7 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
continue;
}
- if (!SignatureUtils.verifySignature(this.initTxContent, permission.getTransactionSignature(), pubKey)) {
+ if (!SignatureUtils.verifySignature(initializer.getTransactionContent(), permission.getTransactionSignature(), pubKey)) {
prompter.error("Invalid permission from participant! --[Id=%s][name=%s]", participants[i].getAddress(),
participants[i].getName());
allPermitted = false;
@@ -753,7 +704,7 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI
String.format("Reject decision because of self-synchronization! --[Id=%s]", remoteId));
}
- if (this.genesisBlock == null) {
+ if (this.initializer == null) {
// 当前参与者尚未准备就绪,返回 null;
prompter.info("Not ready for genesis block! --[RemoteId=%s][CurrentId=%s]", remoteId, currentId);
return null;
diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/PermissionResponseConverter.java b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/PermissionResponseConverter.java
index e07fa4d7..f291d6c9 100644
--- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/PermissionResponseConverter.java
+++ b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/PermissionResponseConverter.java
@@ -3,8 +3,8 @@ package com.jd.blockchain.tools.initializer.web;
import java.io.InputStream;
import com.jd.blockchain.binaryproto.BinaryProtocol;
+import com.jd.blockchain.ledger.LedgerInitException;
import com.jd.blockchain.ledger.core.LedgerInitProposalData;
-import com.jd.blockchain.tools.initializer.LedgerInitException;
import com.jd.blockchain.utils.http.HttpServiceContext;
import com.jd.blockchain.utils.http.ResponseConverter;
import com.jd.blockchain.utils.http.agent.ServiceRequest;
diff --git a/source/tools/tools-initializer/src/test/java/test/com/jd/blockchain/tools/initializer/LedgerInitPropertiesTest.java b/source/tools/tools-initializer/src/test/java/test/com/jd/blockchain/tools/initializer/LedgerInitPropertiesTest.java
index 8b34623c..d0bee332 100644
--- a/source/tools/tools-initializer/src/test/java/test/com/jd/blockchain/tools/initializer/LedgerInitPropertiesTest.java
+++ b/source/tools/tools-initializer/src/test/java/test/com/jd/blockchain/tools/initializer/LedgerInitPropertiesTest.java
@@ -19,14 +19,14 @@ import org.junit.Test;
import org.springframework.core.io.ClassPathResource;
import com.jd.blockchain.crypto.AddressEncoding;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PubKey;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.LedgerPermission;
import com.jd.blockchain.ledger.RoleInitData;
import com.jd.blockchain.ledger.RolesPolicy;
import com.jd.blockchain.ledger.TransactionPermission;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties.ConsensusParticipantConfig;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
+import com.jd.blockchain.ledger.LedgerInitProperties.ConsensusParticipantConfig;
import com.jd.blockchain.utils.codec.HexUtils;
public class LedgerInitPropertiesTest {
@@ -133,7 +133,7 @@ public class LedgerInitPropertiesTest {
ConsensusParticipantConfig part0 = initProps.getConsensusParticipant(0);
assertEquals("jd.com", part0.getName());
- PubKey pubKey0 = KeyGenCommand.decodePubKey("3snPdw7i7PjVKiTH2VnXZu5H8QmNaSXpnk4ei533jFpuifyjS5zzH9");
+ PubKey pubKey0 = KeyGenUtils.decodePubKey("3snPdw7i7PjVKiTH2VnXZu5H8QmNaSXpnk4ei533jFpuifyjS5zzH9");
assertEquals(pubKey0, part0.getPubKey());
assertEquals("127.0.0.1", part0.getInitializerAddress().getHost());
assertEquals(8800, part0.getInitializerAddress().getPort());
@@ -143,7 +143,7 @@ public class LedgerInitPropertiesTest {
ConsensusParticipantConfig part1 = initProps.getConsensusParticipant(1);
assertEquals(false, part1.getInitializerAddress().isSecure());
- PubKey pubKey1 = KeyGenCommand.decodePubKey("3snPdw7i7PajLB35tEau1kmixc6ZrjLXgxwKbkv5bHhP7nT5dhD9eX");
+ PubKey pubKey1 = KeyGenUtils.decodePubKey("3snPdw7i7PajLB35tEau1kmixc6ZrjLXgxwKbkv5bHhP7nT5dhD9eX");
assertEquals(pubKey1, part1.getPubKey());
assertArrayEquals(new String[] { "MANAGER" }, part1.getRoles());
assertEquals(RolesPolicy.UNION, part1.getRolesPolicy());
@@ -154,7 +154,7 @@ public class LedgerInitPropertiesTest {
assertEquals(RolesPolicy.UNION, part2.getRolesPolicy());
ConsensusParticipantConfig part3 = initProps.getConsensusParticipant(3);
- PubKey pubKey3 = KeyGenCommand.decodePubKey("3snPdw7i7PifPuRX7fu3jBjsb3rJRfDe9GtbDfvFJaJ4V4hHXQfhwk");
+ PubKey pubKey3 = KeyGenUtils.decodePubKey("3snPdw7i7PifPuRX7fu3jBjsb3rJRfDe9GtbDfvFJaJ4V4hHXQfhwk");
assertEquals(pubKey3, part3.getPubKey());
assertArrayEquals(new String[] { "GUEST" }, part3.getRoles());
assertEquals(RolesPolicy.INTERSECT, part3.getRolesPolicy());
@@ -170,7 +170,7 @@ public class LedgerInitPropertiesTest {
int index = 0;
for (String pubKeyStr : pubKeys) {
System.out.println("[" + index + "][配置] = " + pubKeyStr);
- PubKey pubKey = KeyGenCommand.decodePubKey(pubKeyStr);
+ PubKey pubKey = KeyGenUtils.decodePubKey(pubKeyStr);
System.out.println("[" + index + "][公钥Base58] = " + pubKey.toBase58());
System.out.println("[" + index + "][地址] = " + AddressEncoding.generateAddress(pubKey).toBase58());
System.out.println("--------------------------------------------------------------------");
diff --git a/source/tools/tools-keygen/src/main/java/com/jd/blockchain/tools/keygen/KeyGenCommand.java b/source/tools/tools-keygen/src/main/java/com/jd/blockchain/tools/keygen/KeyGenCommand.java
index e0c63a0b..cd2df93c 100644
--- a/source/tools/tools-keygen/src/main/java/com/jd/blockchain/tools/keygen/KeyGenCommand.java
+++ b/source/tools/tools-keygen/src/main/java/com/jd/blockchain/tools/keygen/KeyGenCommand.java
@@ -1,15 +1,19 @@
package com.jd.blockchain.tools.keygen;
+import static com.jd.blockchain.crypto.KeyGenUtils.decodePubKey;
+import static com.jd.blockchain.crypto.KeyGenUtils.decryptedPrivKeyBytes;
+import static com.jd.blockchain.crypto.KeyGenUtils.encodePrivKey;
+import static com.jd.blockchain.crypto.KeyGenUtils.encodePubKey;
+import static com.jd.blockchain.crypto.KeyGenUtils.readPassword;
+
import java.io.File;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
-import javax.crypto.SecretKey;
-
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.Crypto;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.utils.ArgumentSet;
@@ -17,18 +21,11 @@ import com.jd.blockchain.utils.ArgumentSet.ArgEntry;
import com.jd.blockchain.utils.ArgumentSet.Setting;
import com.jd.blockchain.utils.ConsoleUtils;
import com.jd.blockchain.utils.codec.Base58Utils;
-import com.jd.blockchain.utils.io.BytesUtils;
import com.jd.blockchain.utils.io.FileUtils;
-import com.jd.blockchain.utils.security.AESUtils;
import com.jd.blockchain.utils.security.DecryptionException;
-import com.jd.blockchain.utils.security.ShaUtils;
public class KeyGenCommand {
- public static final byte[] PUB_KEY_FILE_MAGICNUM = { (byte) 0xFF, 112, 117, 98 };
-
- public static final byte[] PRIV_KEY_FILE_MAGICNUM = { (byte) 0x00, 112, 114, 118 };
-
// 指定 -r 参数时为“读取模式”,显示密钥文件; -r 参数之后紧跟着指定要读取的公钥或者私钥文件的路径;
private static final String READ_ARG = "-r";
@@ -172,34 +169,6 @@ public class KeyGenCommand {
}
}
- public static String encodePubKey(PubKey pubKey) {
- byte[] pubKeyBytes = BytesUtils.concat(PUB_KEY_FILE_MAGICNUM, pubKey.toBytes());
- String base58PubKey = Base58Utils.encode(pubKeyBytes);
- return base58PubKey;
- }
-
- public static PubKey decodePubKey(String base58PubKey) {
- byte[] keyBytes = Base58Utils.decode(base58PubKey);
- return decodePubKey(keyBytes);
- }
-
- public static String encodePrivKey(PrivKey privKey, String base58Pwd) {
- byte[] pwdBytes = Base58Utils.decode(base58Pwd);
- return encodePrivKey(privKey, pwdBytes);
- }
-
- public static String encodePrivKey(PrivKey privKey, byte[] pwdBytes) {
- byte[] encodedPrivKeyBytes = encryptPrivKey(privKey, pwdBytes);
- String base58PrivKey = Base58Utils.encode(encodedPrivKeyBytes);
- return base58PrivKey;
- }
-
- public static byte[] encryptPrivKey(PrivKey privKey, byte[] pwdBytes) {
- SecretKey userKey = AESUtils.generateKey128(pwdBytes);
- byte[] encryptedPrivKeyBytes = AESUtils.encrypt(privKey.toBytes(), userKey);
- return BytesUtils.concat(PRIV_KEY_FILE_MAGICNUM, encryptedPrivKeyBytes);
- }
-
/**
* 读取密钥;
* 如果是私钥,则需要输入密码;
@@ -209,10 +178,10 @@ public class KeyGenCommand {
public static void readKey(String keyFile, boolean decrypting) {
String base58KeyString = FileUtils.readText(keyFile);
byte[] keyBytes = Base58Utils.decode(base58KeyString);
- if (BytesUtils.startsWith(keyBytes, PUB_KEY_FILE_MAGICNUM)) {
+ if (KeyGenUtils.isPubKeyBytes(keyBytes)) {
if (decrypting) {
// Try reading pubKey;
- PubKey pubKey = doDecodePubKeyBytes(keyBytes);
+ PubKey pubKey = decodePubKey(keyBytes);
ConsoleUtils.info(
"======================== pub key ========================\r\n" + "[%s]\r\n"
+ "Raw:[%s][%s]\r\n",
@@ -222,7 +191,7 @@ public class KeyGenCommand {
base58KeyString);
}
return;
- } else if (BytesUtils.startsWith(keyBytes, PRIV_KEY_FILE_MAGICNUM)) {
+ } else if (KeyGenUtils.isPrivKeyBytes(keyBytes)) {
// Try reading privKye;
try {
if (decrypting) {
@@ -246,119 +215,4 @@ public class KeyGenCommand {
}
}
- private static PubKey doDecodePubKeyBytes(byte[] encodedPubKeyBytes) {
- byte[] pubKeyBytes = Arrays.copyOfRange(encodedPubKeyBytes, PUB_KEY_FILE_MAGICNUM.length,
- encodedPubKeyBytes.length);
- return new PubKey(pubKeyBytes);
- }
-
- public static PrivKey decryptedPrivKeyBytes(byte[] encodedPrivKeyBytes, byte[] pwdBytes) {
- // Read privKye;
- SecretKey userKey = AESUtils.generateKey128(pwdBytes);
- byte[] encryptedKeyBytes = Arrays.copyOfRange(encodedPrivKeyBytes, PRIV_KEY_FILE_MAGICNUM.length,
- encodedPrivKeyBytes.length);
- try {
- byte[] plainKeyBytes = AESUtils.decrypt(encryptedKeyBytes, userKey);
- return new PrivKey(plainKeyBytes);
- } catch (DecryptionException e) {
- throw new DecryptionException("Invalid password!", e);
- }
- }
-
- public static PubKey readPubKey(String keyFile) {
- String base58KeyString = FileUtils.readText(keyFile);
- return decodePubKey(base58KeyString);
- }
-
- public static PubKey decodePubKey(byte[] encodedPubKeyBytes) {
- if (BytesUtils.startsWith(encodedPubKeyBytes, PUB_KEY_FILE_MAGICNUM)) {
- // Read pubKey;
- return doDecodePubKeyBytes(encodedPubKeyBytes);
- }
-
- throw new IllegalArgumentException("The specified bytes is not valid PubKey generated by the KeyGen tool!");
- }
-
- /**
- * 从控制台读取加密口令,以二进制数组形式返回原始口令的一次SHA256的结果;
- *
- * @return
- */
- public static byte[] readPassword() {
- byte[] pwdBytes = ConsoleUtils.readPassword();
- return ShaUtils.hash_256(pwdBytes);
- }
-
- /**
- * 对指定的原始密码进行编码生成用于加解密的密码;
- *
- * @param rawPassword
- * @return
- */
- public static byte[] encodePassword(String rawPassword) {
- byte[] pwdBytes = BytesUtils.toBytes(rawPassword, "UTF-8");
- return ShaUtils.hash_256(pwdBytes);
- }
-
- /**
- * 对指定的原始密码进行编码生成用于加解密的密码;
- *
- * @param rawPassword
- * @return
- */
- public static String encodePasswordAsBase58(String rawPassword) {
- return Base58Utils.encode(encodePassword(rawPassword));
- }
-
- /**
- * 从控制台读取加密口令,以Base58字符串形式返回口令的一次SHA256的结果;
- *
- * @return
- */
- public static String readPasswordString() {
- return Base58Utils.encode(readPassword());
- }
-
- public static PrivKey readPrivKey(String keyFile, String base58Pwd) {
- return readPrivKey(keyFile, Base58Utils.decode(base58Pwd));
- }
-
- /**
- * 从文件读取私钥;
- *
- * @param keyFile
- * @param pwdBytes
- * @return
- */
- public static PrivKey readPrivKey(String keyFile, byte[] pwdBytes) {
- String base58KeyString = FileUtils.readText(keyFile);
- byte[] keyBytes = Base58Utils.decode(base58KeyString);
- if (!BytesUtils.startsWith(keyBytes, PRIV_KEY_FILE_MAGICNUM)) {
- throw new IllegalArgumentException("The specified file is not a private key file!");
- }
- return decryptedPrivKeyBytes(keyBytes, pwdBytes);
- }
-
- public static PrivKey decodePrivKey(String base58Key, String base58Pwd) {
- byte[] decryptedKey = Base58Utils.decode(base58Pwd);
- return decodePrivKey(base58Key, decryptedKey);
- }
-
- public static PrivKey decodePrivKey(String base58Key, byte[] pwdBytes) {
- byte[] keyBytes = Base58Utils.decode(base58Key);
- if (!BytesUtils.startsWith(keyBytes, PRIV_KEY_FILE_MAGICNUM)) {
- throw new IllegalArgumentException("The specified file is not a private key file!");
- }
- return decryptedPrivKeyBytes(keyBytes, pwdBytes);
- }
-
- public static PrivKey decodePrivKeyWithRawPassword(String base58Key, String rawPassword) {
- byte[] pwdBytes = encodePassword(rawPassword);
- byte[] keyBytes = Base58Utils.decode(base58Key);
- if (!BytesUtils.startsWith(keyBytes, PRIV_KEY_FILE_MAGICNUM)) {
- throw new IllegalArgumentException("The specified file is not a private key file!");
- }
- return decryptedPrivKeyBytes(keyBytes, pwdBytes);
- }
-
}
diff --git a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/MockerLedgerInitializer.java b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/MockerLedgerInitializer.java
index fe9f332b..2a922b4a 100644
--- a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/MockerLedgerInitializer.java
+++ b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/MockerLedgerInitializer.java
@@ -1,28 +1,53 @@
package com.jd.blockchain.mocker;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Random;
+
+import org.springframework.web.bind.annotation.RequestBody;
+
import com.jd.blockchain.binaryproto.DataContractRegistry;
import com.jd.blockchain.consensus.ConsensusProvider;
import com.jd.blockchain.consensus.ConsensusProviders;
import com.jd.blockchain.consensus.ConsensusSettings;
-import com.jd.blockchain.crypto.*;
+import com.jd.blockchain.crypto.Crypto;
+import com.jd.blockchain.crypto.CryptoProvider;
+import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.PrivKey;
+import com.jd.blockchain.crypto.PubKey;
+import com.jd.blockchain.crypto.SignatureDigest;
+import com.jd.blockchain.crypto.SignatureFunction;
import com.jd.blockchain.crypto.service.classic.ClassicCryptoService;
import com.jd.blockchain.crypto.service.sm.SMCryptoService;
-import com.jd.blockchain.ledger.*;
-import com.jd.blockchain.ledger.core.*;
+import com.jd.blockchain.ledger.CryptoSetting;
+import com.jd.blockchain.ledger.DigitalSignature;
+import com.jd.blockchain.ledger.LedgerInitException;
+import com.jd.blockchain.ledger.LedgerInitProperties;
+import com.jd.blockchain.ledger.LedgerInitProperties.ConsensusParticipantConfig;
+import com.jd.blockchain.ledger.LedgerInitSetting;
+import com.jd.blockchain.ledger.ParticipantNode;
+import com.jd.blockchain.ledger.TransactionContent;
+import com.jd.blockchain.ledger.TransactionRequest;
+import com.jd.blockchain.ledger.core.CryptoConfig;
+import com.jd.blockchain.ledger.core.LedgerInitDecision;
+import com.jd.blockchain.ledger.core.LedgerInitProposal;
+import com.jd.blockchain.ledger.core.LedgerInitProposalData;
+import com.jd.blockchain.ledger.core.LedgerInitializer;
+import com.jd.blockchain.ledger.core.LedgerManager;
import com.jd.blockchain.storage.service.DbConnection;
import com.jd.blockchain.storage.service.DbConnectionFactory;
-import com.jd.blockchain.tools.initializer.*;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties.ConsensusParticipantConfig;
+import com.jd.blockchain.tools.initializer.DBConnectionConfig;
+import com.jd.blockchain.tools.initializer.LedgerInitProcess;
+import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.LedgerInitConsensusService;
import com.jd.blockchain.tools.initializer.web.LedgerInitDecisionData;
-import com.jd.blockchain.transaction.*;
+import com.jd.blockchain.transaction.DigitalSignatureBlob;
+import com.jd.blockchain.transaction.LedgerInitData;
+import com.jd.blockchain.transaction.SignatureUtils;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.concurrent.InvocationResult;
import com.jd.blockchain.utils.io.BytesUtils;
-import org.springframework.web.bind.annotation.*;
-
-import java.io.IOException;
-import java.util.*;
/**
* 账本初始化控制器;
@@ -36,8 +61,7 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon
DataContractRegistry.register(TransactionRequest.class);
}
- private static final String[] SUPPORTED_PROVIDERS = {
- ClassicCryptoService.class.getName(),
+ private static final String[] SUPPORTED_PROVIDERS = { ClassicCryptoService.class.getName(),
SMCryptoService.class.getName() };
private static final String DEFAULT_SIGN_ALGORITHM = "ED25519";
@@ -46,7 +70,7 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon
private volatile LedgerInitProposal localPermission;
- private TransactionContent initTxContent;
+ private volatile LedgerInitializer initializer;
private volatile int currentId = -1;
@@ -59,16 +83,12 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon
private volatile ConsensusProvider consensusProvider;
- private volatile LedgerBlock genesisBlock;
-
private volatile LedgerInitDecision localDecision;
private volatile DecisionResultHandle[] decisions;
private volatile DbConnection dbConn;
- private volatile LedgerEditor ledgerEditor;
-
private LedgerManager ledgerManager;
private DbConnectionFactory dbConnFactory;
@@ -88,7 +108,7 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon
}
public TransactionContent getInitTxContent() {
- return initTxContent;
+ return initializer.getTransactionContent();
}
public LedgerInitProposal getLocalPermission() {
@@ -154,11 +174,12 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon
public LedgerInitDecision makeLocalDecision(PrivKey privKey) {
// 生成账本;
- this.ledgerEditor = ledgerManager.newLedger(this.ledgerInitSetting, dbConn.getStorageService());
- this.genesisBlock = initLedgerDataset(ledgerEditor);
+// this.ledgerEditor = ledgerManager.newLedger(this.ledgerInitSetting, dbConn.getStorageService());
+// this.genesisBlock = initLedgerDataset(ledgerEditor);
+ initializer.prepareLedger(dbConn.getStorageService(), getNodeSignatures());
// 生成签名决定;
- this.localDecision = makeDecision(currentId, genesisBlock.getHash(), privKey);
+ this.localDecision = makeDecision(currentId, initializer.getLedgerHash(), privKey);
this.decisions = new DecisionResultHandle[this.ledgerInitSetting.getConsensusParticipants().length];
for (int i = 0; i < decisions.length; i++) {
// 参与者的 id 是依次递增的;
@@ -169,10 +190,19 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon
return localDecision;
}
+ private DigitalSignature getNodeSignatures() {
+ ParticipantNode parti = this.ledgerInitSetting.getConsensusParticipants()[currentId];
+ PubKey pubKey = parti.getPubKey();
+ SignatureDigest signDigest = this.localPermission.getTransactionSignature();
+ DigitalSignatureBlob digitalSignature = new DigitalSignatureBlob(pubKey, signDigest);
+
+ return digitalSignature;
+ }
+
public HashDigest consensusDecisions() {
// 执行提交提交;
- ledgerEditor.commit();
- return genesisBlock.getHash();
+ initializer.commit();
+ return initializer.getLedgerHash();
}
public void closeDb() {
@@ -236,18 +266,11 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon
if (!SIGN_FUNC.verify(testSign, myPubKey, testBytes)) {
throw new LedgerInitException("Your pub-key specified in the init-settings isn't match your priv-key!");
}
- // 生成初始化交易,并签署许可;
- TransactionBuilder initTxBuilder = new TxBuilder(null);// 账本初始化交易的账本 hash 为 null;
- initTxBuilder.ledgers().create(initSetting);
- for (ParticipantNode p : initSetting.getConsensusParticipants()) {
- // TODO:暂时只支持注册用户的初始化操作;
- BlockchainIdentity superUserId = new BlockchainIdentityData(p.getPubKey());
- initTxBuilder.users().register(superUserId);
- }
- this.initTxContent = initTxBuilder.prepareContent();
+ // 初始化;
+ this.initializer = LedgerInitializer.create(ledgerInitSetting);
// 对初始交易签名,生成当前参与者的账本初始化许可;
- SignatureDigest permissionSign = SignatureUtils.sign(initTxContent, privKey);
+ SignatureDigest permissionSign = SignatureUtils.sign(initializer.getTransactionContent(), privKey);
localPermission = new LedgerInitProposalData(currentId, permissionSign);
this.currentId = currentId;
@@ -266,33 +289,33 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon
return decision;
}
- private LedgerBlock initLedgerDataset(LedgerEditor ledgerEditor) {
- // 初始化时,自动将参与方注册为账本的用户;
- TxRequestBuilder txReqBuilder = new TxRequestBuilder(this.initTxContent);
-// ParticipantNode[] parties = this.ledgerInitSetting.getConsensusParticipants();
- ParticipantNode parti = this.ledgerInitSetting.getConsensusParticipants()[currentId];
-
- PubKey pubKey = parti.getPubKey();
- SignatureDigest signDigest = this.localPermission.getTransactionSignature();
- DigitalSignatureBlob digitalSignature = new DigitalSignatureBlob(pubKey, signDigest);
- txReqBuilder.addNodeSignature(digitalSignature);
-
- TransactionRequest txRequest = txReqBuilder.buildRequest();
-
- LedgerTransactionContext txCtx = ledgerEditor.newTransaction(txRequest);
- Operation[] ops = txRequest.getTransactionContent().getOperations();
- // 注册用户; 注:第一个操作是 LedgerInitOperation;
- // TODO:暂时只支持注册用户的初始化操作;
- for (int i = 1; i < ops.length; i++) {
- UserRegisterOperation userRegOP = (UserRegisterOperation) ops[i];
- txCtx.getDataset().getUserAccountSet().register(userRegOP.getUserID().getAddress(),
- userRegOP.getUserID().getPubKey());
- }
-
- txCtx.commit(TransactionState.SUCCESS, null);
-
- return ledgerEditor.prepare();
- }
+// private LedgerBlock initLedgerDataset(LedgerEditor ledgerEditor) {
+// // 初始化时,自动将参与方注册为账本的用户;
+// TxRequestBuilder txReqBuilder = new TxRequestBuilder(this.initTxContent);
+//// ParticipantNode[] parties = this.ledgerInitSetting.getConsensusParticipants();
+// ParticipantNode parti = this.ledgerInitSetting.getConsensusParticipants()[currentId];
+//
+// PubKey pubKey = parti.getPubKey();
+// SignatureDigest signDigest = this.localPermission.getTransactionSignature();
+// DigitalSignatureBlob digitalSignature = new DigitalSignatureBlob(pubKey, signDigest);
+// txReqBuilder.addNodeSignature(digitalSignature);
+//
+// TransactionRequest txRequest = txReqBuilder.buildRequest();
+//
+// LedgerTransactionContext txCtx = ledgerEditor.newTransaction(txRequest);
+// Operation[] ops = txRequest.getTransactionContent().getOperations();
+// // 注册用户; 注:第一个操作是 LedgerInitOperation;
+// // TODO:暂时只支持注册用户的初始化操作;
+// for (int i = 1; i < ops.length; i++) {
+// UserRegisterOperation userRegOP = (UserRegisterOperation) ops[i];
+// txCtx.getDataset().getUserAccountSet().register(userRegOP.getUserID().getAddress(),
+// userRegOP.getUserID().getPubKey());
+// }
+//
+// txCtx.commit(TransactionState.SUCCESS, null);
+//
+// return ledgerEditor.prepare();
+// }
private byte[] getDecisionBytes(int participantId, HashDigest ledgerHash) {
return BytesUtils.concat(BytesUtils.toBytes(participantId), ledgerHash.toBytes());
diff --git a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/MockerNodeContext.java b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/MockerNodeContext.java
index 189b7f63..ab2167a2 100644
--- a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/MockerNodeContext.java
+++ b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/MockerNodeContext.java
@@ -20,6 +20,7 @@ import com.jd.blockchain.consensus.action.ActionResponse;
import com.jd.blockchain.crypto.Crypto;
import com.jd.blockchain.crypto.CryptoProvider;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.crypto.service.classic.ClassicAlgorithm;
@@ -40,6 +41,7 @@ import com.jd.blockchain.ledger.KVInfoVO;
import com.jd.blockchain.ledger.LedgerAdminInfo;
import com.jd.blockchain.ledger.LedgerBlock;
import com.jd.blockchain.ledger.LedgerInfo;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.LedgerMetadata;
import com.jd.blockchain.ledger.LedgerPermission;
import com.jd.blockchain.ledger.LedgerTransaction;
@@ -75,8 +77,6 @@ import com.jd.blockchain.service.TransactionBatchResultHandle;
import com.jd.blockchain.storage.service.DbConnectionFactory;
import com.jd.blockchain.storage.service.utils.MemoryDBConnFactory;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.transaction.BlockchainQueryService;
import com.jd.blockchain.transaction.TxBuilder;
import com.jd.blockchain.utils.Bytes;
@@ -164,16 +164,16 @@ public class MockerNodeContext implements BlockchainQueryService {
boolean isExist = false;
// 通过公钥进行判断
for (Map.Entry entry : participants.entrySet()) {
- String existPubKey = KeyGenCommand.encodePubKey(entry.getValue().getPubKey());
+ String existPubKey = KeyGenUtils.encodePubKey(entry.getValue().getPubKey());
if (pubKeyString.equals(existPubKey)) {
isExist = true;
}
}
if (!isExist) {
// 加入系统中
- PrivKey privKey = KeyGenCommand.decodePrivKeyWithRawPassword(MockerConstant.PRIVATE_KEYS[i],
+ PrivKey privKey = KeyGenUtils.decodePrivKeyWithRawPassword(MockerConstant.PRIVATE_KEYS[i],
MockerConstant.PASSWORD);
- PubKey pubKey = KeyGenCommand.decodePubKey(MockerConstant.PUBLIC_KEYS[i]);
+ PubKey pubKey = KeyGenUtils.decodePubKey(MockerConstant.PUBLIC_KEYS[i]);
participants(new BlockchainKeypair(pubKey, privKey));
}
if (participants.size() >= 4) {
@@ -524,7 +524,7 @@ public class MockerNodeContext implements BlockchainQueryService {
ledgerProp.put(partiPrefix + LedgerInitProperties.PART_NAME, name);
ledgerProp.put(partiPrefix + LedgerInitProperties.PART_PUBKEY_PATH, "");
ledgerProp.put(partiPrefix + LedgerInitProperties.PART_PUBKEY,
- KeyGenCommand.encodePubKey(keypair.getPubKey()));
+ KeyGenUtils.encodePubKey(keypair.getPubKey()));
ledgerProp.put(partiPrefix + LedgerInitProperties.PART_INITIALIZER_HOST, MockerConstant.LOCAL_ADDRESS);
ledgerProp.put(partiPrefix + LedgerInitProperties.PART_INITIALIZER_PORT,
String.valueOf(MockerConstant.LEDGER_INIT_PORT_START + partiIndex * 10));
diff --git a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerNodeHandler.java b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerNodeHandler.java
index bd1bea24..b4d355fc 100644
--- a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerNodeHandler.java
+++ b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerNodeHandler.java
@@ -1,8 +1,10 @@
package com.jd.blockchain.mocker.handler;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.gateway.GatewayConfigProperties;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.mocker.config.MockerConstant;
import com.jd.blockchain.mocker.config.PresetAnswerPrompter;
import com.jd.blockchain.mocker.node.GatewayNodeRunner;
@@ -10,9 +12,7 @@ import com.jd.blockchain.mocker.node.NodeWebContext;
import com.jd.blockchain.mocker.node.PeerNodeRunner;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerBindingConfig;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;
import com.jd.blockchain.utils.net.NetworkAddress;
import org.springframework.util.ResourceUtils;
@@ -93,7 +93,7 @@ public class MockerNodeHandler {
// 启动服务器;
NetworkAddress initAddr = initSetting.getConsensusParticipant(nodeIndex).getInitializerAddress();
NodeWebContext node = new NodeWebContext(nodeIndex, initAddr);
- PrivKey privkey = KeyGenCommand.decodePrivKeyWithRawPassword(PRIVATE_KEYS[nodeIndex], PASSWORD);
+ PrivKey privkey = KeyGenUtils.decodePrivKeyWithRawPassword(PRIVATE_KEYS[nodeIndex], PASSWORD);
DBConnectionConfig dbConn = new DBConnectionConfig();
dbConn.setConnectionUri(MockerConstant.DB_MEMS[nodeIndex]);
ThreadInvoker.AsyncCallback nodeCallback = node.startInit(privkey, initSetting, dbConn, consolePrompter,
diff --git a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerServiceHandler.java b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerServiceHandler.java
index 36308c0c..d7f1f43b 100644
--- a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerServiceHandler.java
+++ b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerServiceHandler.java
@@ -1,6 +1,7 @@
package com.jd.blockchain.mocker.handler;
import com.jd.blockchain.crypto.HashDigest;
+import com.jd.blockchain.crypto.KeyGenUtils;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.*;
@@ -9,7 +10,6 @@ import com.jd.blockchain.mocker.data.KvData;
import com.jd.blockchain.mocker.data.ResponseData;
import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.client.GatewayServiceFactory;
-import com.jd.blockchain.tools.keygen.KeyGenCommand;
public class MockerServiceHandler {
@@ -115,8 +115,8 @@ public class MockerServiceHandler {
}
private BlockchainKeypair defaultParticipant() {
- PrivKey privKey = KeyGenCommand.decodePrivKeyWithRawPassword(MockerConstant.PRIVATE_KEYS[0], MockerConstant.PASSWORD);
- PubKey pubKey = KeyGenCommand.decodePubKey(MockerConstant.PUBLIC_KEYS[0]);
+ PrivKey privKey = KeyGenUtils.decodePrivKeyWithRawPassword(MockerConstant.PRIVATE_KEYS[0], MockerConstant.PASSWORD);
+ PubKey pubKey = KeyGenUtils.decodePubKey(MockerConstant.PUBLIC_KEYS[0]);
return new BlockchainKeypair(pubKey, privKey);
}
diff --git a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/node/NodeWebContext.java b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/node/NodeWebContext.java
index 5735bf36..30cb4866 100644
--- a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/node/NodeWebContext.java
+++ b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/node/NodeWebContext.java
@@ -2,6 +2,7 @@ package com.jd.blockchain.mocker.node;
import com.jd.blockchain.crypto.HashDigest;
import com.jd.blockchain.crypto.PrivKey;
+import com.jd.blockchain.ledger.LedgerInitProperties;
import com.jd.blockchain.ledger.TransactionContent;
import com.jd.blockchain.ledger.core.LedgerInitDecision;
import com.jd.blockchain.ledger.core.LedgerInitProposal;
@@ -12,7 +13,6 @@ import com.jd.blockchain.storage.service.DbConnection;
import com.jd.blockchain.storage.service.impl.composite.CompositeConnectionFactory;
import com.jd.blockchain.tools.initializer.DBConnectionConfig;
import com.jd.blockchain.tools.initializer.LedgerInitProcess;
-import com.jd.blockchain.tools.initializer.LedgerInitProperties;
import com.jd.blockchain.tools.initializer.Prompter;
import com.jd.blockchain.tools.initializer.web.LedgerInitializeWebController;
import com.jd.blockchain.utils.concurrent.ThreadInvoker;