@@ -8,11 +8,11 @@ package com.jd.blockchain.consts; | |||||
*/ | */ | ||||
public interface DataCodes { | public interface DataCodes { | ||||
public static final int BYTES_VALUE = 0x80; | |||||
public static final int BYTES_VALUE = 0x080; | |||||
public static final int BYTES_VALUE_LIST = 0x81; | |||||
public static final int BYTES_VALUE_LIST = 0x081; | |||||
public static final int BLOCK_CHAIN_IDENTITY = 0x90; | |||||
public static final int BLOCK_CHAIN_IDENTITY = 0x090; | |||||
public static final int BLOCK = 0x100; | public static final int BLOCK = 0x100; | ||||
@@ -52,12 +52,17 @@ public interface DataCodes { | |||||
public static final int TX_RESPONSE = 0x350; | public static final int TX_RESPONSE = 0x350; | ||||
public static final int TX_OP_RESULT = 0x360; | public static final int TX_OP_RESULT = 0x360; | ||||
// enum types of permissions; | |||||
public static final int ENUM_TX_PERMISSIONS = 0x401; | |||||
public static final int ENUM_LEDGER_PERMISSIONS = 0x402; | |||||
// contract types of metadata; | |||||
public static final int METADATA = 0x600; | public static final int METADATA = 0x600; | ||||
public static final int METADATA_INIT_SETTING = 0x610; | public static final int METADATA_INIT_SETTING = 0x610; | ||||
public static final int METADATA_INIT_PERMISSION = 0x611; | |||||
public static final int METADATA_INIT_PROPOSAL = 0x611; | |||||
public static final int METADATA_INIT_DECISION = 0x612; | public static final int METADATA_INIT_DECISION = 0x612; | ||||
@@ -18,15 +18,13 @@ public class GatewayBooter { | |||||
writePID(); | writePID(); | ||||
GatewayServerBooter.main(args); | GatewayServerBooter.main(args); | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
e.printStackTrace(); | |||||
System.err.println("Error!!! --[" + e.getClass().getName() + "] " + e.getMessage()); | System.err.println("Error!!! --[" + e.getClass().getName() + "] " + e.getMessage()); | ||||
} | } | ||||
} | } | ||||
private static final void writePID() throws Exception { | private static final void writePID() throws Exception { | ||||
URL url = GatewayBooter.class | |||||
.getProtectionDomain() | |||||
.getCodeSource() | |||||
.getLocation(); | |||||
URL url = GatewayBooter.class.getProtectionDomain().getCodeSource().getLocation(); | |||||
String currPath = java.net.URLDecoder.decode(url.getPath(), "UTF-8"); | String currPath = java.net.URLDecoder.decode(url.getPath(), "UTF-8"); | ||||
if (currPath.contains("!/")) { | if (currPath.contains("!/")) { | ||||
currPath = currPath.substring(5, currPath.indexOf("!/")); | currPath = currPath.substring(5, currPath.indexOf("!/")); | ||||
@@ -40,6 +38,10 @@ public class GatewayBooter { | |||||
String pidFilePath = homeDir + File.separator + "bin" + File.separator + "PID.log"; | String pidFilePath = homeDir + File.separator + "bin" + File.separator + "PID.log"; | ||||
File pidFile = new File(pidFilePath); | File pidFile = new File(pidFilePath); | ||||
if (!pidFile.exists()) { | if (!pidFile.exists()) { | ||||
File dir = pidFile.getParentFile(); | |||||
if (!dir.exists()) { | |||||
dir.mkdirs(); | |||||
} | |||||
pidFile.createNewFile(); | pidFile.createNewFile(); | ||||
} | } | ||||
String name = ManagementFactory.getRuntimeMXBean().getName(); | String name = ManagementFactory.getRuntimeMXBean().getName(); | ||||
@@ -0,0 +1,63 @@ | |||||
package com.jd.blockchain.ledger.core; | |||||
import java.util.BitSet; | |||||
import com.jd.blockchain.utils.io.BytesSerializable; | |||||
/** | |||||
* LedgerPrivilege 账本特权是授权给特定角色的权限代码序列; | |||||
* | |||||
* @author huanghaiquan | |||||
* | |||||
*/ | |||||
public abstract class AbstractPrivilege<E extends Enum<?>> implements Privilege<E>, BytesSerializable { | |||||
private BitSet permissions; | |||||
public AbstractPrivilege(byte[] codeBytes) { | |||||
permissions = BitSet.valueOf(codeBytes); | |||||
} | |||||
public boolean isEnable(E permission) { | |||||
return permissions.get(getCodeIndex(permission)); | |||||
} | |||||
public void enable(E permission) { | |||||
permissions.set(getCodeIndex(permission)); | |||||
} | |||||
public void disable(E permission) { | |||||
permissions.clear(getCodeIndex(permission)); | |||||
} | |||||
// private int getCodeIndex(E permission) { | |||||
// return permission.CODE & 0xFF; | |||||
// } | |||||
protected abstract int getCodeIndex(E permission); | |||||
@Override | |||||
public byte[] toBytes() { | |||||
return permissions.toByteArray(); | |||||
} | |||||
// public boolean[] getPermissionStates() { | |||||
// LedgerPermission[] PMs = LedgerPermission.values(); | |||||
// | |||||
// LedgerPermission maxPermission = Arrays.stream(PMs).max(new Comparator<LedgerPermission>() { | |||||
// @Override | |||||
// public int compare(LedgerPermission o1, LedgerPermission o2) { | |||||
// return getCodeIndex(o1) - getCodeIndex(o2); | |||||
// } | |||||
// }).get(); | |||||
// | |||||
// boolean[] states = new boolean[getCodeIndex(maxPermission) + 1]; | |||||
// int idx = -1; | |||||
// for (LedgerPermission pm : PMs) { | |||||
// idx = getCodeIndex(pm); | |||||
// states[idx] = permissions.get(idx); | |||||
// } | |||||
// | |||||
// return states; | |||||
// } | |||||
} |
@@ -1,7 +1,5 @@ | |||||
package com.jd.blockchain.ledger.core; | package com.jd.blockchain.ledger.core; | ||||
import com.jd.blockchain.ledger.DigitalSignature; | |||||
/** | /** | ||||
* {@link Authorization} 抽象了对特定用户/角色的授权信息; | * {@link Authorization} 抽象了对特定用户/角色的授权信息; | ||||
* | * | ||||
@@ -1,21 +0,0 @@ | |||||
package com.jd.blockchain.ledger.core; | |||||
/** | |||||
* @author hhq | |||||
* @version 1.0 | |||||
* @created 14-6��-2018 12:13:32 | |||||
*/ | |||||
public class Consensus { | |||||
public P2PRealm m_P2PRealm; | |||||
public Consensus(){ | |||||
} | |||||
public void finalize() throws Throwable { | |||||
} | |||||
} |
@@ -1,5 +0,0 @@ | |||||
package com.jd.blockchain.ledger.core; | |||||
public enum LedgerAdminPrivilege { | |||||
} |
@@ -13,8 +13,8 @@ import com.jd.blockchain.ledger.LedgerInitOperation; | |||||
* @author huanghaiquan | * @author huanghaiquan | ||||
* | * | ||||
*/ | */ | ||||
@DataContract(code = DataCodes.METADATA_INIT_PERMISSION) | |||||
public interface LedgerInitPermission { | |||||
@DataContract(code = DataCodes.METADATA_INIT_PROPOSAL) | |||||
public interface LedgerInitProposal { | |||||
/** | /** | ||||
* 做出许可的参与方 ID; | * 做出许可的参与方 ID; |
@@ -2,7 +2,7 @@ package com.jd.blockchain.ledger.core; | |||||
import com.jd.blockchain.crypto.SignatureDigest; | import com.jd.blockchain.crypto.SignatureDigest; | ||||
public class LedgerInitPermissionData implements LedgerInitPermission { | |||||
public class LedgerInitProposalData implements LedgerInitProposal { | |||||
private int participantId; | private int participantId; | ||||
@@ -11,10 +11,10 @@ public class LedgerInitPermissionData implements LedgerInitPermission { | |||||
/** | /** | ||||
* a private contructor for deserialize; | * a private contructor for deserialize; | ||||
*/ | */ | ||||
private LedgerInitPermissionData() { | |||||
private LedgerInitProposalData() { | |||||
} | } | ||||
public LedgerInitPermissionData(int participantId, SignatureDigest initTxSignature) { | |||||
public LedgerInitProposalData(int participantId, SignatureDigest initTxSignature) { | |||||
this.participantId = participantId; | this.participantId = participantId; | ||||
this.transactionSignature = initTxSignature; | this.transactionSignature = initTxSignature; | ||||
} | } |
@@ -1,9 +1,94 @@ | |||||
package com.jd.blockchain.ledger.core; | package com.jd.blockchain.ledger.core; | ||||
import com.jd.blockchain.binaryproto.EnumContract; | |||||
import com.jd.blockchain.binaryproto.EnumField; | |||||
import com.jd.blockchain.binaryproto.PrimitiveType; | |||||
import com.jd.blockchain.consts.DataCodes; | |||||
/** | |||||
* 账本相关的权限,这些权限属于全局性的; | |||||
* | |||||
* @author huanghaiquan | |||||
* | |||||
*/ | |||||
@EnumContract(code = DataCodes.ENUM_LEDGER_PERMISSIONS) | |||||
public enum LedgerPermission { | public enum LedgerPermission { | ||||
SET_ROLE((byte) 0); | |||||
/** | |||||
* 设置角色权限;<br> | |||||
* 包括:创建角色、设置角色的权限代码、分配用户角色; | |||||
*/ | |||||
SET_ROLE_PERMISSION((byte) 0x01), | |||||
/** | |||||
* 设置共识协议;<br> | |||||
*/ | |||||
SET_CONSENSUS((byte) 0x02), | |||||
/** | |||||
* 设置密码体系;<br> | |||||
*/ | |||||
SET_CRYPTO((byte) 0x03), | |||||
/** | |||||
* 注册参与方;<br> | |||||
*/ | |||||
REGISTER_PARTICIPANT((byte) 0x04), | |||||
/** | |||||
* 设置参与方的权限;<br> | |||||
* | |||||
* 如果不具备此项权限,则无法设置参与方的“提交交易”、“参与共识”的权限; | |||||
*/ | |||||
SET_PARTICIPANT_PERMISSION((byte) 0x05), | |||||
/** | |||||
* 参与方核准交易;<br> | |||||
* | |||||
* 如果不具备此项权限,则无法作为网关节点接入并签署由终端提交的交易; | |||||
*/ | |||||
APPROVE_TX((byte) 0x06), | |||||
/** | |||||
* 参与方共识交易;<br> | |||||
* | |||||
* 如果不具备此项权限,则无法作为共识节点接入并对交易进行共识; | |||||
*/ | |||||
CONSENSUS_TX((byte) 0x07), | |||||
/** | |||||
* 注册用户;<br> | |||||
* | |||||
* 如果不具备此项权限,则无法注册用户; | |||||
*/ | |||||
REGISTER_USER((byte) 0x08), | |||||
/** | |||||
* 设置用户属性;<br> | |||||
*/ | |||||
SET_USER_ATTRIBUTES((byte) 0x09), | |||||
/** | |||||
* 注册数据账户;<br> | |||||
*/ | |||||
REGISTER_DATA_ACCOUNT((byte) 0x0A), | |||||
/** | |||||
* 写入数据账户;<br> | |||||
*/ | |||||
WRITE_DATA_ACCOUNT((byte) 0x0B), | |||||
/** | |||||
* 注册合约;<br> | |||||
*/ | |||||
REGISTER_CONTRACT((byte) 0x0C), | |||||
/** | |||||
* 升级合约 | |||||
*/ | |||||
UPGRADE_CONTRACT((byte) 0x0D); | |||||
@EnumField(type = PrimitiveType.INT8) | |||||
public final byte CODE; | public final byte CODE; | ||||
private LedgerPermission(byte code) { | private LedgerPermission(byte code) { | ||||
@@ -0,0 +1,20 @@ | |||||
package com.jd.blockchain.ledger.core; | |||||
/** | |||||
* LedgerPrivilege 账本特权是授权给特定角色的权限代码序列; | |||||
* | |||||
* @author huanghaiquan | |||||
* | |||||
*/ | |||||
public class LedgerPrivilege extends AbstractPrivilege<LedgerPermission> { | |||||
public LedgerPrivilege(byte[] codeBytes) { | |||||
super(codeBytes); | |||||
} | |||||
@Override | |||||
protected int getCodeIndex(LedgerPermission permission) { | |||||
return permission.CODE & 0xFF; | |||||
} | |||||
} |
@@ -22,7 +22,7 @@ public class LedgerSecurityManager { | |||||
throw new IllegalStateException("Not implemented!"); | throw new IllegalStateException("Not implemented!"); | ||||
} | } | ||||
public Role setRole(String role, Privilege privilege) { | |||||
public Role setRole(String role, LedgerPrivilege privilege) { | |||||
throw new IllegalStateException("Not implemented!"); | throw new IllegalStateException("Not implemented!"); | ||||
} | } | ||||
@@ -1,21 +0,0 @@ | |||||
package com.jd.blockchain.ledger.core; | |||||
/** | |||||
* @author hhq | |||||
* @version 1.0 | |||||
* @created 14-6��-2018 12:13:33 | |||||
*/ | |||||
public class P2PRealm { | |||||
public Peer m_Peer; | |||||
public P2PRealm(){ | |||||
} | |||||
public void finalize() throws Throwable { | |||||
} | |||||
} |
@@ -1,54 +1,5 @@ | |||||
package com.jd.blockchain.ledger.core; | package com.jd.blockchain.ledger.core; | ||||
import java.util.Arrays; | |||||
import java.util.BitSet; | |||||
import java.util.Comparator; | |||||
public interface Privilege<E extends Enum<?>> { | |||||
public class Privilege { | |||||
private BitSet permissions; | |||||
public Privilege(byte[] codeBytes) { | |||||
permissions = BitSet.valueOf(codeBytes); | |||||
} | |||||
public boolean isEnable(LedgerPermission permission) { | |||||
return permissions.get(getCodeIndex(permission)); | |||||
} | |||||
public void enable(LedgerPermission permission) { | |||||
permissions.set(getCodeIndex(permission)); | |||||
} | |||||
public void disable(LedgerPermission permission) { | |||||
permissions.clear(getCodeIndex(permission)); | |||||
} | |||||
public static int getCodeIndex(LedgerPermission permission) { | |||||
return permission.CODE & 0xFF; | |||||
} | |||||
public byte[] toCodeBytes() { | |||||
return permissions.toByteArray(); | |||||
} | |||||
public boolean[] getPermissionStates() { | |||||
LedgerPermission[] PMs = LedgerPermission.values(); | |||||
LedgerPermission maxPermission = Arrays.stream(PMs).max(new Comparator<LedgerPermission>() { | |||||
@Override | |||||
public int compare(LedgerPermission o1, LedgerPermission o2) { | |||||
return getCodeIndex(o1) - getCodeIndex(o2); | |||||
} | |||||
}).get(); | |||||
boolean[] states = new boolean[getCodeIndex(maxPermission) + 1]; | |||||
int idx = -1; | |||||
for (LedgerPermission pm : PMs) { | |||||
idx = getCodeIndex(pm); | |||||
states[idx] = permissions.get(idx); | |||||
} | |||||
return states; | |||||
} | |||||
} | } |
@@ -6,7 +6,7 @@ public class Role { | |||||
private long version; | private long version; | ||||
private Privilege privilege; | |||||
private LedgerPrivilege privilege; | |||||
@@ -18,7 +18,7 @@ public class Role { | |||||
return version; | return version; | ||||
} | } | ||||
public Privilege getPrivilege() { | |||||
public LedgerPrivilege getPrivilege() { | |||||
return privilege; | return privilege; | ||||
} | } | ||||
@@ -0,0 +1,68 @@ | |||||
package com.jd.blockchain.ledger.core; | |||||
import java.io.ByteArrayInputStream; | |||||
import java.io.ByteArrayOutputStream; | |||||
import com.jd.blockchain.utils.io.BytesEncoding; | |||||
import com.jd.blockchain.utils.io.BytesSerializable; | |||||
/** | |||||
* 表示赋予角色的特权码; | |||||
* | |||||
* @author huanghaiquan | |||||
* | |||||
*/ | |||||
public class RolePrivilege implements BytesSerializable { | |||||
// 权限码的数量;目前有2种:账本权限 + 交易权限; | |||||
private static final int SEGMENT_COUNT = 2; | |||||
private LedgerPrivilege ledgerPrivilege; | |||||
private TxPrivilege txPrivilege; | |||||
public Privilege<TxPermission> getTxPrivilege() { | |||||
return txPrivilege; | |||||
} | |||||
public Privilege<LedgerPermission> getLedgerPrivilege() { | |||||
return ledgerPrivilege; | |||||
} | |||||
public RolePrivilege(byte[] priviledgeCodes) { | |||||
byte[][] bytesSegments = decodeBytes(priviledgeCodes); | |||||
ledgerPrivilege = new LedgerPrivilege(bytesSegments[0]); | |||||
txPrivilege = new TxPrivilege(bytesSegments[1]); | |||||
} | |||||
private byte[] encodeBytes(byte[]... bytes) { | |||||
ByteArrayOutputStream out = new ByteArrayOutputStream(); | |||||
// write one byte; | |||||
out.write(bytes.length); | |||||
for (int i = 0; i < bytes.length; i++) { | |||||
BytesEncoding.writeInTiny(bytes[i], out); | |||||
} | |||||
return out.toByteArray(); | |||||
} | |||||
private byte[][] decodeBytes(byte[] bytes) { | |||||
ByteArrayInputStream in = new ByteArrayInputStream(bytes); | |||||
// read one byte; | |||||
int len = in.read(); | |||||
if (len < 1 || len > SEGMENT_COUNT) { | |||||
throw new IllegalStateException("Decoded illegal privilege bytes!"); | |||||
} | |||||
byte[][] bytesSegments = new byte[len][]; | |||||
for (int i = 0; i < bytesSegments.length; i++) { | |||||
bytesSegments[i] = BytesEncoding.readInTiny(in); | |||||
} | |||||
return bytesSegments; | |||||
} | |||||
@Override | |||||
public byte[] toBytes() { | |||||
// 保持和解码时一致的顺序; | |||||
return encodeBytes(ledgerPrivilege.toBytes(), txPrivilege.toBytes()); | |||||
} | |||||
} |
@@ -0,0 +1,34 @@ | |||||
package com.jd.blockchain.ledger.core; | |||||
import com.jd.blockchain.binaryproto.EnumContract; | |||||
import com.jd.blockchain.binaryproto.EnumField; | |||||
import com.jd.blockchain.binaryproto.PrimitiveType; | |||||
import com.jd.blockchain.consts.DataCodes; | |||||
/** | |||||
* TxPermission 交易权限表示一个用户可以发起的交易类型; | |||||
* | |||||
* @author huanghaiquan | |||||
* | |||||
*/ | |||||
@EnumContract(code = DataCodes.ENUM_TX_PERMISSIONS) | |||||
public enum TxPermission { | |||||
/** | |||||
* 交易中包含指令操作; | |||||
*/ | |||||
COMMAND((byte) 0x01), | |||||
/** | |||||
* 交易中包含合约操作; | |||||
*/ | |||||
CONTRACT((byte) 0x02); | |||||
@EnumField(type = PrimitiveType.INT8) | |||||
public final byte CODE; | |||||
private TxPermission(byte code) { | |||||
this.CODE = code; | |||||
} | |||||
} |
@@ -0,0 +1,14 @@ | |||||
package com.jd.blockchain.ledger.core; | |||||
public class TxPrivilege extends AbstractPrivilege<TxPermission> { | |||||
public TxPrivilege(byte[] codeBytes) { | |||||
super(codeBytes); | |||||
} | |||||
@Override | |||||
protected int getCodeIndex(TxPermission permission) { | |||||
return permission.CODE & 0xFF; | |||||
} | |||||
} |
@@ -26,7 +26,7 @@ import com.jd.blockchain.ledger.PreparedTransaction; | |||||
import com.jd.blockchain.ledger.TransactionContent; | import com.jd.blockchain.ledger.TransactionContent; | ||||
import com.jd.blockchain.ledger.TransactionTemplate; | import com.jd.blockchain.ledger.TransactionTemplate; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposal; | |||||
import com.jd.blockchain.ledger.core.LedgerRepository; | import com.jd.blockchain.ledger.core.LedgerRepository; | ||||
import com.jd.blockchain.ledger.core.impl.LedgerManager; | import com.jd.blockchain.ledger.core.impl.LedgerManager; | ||||
import com.jd.blockchain.sdk.BlockchainService; | import com.jd.blockchain.sdk.BlockchainService; | ||||
@@ -326,7 +326,7 @@ public class ConsensusTest { | |||||
return controller.getInitTxContent(); | return controller.getInitTxContent(); | ||||
} | } | ||||
public LedgerInitPermission getLocalPermission() { | |||||
public LedgerInitProposal getLocalPermission() { | |||||
return controller.getLocalPermission(); | return controller.getLocalPermission(); | ||||
} | } | ||||
@@ -398,7 +398,7 @@ public class ConsensusTest { | |||||
return invoker.start(); | return invoker.start(); | ||||
} | } | ||||
public LedgerInitPermission preparePermision(PrivKey privKey, LedgerInitProperties setting, | |||||
public LedgerInitProposal preparePermision(PrivKey privKey, LedgerInitProperties setting, | |||||
ConsensusSettings csProps) { | ConsensusSettings csProps) { | ||||
return controller.prepareLocalPermission(id, privKey, setting, csProps); | return controller.prepareLocalPermission(id, privKey, setting, csProps); | ||||
} | } | ||||
@@ -28,7 +28,7 @@ import com.jd.blockchain.ledger.PreparedTransaction; | |||||
import com.jd.blockchain.ledger.TransactionContent; | import com.jd.blockchain.ledger.TransactionContent; | ||||
import com.jd.blockchain.ledger.TransactionTemplate; | import com.jd.blockchain.ledger.TransactionTemplate; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposal; | |||||
import com.jd.blockchain.ledger.core.LedgerRepository; | import com.jd.blockchain.ledger.core.LedgerRepository; | ||||
import com.jd.blockchain.ledger.core.impl.LedgerManager; | import com.jd.blockchain.ledger.core.impl.LedgerManager; | ||||
import com.jd.blockchain.sdk.BlockchainService; | import com.jd.blockchain.sdk.BlockchainService; | ||||
@@ -326,7 +326,7 @@ public class GlobalPerformanceTest { | |||||
return controller.getInitTxContent(); | return controller.getInitTxContent(); | ||||
} | } | ||||
public LedgerInitPermission getLocalPermission() { | |||||
public LedgerInitProposal getLocalPermission() { | |||||
return controller.getLocalPermission(); | return controller.getLocalPermission(); | ||||
} | } | ||||
@@ -400,7 +400,7 @@ public class GlobalPerformanceTest { | |||||
return invoker.start(); | return invoker.start(); | ||||
} | } | ||||
public LedgerInitPermission preparePermision(PrivKey privKey, LedgerInitProperties setting, | |||||
public LedgerInitProposal preparePermision(PrivKey privKey, LedgerInitProperties setting, | |||||
ConsensusSettings csProps) { | ConsensusSettings csProps) { | ||||
return controller.prepareLocalPermission(id, privKey, setting, csProps); | return controller.prepareLocalPermission(id, privKey, setting, csProps); | ||||
} | } | ||||
@@ -21,7 +21,7 @@ import com.jd.blockchain.crypto.SignatureDigest; | |||||
import com.jd.blockchain.ledger.LedgerBlock; | import com.jd.blockchain.ledger.LedgerBlock; | ||||
import com.jd.blockchain.ledger.core.CryptoConfig; | import com.jd.blockchain.ledger.core.CryptoConfig; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposal; | |||||
import com.jd.blockchain.ledger.core.LedgerRepository; | import com.jd.blockchain.ledger.core.LedgerRepository; | ||||
import com.jd.blockchain.ledger.core.UserAccount; | import com.jd.blockchain.ledger.core.UserAccount; | ||||
import com.jd.blockchain.ledger.core.UserAccountSet; | import com.jd.blockchain.ledger.core.UserAccountSet; | ||||
@@ -251,10 +251,10 @@ public class LedgerInitializeTest { | |||||
} | } | ||||
@Override | @Override | ||||
public LedgerInitPermission requestPermission(int requesterId, SignatureDigest signature) { | |||||
ThreadInvoker<LedgerInitPermission> invoker = new ThreadInvoker<LedgerInitPermission>() { | |||||
public LedgerInitProposal requestPermission(int requesterId, SignatureDigest signature) { | |||||
ThreadInvoker<LedgerInitProposal> invoker = new ThreadInvoker<LedgerInitProposal>() { | |||||
@Override | @Override | ||||
protected LedgerInitPermission invoke() { | |||||
protected LedgerInitProposal invoke() { | |||||
return initCsService.requestPermission(requesterId, signature); | return initCsService.requestPermission(requesterId, signature); | ||||
} | } | ||||
}; | }; | ||||
@@ -26,7 +26,7 @@ import com.jd.blockchain.ledger.Operation; | |||||
import com.jd.blockchain.ledger.TransactionContent; | import com.jd.blockchain.ledger.TransactionContent; | ||||
import com.jd.blockchain.ledger.UserRegisterOperation; | import com.jd.blockchain.ledger.UserRegisterOperation; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposal; | |||||
import com.jd.blockchain.ledger.core.LedgerRepository; | import com.jd.blockchain.ledger.core.LedgerRepository; | ||||
import com.jd.blockchain.ledger.core.UserAccount; | import com.jd.blockchain.ledger.core.UserAccount; | ||||
import com.jd.blockchain.ledger.core.UserAccountSet; | import com.jd.blockchain.ledger.core.UserAccountSet; | ||||
@@ -112,10 +112,10 @@ public class LedgerInitializeWebTest { | |||||
PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]); | PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]); | ||||
// 测试生成“账本初始化许可”; | // 测试生成“账本初始化许可”; | ||||
LedgerInitPermission permission0 = testPreparePermisssion(node0, privkey0, initSetting, csProps); | |||||
LedgerInitPermission permission1 = testPreparePermisssion(node1, privkey1, initSetting, csProps); | |||||
LedgerInitPermission permission2 = testPreparePermisssion(node2, privkey2, initSetting, csProps); | |||||
LedgerInitPermission permission3 = testPreparePermisssion(node3, privkey3, initSetting, csProps); | |||||
LedgerInitProposal permission0 = testPreparePermisssion(node0, privkey0, initSetting, csProps); | |||||
LedgerInitProposal permission1 = testPreparePermisssion(node1, privkey1, initSetting, csProps); | |||||
LedgerInitProposal permission2 = testPreparePermisssion(node2, privkey2, initSetting, csProps); | |||||
LedgerInitProposal permission3 = testPreparePermisssion(node3, privkey3, initSetting, csProps); | |||||
TransactionContent initTxContent0 = node0.getInitTxContent(); | TransactionContent initTxContent0 = node0.getInitTxContent(); | ||||
TransactionContent initTxContent1 = node1.getInitTxContent(); | TransactionContent initTxContent1 = node1.getInitTxContent(); | ||||
@@ -205,9 +205,9 @@ public class LedgerInitializeWebTest { | |||||
testRequestDecision(node3, node2, initCsService2); | testRequestDecision(node3, node2, initCsService2); | ||||
} | } | ||||
private LedgerInitPermission testPreparePermisssion(NodeWebContext node, PrivKey privKey, | |||||
private LedgerInitProposal testPreparePermisssion(NodeWebContext node, PrivKey privKey, | |||||
LedgerInitProperties setting, ConsensusSettings csProps) { | LedgerInitProperties setting, ConsensusSettings csProps) { | ||||
LedgerInitPermission permission = node.preparePermision(privKey, setting, csProps); | |||||
LedgerInitProposal permission = node.preparePermision(privKey, setting, csProps); | |||||
return permission; | return permission; | ||||
} | } | ||||
@@ -215,7 +215,7 @@ public class LedgerInitializeWebTest { | |||||
private void testRequestPermission(NodeWebContext fromNode, PrivKey fromPrivkey, NodeWebContext targetNode, | private void testRequestPermission(NodeWebContext fromNode, PrivKey fromPrivkey, NodeWebContext targetNode, | ||||
LedgerInitConsensusService targetNodeService) { | LedgerInitConsensusService targetNodeService) { | ||||
SignatureDigest reqSignature = fromNode.createPermissionRequestSignature(fromNode.getId(), fromPrivkey); | SignatureDigest reqSignature = fromNode.createPermissionRequestSignature(fromNode.getId(), fromPrivkey); | ||||
LedgerInitPermission targetPermission = targetNodeService.requestPermission(fromNode.getId(), reqSignature); | |||||
LedgerInitProposal targetPermission = targetNodeService.requestPermission(fromNode.getId(), reqSignature); | |||||
} | } | ||||
private void testRequestDecision(NodeWebContext fromNode, NodeWebContext targetNode, | private void testRequestDecision(NodeWebContext fromNode, NodeWebContext targetNode, | ||||
@@ -374,7 +374,7 @@ public class LedgerInitializeWebTest { | |||||
return controller.getInitTxContent(); | return controller.getInitTxContent(); | ||||
} | } | ||||
public LedgerInitPermission getLocalPermission() { | |||||
public LedgerInitProposal getLocalPermission() { | |||||
return controller.getLocalPermission(); | return controller.getLocalPermission(); | ||||
} | } | ||||
@@ -457,7 +457,7 @@ public class LedgerInitializeWebTest { | |||||
return invoker.start(); | return invoker.start(); | ||||
} | } | ||||
public LedgerInitPermission preparePermision(PrivKey privKey, LedgerInitProperties setting, | |||||
public LedgerInitProposal preparePermision(PrivKey privKey, LedgerInitProperties setting, | |||||
ConsensusSettings csProps) { | ConsensusSettings csProps) { | ||||
return controller.prepareLocalPermission(id, privKey, setting, csProps); | return controller.prepareLocalPermission(id, privKey, setting, csProps); | ||||
} | } | ||||
@@ -18,7 +18,7 @@ import com.jd.blockchain.consensus.ConsensusSettings; | |||||
import com.jd.blockchain.ledger.CryptoSetting; | import com.jd.blockchain.ledger.CryptoSetting; | ||||
import com.jd.blockchain.ledger.core.CryptoConfig; | import com.jd.blockchain.ledger.core.CryptoConfig; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposal; | |||||
import com.jd.blockchain.ledger.core.LedgerRepository; | import com.jd.blockchain.ledger.core.LedgerRepository; | ||||
import com.jd.blockchain.ledger.core.impl.LedgerManager; | import com.jd.blockchain.ledger.core.impl.LedgerManager; | ||||
import com.jd.blockchain.storage.service.DbConnectionFactory; | import com.jd.blockchain.storage.service.DbConnectionFactory; | ||||
@@ -202,10 +202,10 @@ public class Utils { | |||||
} | } | ||||
@Override | @Override | ||||
public LedgerInitPermission requestPermission(int requesterId, SignatureDigest signature) { | |||||
ThreadInvoker<LedgerInitPermission> invoker = new ThreadInvoker<LedgerInitPermission>() { | |||||
public LedgerInitProposal requestPermission(int requesterId, SignatureDigest signature) { | |||||
ThreadInvoker<LedgerInitProposal> invoker = new ThreadInvoker<LedgerInitProposal>() { | |||||
@Override | @Override | ||||
protected LedgerInitPermission invoke() { | |||||
protected LedgerInitProposal invoke() { | |||||
return initCsService.requestPermission(requesterId, signature); | return initCsService.requestPermission(requesterId, signature); | ||||
} | } | ||||
}; | }; | ||||
@@ -30,7 +30,7 @@ import com.jd.blockchain.ledger.LedgerInitOperation; | |||||
import com.jd.blockchain.ledger.UserRegisterOperation; | import com.jd.blockchain.ledger.UserRegisterOperation; | ||||
import com.jd.blockchain.ledger.core.CryptoConfig; | import com.jd.blockchain.ledger.core.CryptoConfig; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposal; | |||||
import com.jd.blockchain.ledger.core.LedgerRepository; | import com.jd.blockchain.ledger.core.LedgerRepository; | ||||
import com.jd.blockchain.ledger.core.UserAccount; | import com.jd.blockchain.ledger.core.UserAccount; | ||||
import com.jd.blockchain.ledger.core.UserAccountSet; | import com.jd.blockchain.ledger.core.UserAccountSet; | ||||
@@ -301,10 +301,10 @@ public class LedgerInitializeTest { | |||||
} | } | ||||
@Override | @Override | ||||
public LedgerInitPermission requestPermission(int requesterId, SignatureDigest signature) { | |||||
ThreadInvoker<LedgerInitPermission> invoker = new ThreadInvoker<LedgerInitPermission>() { | |||||
public LedgerInitProposal requestPermission(int requesterId, SignatureDigest signature) { | |||||
ThreadInvoker<LedgerInitProposal> invoker = new ThreadInvoker<LedgerInitProposal>() { | |||||
@Override | @Override | ||||
protected LedgerInitPermission invoke() { | |||||
protected LedgerInitProposal invoke() { | |||||
return initCsService.requestPermission(requesterId, signature); | return initCsService.requestPermission(requesterId, signature); | ||||
} | } | ||||
}; | }; | ||||
@@ -213,7 +213,7 @@ public class LedgerInitializeWeb4Nodes { | |||||
return controller.getInitTxContent(); | return controller.getInitTxContent(); | ||||
} | } | ||||
public LedgerInitPermission getLocalPermission() { | |||||
public LedgerInitProposal getLocalPermission() { | |||||
return controller.getLocalPermission(); | return controller.getLocalPermission(); | ||||
} | } | ||||
@@ -27,7 +27,7 @@ import com.jd.blockchain.ledger.Operation; | |||||
import com.jd.blockchain.ledger.TransactionContent; | import com.jd.blockchain.ledger.TransactionContent; | ||||
import com.jd.blockchain.ledger.UserRegisterOperation; | import com.jd.blockchain.ledger.UserRegisterOperation; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposal; | |||||
import com.jd.blockchain.ledger.core.LedgerRepository; | import com.jd.blockchain.ledger.core.LedgerRepository; | ||||
import com.jd.blockchain.ledger.core.impl.LedgerManager; | import com.jd.blockchain.ledger.core.impl.LedgerManager; | ||||
import com.jd.blockchain.storage.service.DbConnection; | import com.jd.blockchain.storage.service.DbConnection; | ||||
@@ -116,10 +116,10 @@ public class LedgerInitializeWeb4SingleStepsTest { | |||||
PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]); | PubKey pubKey3 = KeyGenCommand.decodePubKey(PUB_KEYS[3]); | ||||
// 测试生成“账本初始化许可”; | // 测试生成“账本初始化许可”; | ||||
LedgerInitPermission permission0 = testPreparePermisssion(node0, privkey0, initSetting, csProps); | |||||
LedgerInitPermission permission1 = testPreparePermisssion(node1, privkey1, initSetting, csProps); | |||||
LedgerInitPermission permission2 = testPreparePermisssion(node2, privkey2, initSetting, csProps); | |||||
LedgerInitPermission permission3 = testPreparePermisssion(node3, privkey3, initSetting, csProps); | |||||
LedgerInitProposal permission0 = testPreparePermisssion(node0, privkey0, initSetting, csProps); | |||||
LedgerInitProposal permission1 = testPreparePermisssion(node1, privkey1, initSetting, csProps); | |||||
LedgerInitProposal permission2 = testPreparePermisssion(node2, privkey2, initSetting, csProps); | |||||
LedgerInitProposal permission3 = testPreparePermisssion(node3, privkey3, initSetting, csProps); | |||||
TransactionContent initTxContent0 = node0.getInitTxContent(); | TransactionContent initTxContent0 = node0.getInitTxContent(); | ||||
TransactionContent initTxContent1 = node1.getInitTxContent(); | TransactionContent initTxContent1 = node1.getInitTxContent(); | ||||
@@ -240,9 +240,9 @@ public class LedgerInitializeWeb4SingleStepsTest { | |||||
testRequestDecision(node3, node2, initCsService2); | testRequestDecision(node3, node2, initCsService2); | ||||
} | } | ||||
private LedgerInitPermission testPreparePermisssion(NodeWebContext node, PrivKey privKey, | |||||
private LedgerInitProposal testPreparePermisssion(NodeWebContext node, PrivKey privKey, | |||||
LedgerInitProperties setting, ConsensusSettings csProps) { | LedgerInitProperties setting, ConsensusSettings csProps) { | ||||
LedgerInitPermission permission = node.preparePermision(privKey, setting, csProps); | |||||
LedgerInitProposal permission = node.preparePermision(privKey, setting, csProps); | |||||
assertEquals(node.getId(), permission.getParticipantId()); | assertEquals(node.getId(), permission.getParticipantId()); | ||||
assertNotNull(permission.getTransactionSignature()); | assertNotNull(permission.getTransactionSignature()); | ||||
@@ -253,7 +253,7 @@ public class LedgerInitializeWeb4SingleStepsTest { | |||||
private void testRequestPermission(NodeWebContext fromNode, PrivKey fromPrivkey, NodeWebContext targetNode, | private void testRequestPermission(NodeWebContext fromNode, PrivKey fromPrivkey, NodeWebContext targetNode, | ||||
LedgerInitConsensusService targetNodeService) { | LedgerInitConsensusService targetNodeService) { | ||||
SignatureDigest reqSignature = fromNode.createPermissionRequestSignature(fromNode.getId(), fromPrivkey); | SignatureDigest reqSignature = fromNode.createPermissionRequestSignature(fromNode.getId(), fromPrivkey); | ||||
LedgerInitPermission targetPermission = targetNodeService.requestPermission(fromNode.getId(), reqSignature); | |||||
LedgerInitProposal targetPermission = targetNodeService.requestPermission(fromNode.getId(), reqSignature); | |||||
assertEquals(targetNode.getId(), targetPermission.getParticipantId()); | assertEquals(targetNode.getId(), targetPermission.getParticipantId()); | ||||
assertEquals(targetNode.getLocalPermission().getTransactionSignature(), | assertEquals(targetNode.getLocalPermission().getTransactionSignature(), | ||||
targetPermission.getTransactionSignature()); | targetPermission.getTransactionSignature()); | ||||
@@ -312,7 +312,7 @@ public class LedgerInitializeWeb4SingleStepsTest { | |||||
return controller.getInitTxContent(); | return controller.getInitTxContent(); | ||||
} | } | ||||
public LedgerInitPermission getLocalPermission() { | |||||
public LedgerInitProposal getLocalPermission() { | |||||
return controller.getLocalPermission(); | return controller.getLocalPermission(); | ||||
} | } | ||||
@@ -385,7 +385,7 @@ public class LedgerInitializeWeb4SingleStepsTest { | |||||
return invoker.start(); | return invoker.start(); | ||||
} | } | ||||
public LedgerInitPermission preparePermision(PrivKey privKey, LedgerInitProperties setting, | |||||
public LedgerInitProposal preparePermision(PrivKey privKey, LedgerInitProperties setting, | |||||
ConsensusSettings csProps) { | ConsensusSettings csProps) { | ||||
return controller.prepareLocalPermission(id, privKey, setting, csProps); | return controller.prepareLocalPermission(id, privKey, setting, csProps); | ||||
} | } | ||||
@@ -2,7 +2,7 @@ package com.jd.blockchain.tools.initializer.web; | |||||
import com.jd.blockchain.crypto.SignatureDigest; | import com.jd.blockchain.crypto.SignatureDigest; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposal; | |||||
import com.jd.blockchain.utils.http.HttpAction; | import com.jd.blockchain.utils.http.HttpAction; | ||||
import com.jd.blockchain.utils.http.HttpMethod; | import com.jd.blockchain.utils.http.HttpMethod; | ||||
import com.jd.blockchain.utils.http.HttpService; | import com.jd.blockchain.utils.http.HttpService; | ||||
@@ -21,7 +21,7 @@ public interface LedgerInitConsensusService { | |||||
* 请求者的私钥对 “id” + “账本种子” 做出的签名;只有签名合法且参与者是初始化配置中的参与方才能获得有效返回,否则将被拒绝; | * 请求者的私钥对 “id” + “账本种子” 做出的签名;只有签名合法且参与者是初始化配置中的参与方才能获得有效返回,否则将被拒绝; | ||||
*/ | */ | ||||
@HttpAction(path = "/legerinit/permission/{requesterId}", method = HttpMethod.POST, contentType = LedgerInitMessageConverter.CONTENT_TYPE_VALUE, responseConverter = PermissionResponseConverter.class) | @HttpAction(path = "/legerinit/permission/{requesterId}", method = HttpMethod.POST, contentType = LedgerInitMessageConverter.CONTENT_TYPE_VALUE, responseConverter = PermissionResponseConverter.class) | ||||
LedgerInitPermission requestPermission(@PathParam(name = "requesterId") int requesterId, | |||||
LedgerInitProposal requestPermission(@PathParam(name = "requesterId") int requesterId, | |||||
@RequestBody(converter = SignatureDigestRequestBodyConverter.class) SignatureDigest signature); | @RequestBody(converter = SignatureDigestRequestBodyConverter.class) SignatureDigest signature); | ||||
/** | /** | ||||
@@ -17,8 +17,8 @@ import com.jd.blockchain.binaryproto.BinaryProtocol; | |||||
import com.jd.blockchain.binaryproto.DataContractRegistry; | import com.jd.blockchain.binaryproto.DataContractRegistry; | ||||
import com.jd.blockchain.crypto.SignatureDigest; | import com.jd.blockchain.crypto.SignatureDigest; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitPermissionData; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposal; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposalData; | |||||
import com.jd.blockchain.utils.io.BytesUtils; | import com.jd.blockchain.utils.io.BytesUtils; | ||||
/** | /** | ||||
@@ -38,10 +38,10 @@ public class LedgerInitMessageConverter implements HttpMessageConverter<Object> | |||||
private static final Map<Class<?>, Class<?>> SUPPORTED_CONTRACT_TYPES = new HashMap<>(); | private static final Map<Class<?>, Class<?>> SUPPORTED_CONTRACT_TYPES = new HashMap<>(); | ||||
static { | static { | ||||
DataContractRegistry.register(LedgerInitPermission.class); | |||||
DataContractRegistry.register(LedgerInitProposal.class); | |||||
DataContractRegistry.register(LedgerInitDecision.class); | DataContractRegistry.register(LedgerInitDecision.class); | ||||
SUPPORTED_CONTRACT_TYPES.put(LedgerInitPermission.class, LedgerInitPermissionData.class); | |||||
SUPPORTED_CONTRACT_TYPES.put(LedgerInitProposal.class, LedgerInitProposalData.class); | |||||
SUPPORTED_CONTRACT_TYPES.put(LedgerInitDecision.class, LedgerInitDecisionData.class); | SUPPORTED_CONTRACT_TYPES.put(LedgerInitDecision.class, LedgerInitDecisionData.class); | ||||
// SUPPORTED_CONTRACT_TYPES.add(LedgerInitResponse.class); | // SUPPORTED_CONTRACT_TYPES.add(LedgerInitResponse.class); | ||||
@@ -46,8 +46,8 @@ import com.jd.blockchain.ledger.UserRegisterOperation; | |||||
import com.jd.blockchain.ledger.core.CryptoConfig; | import com.jd.blockchain.ledger.core.CryptoConfig; | ||||
import com.jd.blockchain.ledger.core.LedgerEditor; | import com.jd.blockchain.ledger.core.LedgerEditor; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitPermissionData; | |||||
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.LedgerManage; | ||||
import com.jd.blockchain.ledger.core.LedgerTransactionContext; | import com.jd.blockchain.ledger.core.LedgerTransactionContext; | ||||
import com.jd.blockchain.storage.service.DbConnection; | import com.jd.blockchain.storage.service.DbConnection; | ||||
@@ -84,7 +84,7 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI | |||||
private final SignatureFunction SIGN_FUNC; | private final SignatureFunction SIGN_FUNC; | ||||
private volatile LedgerInitPermission localPermission; | |||||
private volatile LedgerInitProposal localPermission; | |||||
private TransactionContent initTxContent; | private TransactionContent initTxContent; | ||||
@@ -92,7 +92,7 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI | |||||
private volatile LedgerInitSetting ledgerInitSetting; | private volatile LedgerInitSetting ledgerInitSetting; | ||||
private volatile LedgerInitPermission[] permissions; | |||||
private volatile LedgerInitProposal[] permissions; | |||||
private volatile NetworkAddress[] initializerAddresses; | private volatile NetworkAddress[] initializerAddresses; | ||||
@@ -140,7 +140,7 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI | |||||
return initTxContent; | return initTxContent; | ||||
} | } | ||||
public LedgerInitPermission getLocalPermission() { | |||||
public LedgerInitProposal getLocalPermission() { | |||||
return localPermission; | return localPermission; | ||||
} | } | ||||
@@ -319,13 +319,13 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI | |||||
return defCryptoSetting; | return defCryptoSetting; | ||||
} | } | ||||
public LedgerInitPermission prepareLocalPermission(int currentId, PrivKey privKey, LedgerInitProperties ledgerProps, | |||||
public LedgerInitProposal prepareLocalPermission(int currentId, PrivKey privKey, LedgerInitProperties ledgerProps, | |||||
ConsensusSettings consensusProps) { | ConsensusSettings consensusProps) { | ||||
CryptoSetting defCryptoSetting = createDefaultCryptoSetting(); | CryptoSetting defCryptoSetting = createDefaultCryptoSetting(); | ||||
return prepareLocalPermission(currentId, privKey, ledgerProps, consensusProps, defCryptoSetting); | return prepareLocalPermission(currentId, privKey, ledgerProps, consensusProps, defCryptoSetting); | ||||
} | } | ||||
public LedgerInitPermission prepareLocalPermission(int currentId, PrivKey privKey, LedgerInitProperties ledgerProps, | |||||
public LedgerInitProposal prepareLocalPermission(int currentId, PrivKey privKey, LedgerInitProperties ledgerProps, | |||||
ConsensusSettings csSettings, CryptoSetting cryptoSetting) { | ConsensusSettings csSettings, CryptoSetting cryptoSetting) { | ||||
// 创建初始化配置; | // 创建初始化配置; | ||||
LedgerInitSettingData initSetting = new LedgerInitSettingData(); | LedgerInitSettingData initSetting = new LedgerInitSettingData(); | ||||
@@ -383,10 +383,10 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI | |||||
// 对初始交易签名,生成当前参与者的账本初始化许可; | // 对初始交易签名,生成当前参与者的账本初始化许可; | ||||
SignatureDigest permissionSign = SignatureUtils.sign(initTxContent, privKey); | SignatureDigest permissionSign = SignatureUtils.sign(initTxContent, privKey); | ||||
LedgerInitPermissionData permission = new LedgerInitPermissionData(currentId, permissionSign); | |||||
LedgerInitProposalData permission = new LedgerInitProposalData(currentId, permissionSign); | |||||
this.currentId = currentId; | this.currentId = currentId; | ||||
this.permissions = new LedgerInitPermission[initSetting.getConsensusParticipants().length]; | |||||
this.permissions = new LedgerInitProposal[initSetting.getConsensusParticipants().length]; | |||||
this.permissions[currentId] = permission; | this.permissions[currentId] = permission; | ||||
this.localPermission = permission; | this.localPermission = permission; | ||||
@@ -493,7 +493,7 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI | |||||
continue; | continue; | ||||
} | } | ||||
PubKey pubKey = participants[i].getPubKey(); | PubKey pubKey = participants[i].getPubKey(); | ||||
LedgerInitPermission permission = (LedgerInitPermission) results[i].getValue(); | |||||
LedgerInitProposal permission = (LedgerInitProposal) results[i].getValue(); | |||||
if (permission.getParticipantId() != participants[i].getId()) { | if (permission.getParticipantId() != participants[i].getId()) { | ||||
prompter.error("\r\nThe id of received permission isn't equal to it's participant ! --[Id=%s][name=%s]", | prompter.error("\r\nThe id of received permission isn't equal to it's participant ! --[Id=%s][name=%s]", | ||||
participants[i].getAddress(), participants[i].getName()); | participants[i].getAddress(), participants[i].getName()); | ||||
@@ -534,16 +534,16 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI | |||||
* @param latch | * @param latch | ||||
* @return | * @return | ||||
*/ | */ | ||||
private InvocationResult<LedgerInitPermission> doRequestPermission(int targetId, SignatureDigest reqAuthSign, | |||||
private InvocationResult<LedgerInitProposal> doRequestPermission(int targetId, SignatureDigest reqAuthSign, | |||||
CountDownLatch latch) { | CountDownLatch latch) { | ||||
InvocationResult<LedgerInitPermission> result = new InvocationResult<>(); | |||||
InvocationResult<LedgerInitProposal> result = new InvocationResult<>(); | |||||
try { | try { | ||||
LedgerInitConsensusService initConsensus = connectToParticipant(targetId); | LedgerInitConsensusService initConsensus = connectToParticipant(targetId); | ||||
Thread thrd = new Thread(new Runnable() { | Thread thrd = new Thread(new Runnable() { | ||||
@Override | @Override | ||||
public void run() { | public void run() { | ||||
try { | try { | ||||
LedgerInitPermission permission = initConsensus.requestPermission(currentId, reqAuthSign); | |||||
LedgerInitProposal permission = initConsensus.requestPermission(currentId, reqAuthSign); | |||||
result.setValue(permission); | result.setValue(permission); | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
result.setError(e); | result.setError(e); | ||||
@@ -561,7 +561,7 @@ public class LedgerInitializeWebController implements LedgerInitProcess, LedgerI | |||||
@RequestMapping(path = "/legerinit/permission/{requesterId}", method = RequestMethod.POST, produces = LedgerInitMessageConverter.CONTENT_TYPE_VALUE, consumes = LedgerInitMessageConverter.CONTENT_TYPE_VALUE) | @RequestMapping(path = "/legerinit/permission/{requesterId}", method = RequestMethod.POST, produces = LedgerInitMessageConverter.CONTENT_TYPE_VALUE, consumes = LedgerInitMessageConverter.CONTENT_TYPE_VALUE) | ||||
@Override | @Override | ||||
public LedgerInitPermission requestPermission(@PathVariable(name = "requesterId") int requesterId, | |||||
public LedgerInitProposal requestPermission(@PathVariable(name = "requesterId") int requesterId, | |||||
@RequestBody SignatureDigest signature) { | @RequestBody SignatureDigest signature) { | ||||
if (requesterId == currentId) { | if (requesterId == currentId) { | ||||
throw new LedgerInitException("There is a id conflict!"); | throw new LedgerInitException("There is a id conflict!"); | ||||
@@ -3,7 +3,7 @@ package com.jd.blockchain.tools.initializer.web; | |||||
import java.io.InputStream; | import java.io.InputStream; | ||||
import com.jd.blockchain.binaryproto.BinaryProtocol; | import com.jd.blockchain.binaryproto.BinaryProtocol; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermissionData; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposalData; | |||||
import com.jd.blockchain.tools.initializer.LedgerInitException; | import com.jd.blockchain.tools.initializer.LedgerInitException; | ||||
import com.jd.blockchain.utils.http.HttpServiceContext; | import com.jd.blockchain.utils.http.HttpServiceContext; | ||||
import com.jd.blockchain.utils.http.ResponseConverter; | import com.jd.blockchain.utils.http.ResponseConverter; | ||||
@@ -45,7 +45,7 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon | |||||
private final SignatureFunction SIGN_FUNC; | private final SignatureFunction SIGN_FUNC; | ||||
private volatile LedgerInitPermission localPermission; | |||||
private volatile LedgerInitProposal localPermission; | |||||
private TransactionContent initTxContent; | private TransactionContent initTxContent; | ||||
@@ -92,7 +92,7 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon | |||||
return initTxContent; | return initTxContent; | ||||
} | } | ||||
public LedgerInitPermission getLocalPermission() { | |||||
public LedgerInitProposal getLocalPermission() { | |||||
return localPermission; | return localPermission; | ||||
} | } | ||||
@@ -129,7 +129,7 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon | |||||
prompter.info("Init settings and sign permision..."); | prompter.info("Init settings and sign permision..."); | ||||
prepareLocalPermission(currentId, privKey, ledgerInitProps, null, cryptoSetting); | |||||
prepareLocalProposal(currentId, privKey, ledgerInitProps, null, cryptoSetting); | |||||
try { | try { | ||||
// 连接数据库; | // 连接数据库; | ||||
@@ -201,7 +201,7 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon | |||||
return defCryptoSetting; | return defCryptoSetting; | ||||
} | } | ||||
public LedgerInitPermission prepareLocalPermission(int currentId, PrivKey privKey, LedgerInitProperties ledgerProps, | |||||
public LedgerInitProposal prepareLocalProposal(int currentId, PrivKey privKey, LedgerInitProperties ledgerProps, | |||||
ConsensusSettings csSettings, CryptoSetting cryptoSetting) { | ConsensusSettings csSettings, CryptoSetting cryptoSetting) { | ||||
// 创建初始化配置; | // 创建初始化配置; | ||||
LedgerInitSettingData initSetting = new LedgerInitSettingData(); | LedgerInitSettingData initSetting = new LedgerInitSettingData(); | ||||
@@ -249,7 +249,7 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon | |||||
// 对初始交易签名,生成当前参与者的账本初始化许可; | // 对初始交易签名,生成当前参与者的账本初始化许可; | ||||
SignatureDigest permissionSign = SignatureUtils.sign(initTxContent, privKey); | SignatureDigest permissionSign = SignatureUtils.sign(initTxContent, privKey); | ||||
localPermission = new LedgerInitPermissionData(currentId, permissionSign); | |||||
localPermission = new LedgerInitProposalData(currentId, permissionSign); | |||||
this.currentId = currentId; | this.currentId = currentId; | ||||
return localPermission; | return localPermission; | ||||
@@ -300,7 +300,7 @@ public class MockerLedgerInitializer implements LedgerInitProcess, LedgerInitCon | |||||
} | } | ||||
@Override | @Override | ||||
public LedgerInitPermission requestPermission(int requesterId, SignatureDigest signature) { | |||||
public LedgerInitProposal requestPermission(int requesterId, SignatureDigest signature) { | |||||
return localPermission; | return localPermission; | ||||
} | } | ||||
@@ -4,7 +4,7 @@ import com.jd.blockchain.crypto.HashDigest; | |||||
import com.jd.blockchain.crypto.PrivKey; | import com.jd.blockchain.crypto.PrivKey; | ||||
import com.jd.blockchain.ledger.TransactionContent; | import com.jd.blockchain.ledger.TransactionContent; | ||||
import com.jd.blockchain.ledger.core.LedgerInitDecision; | import com.jd.blockchain.ledger.core.LedgerInitDecision; | ||||
import com.jd.blockchain.ledger.core.LedgerInitPermission; | |||||
import com.jd.blockchain.ledger.core.LedgerInitProposal; | |||||
import com.jd.blockchain.ledger.core.LedgerRepository; | import com.jd.blockchain.ledger.core.LedgerRepository; | ||||
import com.jd.blockchain.ledger.core.impl.LedgerManager; | import com.jd.blockchain.ledger.core.impl.LedgerManager; | ||||
import com.jd.blockchain.mocker.config.LedgerInitWebConfiguration; | import com.jd.blockchain.mocker.config.LedgerInitWebConfiguration; | ||||
@@ -48,7 +48,7 @@ public class NodeWebContext { | |||||
return controller.getInitTxContent(); | return controller.getInitTxContent(); | ||||
} | } | ||||
public LedgerInitPermission getLocalPermission() { | |||||
public LedgerInitProposal getLocalPermission() { | |||||
return controller.getLocalPermission(); | return controller.getLocalPermission(); | ||||
} | } | ||||