diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DConstructor.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DConstructor.java deleted file mode 100644 index 620f6e22..00000000 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DConstructor.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.jd.blockchain.binaryproto; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Created by zhangshuang3 on 2018/7/19. - */ -@Target({ ElementType.METHOD, ElementType.CONSTRUCTOR }) -@Retention(RetentionPolicy.RUNTIME) -public @interface DConstructor { - - /** - * 名称; - *
- * 默认为属性的名称; - * - * @return - */ - String name() default ""; - -} - diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/FieldSetter.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/FieldSetter.java deleted file mode 100644 index 1cea23ad..00000000 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/FieldSetter.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.jd.blockchain.binaryproto; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Created by zhangshuang3 on 2018/7/19. - */ -@Target({ ElementType.PARAMETER, ElementType.FIELD }) -@Retention(RetentionPolicy.RUNTIME) -public @interface FieldSetter { - - /** - * 名称; - *
- * 默认为属性的名称;
- *
- * @return
- */
- String name() default "";
- String type() default "";
-
-}
diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/AccountSet.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/AccountSet.java
index cec6843a..42904f14 100644
--- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/AccountSet.java
+++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/AccountSet.java
@@ -4,15 +4,12 @@ import java.util.HashMap;
import java.util.Map;
import com.jd.blockchain.binaryproto.BinaryEncodingUtils;
-import com.jd.blockchain.binaryproto.DConstructor;
import com.jd.blockchain.binaryproto.DataContractRegistry;
-import com.jd.blockchain.binaryproto.FieldSetter;
import com.jd.blockchain.crypto.AddressEncoding;
import com.jd.blockchain.crypto.HashDigest;
import com.jd.blockchain.crypto.PubKey;
import com.jd.blockchain.ledger.AccountHeader;
import com.jd.blockchain.ledger.CryptoSetting;
-import com.jd.blockchain.ledger.LedgerTransaction;
import com.jd.blockchain.storage.service.ExPolicyKVStorage;
import com.jd.blockchain.storage.service.VersioningKVStorage;
import com.jd.blockchain.utils.Bytes;
@@ -90,17 +87,19 @@ public class AccountSet implements Transactional, MerkleProvable {
return accounts;
}
-// private VersioningAccount deserialize(byte[] txBytes) {
-//// return BinaryEncodingUtils.decode(txBytes, null, Account.class);
-// AccountHeaderData accInfo = BinaryEncodingUtils.decode(txBytes);
-//// return new BaseAccount(accInfo.getAddress(), accInfo.getPubKey(), null, cryptoSetting,
-//// baseExStorage, baseVerStorage, true, accessPolicy);
-// return new VersioningAccount(accInfo.getAddress(), accInfo.getPubKey(), accInfo.getRootHash(), cryptoSetting,
-// keyPrefix, baseExStorage, baseVerStorage, true, accessPolicy, accInfo.);
-// }
+ // private VersioningAccount deserialize(byte[] txBytes) {
+ //// return BinaryEncodingUtils.decode(txBytes, null, Account.class);
+ // AccountHeaderData accInfo = BinaryEncodingUtils.decode(txBytes);
+ //// return new BaseAccount(accInfo.getAddress(), accInfo.getPubKey(), null,
+ // cryptoSetting,
+ //// baseExStorage, baseVerStorage, true, accessPolicy);
+ // return new VersioningAccount(accInfo.getAddress(), accInfo.getPubKey(),
+ // accInfo.getRootHash(), cryptoSetting,
+ // keyPrefix, baseExStorage, baseVerStorage, true, accessPolicy, accInfo.);
+ // }
private AccountHeader deserialize(byte[] txBytes) {
- return BinaryEncodingUtils.decode(txBytes);
+ return BinaryEncodingUtils.decode(txBytes);
}
/**
@@ -267,7 +266,8 @@ public class AccountSet implements Transactional, MerkleProvable {
// accExStorage, accVerStorage);
String prefix = keyPrefix + address;
- VersioningAccount acc = createInstance(address, pubKey, cryptoSetting, prefix, baseExStorage, baseVerStorage, -1);
+ VersioningAccount acc = createInstance(address, pubKey, cryptoSetting, prefix, baseExStorage, baseVerStorage,
+ -1);
latestAccountsCache.put(address, acc);
updated = true;
@@ -281,9 +281,10 @@ public class AccountSet implements Transactional, MerkleProvable {
}
}
- private VersioningAccount createInstance(Bytes address, PubKey pubKey, CryptoSetting cryptoSetting, String keyPrefix,
- ExPolicyKVStorage exStorage, VersioningKVStorage verStorage, long version) {
- return new VersioningAccount(address, pubKey, cryptoSetting, keyPrefix, exStorage, verStorage, accessPolicy, version);
+ private VersioningAccount createInstance(Bytes address, PubKey pubKey, CryptoSetting cryptoSetting,
+ String keyPrefix, ExPolicyKVStorage exStorage, VersioningKVStorage verStorage, long version) {
+ return new VersioningAccount(address, pubKey, cryptoSetting, keyPrefix, exStorage, verStorage, accessPolicy,
+ version);
}
private VersioningAccount deserialize(byte[] bytes, CryptoSetting cryptoSetting, String keyPrefix,
@@ -351,10 +352,7 @@ public class AccountSet implements Transactional, MerkleProvable {
private PubKey pubKey;
private HashDigest rootHash;
- @DConstructor(name = "AccountHeaderData")
- public AccountHeaderData(@FieldSetter(name = "getAddress", type = "String") Bytes address,
- @FieldSetter(name = "getPubKey", type = "PubKey") PubKey pubKey,
- @FieldSetter(name = "getRootHash", type = "HashDigest") HashDigest rootHash) {
+ public AccountHeaderData(Bytes address, PubKey pubKey, HashDigest rootHash) {
this.address = address;
this.pubKey = pubKey;
this.rootHash = rootHash;
diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerBlockData.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerBlockData.java
index 08bf9d19..24b20401 100644
--- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerBlockData.java
+++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerBlockData.java
@@ -1,8 +1,6 @@
package com.jd.blockchain.ledger.core.impl;
-import com.jd.blockchain.binaryproto.DConstructor;
import com.jd.blockchain.binaryproto.DataContractRegistry;
-import com.jd.blockchain.binaryproto.FieldSetter;
import com.jd.blockchain.crypto.HashDigest;
import com.jd.blockchain.ledger.LedgerBlock;
@@ -83,10 +81,7 @@ public class LedgerBlockData implements LedgerBlock {
this.transactionSetHash = transactionSetHash;
}
- @DConstructor(name = "LedgerBlockData")
- public LedgerBlockData(@FieldSetter(name = "getHeight", type = "long") long height,
- @FieldSetter(name = "getLedgerHash", type = "HashDigest") HashDigest ledgerHash,
- @FieldSetter(name = "getPreviousHash", type = "HashDigest") HashDigest previousHash) {
+ public LedgerBlockData(long height, HashDigest ledgerHash, HashDigest previousHash) {
this.height = height;
this.ledgerHash = ledgerHash;
this.previousHash = previousHash;
diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainIdentityData.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainIdentityData.java
index 4dba6370..19e3522a 100644
--- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainIdentityData.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainIdentityData.java
@@ -11,8 +11,6 @@ import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
-import com.jd.blockchain.binaryproto.DConstructor;
-import com.jd.blockchain.binaryproto.FieldSetter;
import com.jd.blockchain.crypto.AddressEncoding;
import com.jd.blockchain.crypto.CryptoAlgorithm;
import com.jd.blockchain.crypto.PubKey;
@@ -49,8 +47,7 @@ public class BlockchainIdentityData implements BytesWriter, BytesReader, Externa
this.address = AddressEncoding.generateAddress(pubKey);
}
- @DConstructor(name = "BlockchainIdentityData")
- public BlockchainIdentityData(@FieldSetter(name = "getAddress", type = "String") Bytes address, @FieldSetter(name = "getPubKey", type = "PubKey") PubKey pubKey) {
+ public BlockchainIdentityData(Bytes address, PubKey pubKey) {
if (!verifyAddress(address, pubKey)) {
throw new IllegalArgumentException("Blockchain address is mismatch with the pub-key!");
}
@@ -78,7 +75,9 @@ public class BlockchainIdentityData implements BytesWriter, BytesReader, Externa
BytesEncoding.writeInShort(pubKey.toBytes(), out);
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see com.jd.blockchain.ledger.BlockchainIdentity#getAddress()
*/
@Override
@@ -86,7 +85,9 @@ public class BlockchainIdentityData implements BytesWriter, BytesReader, Externa
return address;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see com.jd.blockchain.ledger.BlockchainIdentity#getPubKey()
*/
@Override
diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOpTemplate.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOpTemplate.java
index 865d37d2..704d0cde 100644
--- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOpTemplate.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOpTemplate.java
@@ -1,8 +1,6 @@
package com.jd.blockchain.ledger.data;
-import com.jd.blockchain.binaryproto.DConstructor;
import com.jd.blockchain.binaryproto.DataContractRegistry;
-import com.jd.blockchain.binaryproto.FieldSetter;
import com.jd.blockchain.ledger.BlockchainIdentity;
import com.jd.blockchain.ledger.ContractCodeDeployOperation;
import com.jd.blockchain.ledger.DigitalSignature;
@@ -11,18 +9,17 @@ public class ContractCodeDeployOpTemplate implements ContractCodeDeployOperation
static {
DataContractRegistry.register(ContractCodeDeployOperation.class);
}
-
+
private BlockchainIdentity contractID;
-
+
private byte[] chainCode;
public ContractCodeDeployOpTemplate() {
}
- @DConstructor(name="ContractCodeDeployOpTemplate")
- public ContractCodeDeployOpTemplate(@FieldSetter(name="getContractID", type="BlockchainIdentity") BlockchainIdentity contractID, @FieldSetter(name="getChainCode", type="byte[]") byte[] chainCode) {
+ public ContractCodeDeployOpTemplate(BlockchainIdentity contractID, byte[] chainCode) {
this.contractID = contractID;
- this.chainCode= chainCode;
+ this.chainCode = chainCode;
}
@Override
@@ -40,6 +37,5 @@ public class ContractCodeDeployOpTemplate implements ContractCodeDeployOperation
// TODO Auto-generated method stub
return null;
}
-
}
diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOpTemplate.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOpTemplate.java
index d7d06d85..23b15d02 100644
--- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOpTemplate.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOpTemplate.java
@@ -1,8 +1,6 @@
package com.jd.blockchain.ledger.data;
-import com.jd.blockchain.binaryproto.DConstructor;
import com.jd.blockchain.binaryproto.DataContractRegistry;
-import com.jd.blockchain.binaryproto.FieldSetter;
import com.jd.blockchain.ledger.ContractEventSendOperation;
import com.jd.blockchain.utils.Bytes;
@@ -18,15 +16,12 @@ public class ContractEventSendOpTemplate implements ContractEventSendOperation {
public ContractEventSendOpTemplate() {
}
- @DConstructor(name="ContractEventSendOpTemplate")
- public ContractEventSendOpTemplate(@FieldSetter(name="getContractAddress", type="Bytes") Bytes contractAddress,
- @FieldSetter(name="getEvent", type="String") String event,
- @FieldSetter(name="getArgs", type="byte[]") byte[] args) {
+ public ContractEventSendOpTemplate(Bytes contractAddress, String event, byte[] args) {
this.contractAddress = contractAddress;
this.event = event;
this.args = args;
}
-
+
@Override
public Bytes getContractAddress() {
return contractAddress;
@@ -42,5 +37,4 @@ public class ContractEventSendOpTemplate implements ContractEventSendOperation {
return args;
}
-
}
diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOpTemplate.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOpTemplate.java
index 3d4c6f30..0fc6d2e3 100644
--- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOpTemplate.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOpTemplate.java
@@ -3,9 +3,7 @@ package com.jd.blockchain.ledger.data;
import java.util.LinkedHashMap;
import java.util.Map;
-import com.jd.blockchain.binaryproto.DConstructor;
import com.jd.blockchain.binaryproto.DataContractRegistry;
-import com.jd.blockchain.binaryproto.FieldSetter;
import com.jd.blockchain.ledger.BytesValue;
import com.jd.blockchain.ledger.DataAccountKVSetOperation;
import com.jd.blockchain.utils.Bytes;
@@ -14,16 +12,15 @@ public class DataAccountKVSetOpTemplate implements DataAccountKVSetOperation {
static {
DataContractRegistry.register(DataAccountKVSetOperation.class);
}
-
+
private Bytes accountAddress;
-
+
private Map
* 注:当前对象只充当值对象,不校验指定哈希值的完整性,调用者应该在外部实施完整性校验;
+ *
* @param hash
*/
public void setHash(HashDigest hash) {
@@ -65,6 +63,7 @@ public class TxContentBlob implements TransactionContent {
public HashDigest getLedgerHash() {
return ledgerHash;
}
+
public void setLedgerHash(HashDigest ledgerHash) {
this.ledgerHash = ledgerHash;
}
@@ -74,10 +73,10 @@ public class TxContentBlob implements TransactionContent {
return operationList.toArray(new Operation[operationList.size()]);
}
- public void setOperations(Object[] operations) {
- //in array's case ,cast will failed!
+ public void setOperations(Object[] operations) {
+ // in array's case ,cast will failed!
for (Object operation : operations) {
- Operation op = (Operation)operation;
+ Operation op = (Operation) operation;
addOperation(op);
}
}
@@ -85,7 +84,7 @@ public class TxContentBlob implements TransactionContent {
public void addOperation(Operation operation) {
operationList.add(operation);
}
-
+
public void addOperations(Collection
- // * 参与者的请求数据仅包含“交易请求模数({@link MagicNumber#TX_REQUEST })”
- // * “交易内容({@link #getTransactionContent()})”
- // * 和“参与者签名列表({@link #getParticipantSignatures()})”三项属性;
- // *
- // * @param out
- // */
- // public void buildParticipantRequest(OutputStream out) {
- // try {
- // // 写入魔数;
- // out.write(MagicNumber.TX_REQUEST);
- //
- // // 写入交易内容;
- // txContent.writeTo(out);
- //
- // // 写入 1 个字节的参与者签名数量;
- // if (participantSignatureMap.size() > MAX_TX_PARTICIPANT_COUNT) {
- // throw new IllegalArgumentException("The number of participant signatures is
- // out of the max count["
- // + MAX_TX_PARTICIPANT_COUNT + "]!");
- // }
- //
- // NumberMask.TINY.writeMask(participantSignatureMap.size(), out);
- // // 写入参与者签名列表;
- // for (DigitalSignature digitalSignatureBlob :
- // participantSignatureMap.values()) {
- // digitalSignatureBlob.writeTo(out);
- // }
- //
- // } catch (IOException e) {
- // throw new RuntimeIOException(e.getMessage(), e);
- // }
- // }
- //
- // @Override
- // public void writeExternal(ObjectOutput out) throws IOException {
- // ByteArrayOutputStream os = new ByteArrayOutputStream();
- // writeTo(os);
- // byte[] bts = os.toByteArray();
- // out.writeInt(bts.length);
- // out.write(bts);
- // }
- //
- // @Override
- // public void readExternal(ObjectInput in) throws IOException,
- // ClassNotFoundException {
- // int len = in.readInt();
- // byte[] bts = new byte[len];
- // in.readFully(bts);
- // this.resolvFrom(new ByteArrayInputStream(bts));
- // }
-
- // @Override
- // public byte[] toBytes() {
- // ByteArrayOutputStream out = new ByteArrayOutputStream();
- // try {
- // writeTo(out);
- // } catch (IOException e) {
- // throw new RuntimeIOException(e.getMessage(), e);
- // }
- // return out.toByteArray();
- // }
-
- // @Override
- // public ByteArray getHashData() {
- // return ByteArray.wrap(getRequestBody());
- // }
-
- // private byte[] getRequestBody() {
- // try {
- // ByteArrayOutputStream out = new ByteArrayOutputStream();
- // buildRequestBody(out);
- //
- // return out.toByteArray();
- // } catch (IOException e) {
- // throw new RuntimeIOException(e.getMessage(), e);
- // }
- // }
+ /**
+ * 交易参与者的个数的最大值;
+ */
+ public static final int MAX_TX_PARTICIPANT_COUNT = 0xFF;
+
+ private HashDigest hash;
+
+ private TransactionContent transactionContent;
+
+ private Map
+ // * 参与者的请求数据仅包含“交易请求模数({@link MagicNumber#TX_REQUEST })”
+ // * “交易内容({@link #getTransactionContent()})”
+ // * 和“参与者签名列表({@link #getParticipantSignatures()})”三项属性;
+ // *
+ // * @param out
+ // */
+ // public void buildParticipantRequest(OutputStream out) {
+ // try {
+ // // 写入魔数;
+ // out.write(MagicNumber.TX_REQUEST);
+ //
+ // // 写入交易内容;
+ // txContent.writeTo(out);
+ //
+ // // 写入 1 个字节的参与者签名数量;
+ // if (participantSignatureMap.size() > MAX_TX_PARTICIPANT_COUNT) {
+ // throw new IllegalArgumentException("The number of participant signatures is
+ // out of the max count["
+ // + MAX_TX_PARTICIPANT_COUNT + "]!");
+ // }
+ //
+ // NumberMask.TINY.writeMask(participantSignatureMap.size(), out);
+ // // 写入参与者签名列表;
+ // for (DigitalSignature digitalSignatureBlob :
+ // participantSignatureMap.values()) {
+ // digitalSignatureBlob.writeTo(out);
+ // }
+ //
+ // } catch (IOException e) {
+ // throw new RuntimeIOException(e.getMessage(), e);
+ // }
+ // }
+ //
+ // @Override
+ // public void writeExternal(ObjectOutput out) throws IOException {
+ // ByteArrayOutputStream os = new ByteArrayOutputStream();
+ // writeTo(os);
+ // byte[] bts = os.toByteArray();
+ // out.writeInt(bts.length);
+ // out.write(bts);
+ // }
+ //
+ // @Override
+ // public void readExternal(ObjectInput in) throws IOException,
+ // ClassNotFoundException {
+ // int len = in.readInt();
+ // byte[] bts = new byte[len];
+ // in.readFully(bts);
+ // this.resolvFrom(new ByteArrayInputStream(bts));
+ // }
+
+ // @Override
+ // public byte[] toBytes() {
+ // ByteArrayOutputStream out = new ByteArrayOutputStream();
+ // try {
+ // writeTo(out);
+ // } catch (IOException e) {
+ // throw new RuntimeIOException(e.getMessage(), e);
+ // }
+ // return out.toByteArray();
+ // }
+
+ // @Override
+ // public ByteArray getHashData() {
+ // return ByteArray.wrap(getRequestBody());
+ // }
+
+ // private byte[] getRequestBody() {
+ // try {
+ // ByteArrayOutputStream out = new ByteArrayOutputStream();
+ // buildRequestBody(out);
+ //
+ // return out.toByteArray();
+ // } catch (IOException e) {
+ // throw new RuntimeIOException(e.getMessage(), e);
+ // }
+ // }
}
diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOpTemplate.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOpTemplate.java
index b95604a3..f1c9940d 100644
--- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOpTemplate.java
+++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOpTemplate.java
@@ -1,8 +1,6 @@
package com.jd.blockchain.ledger.data;
-import com.jd.blockchain.binaryproto.DConstructor;
import com.jd.blockchain.binaryproto.DataContractRegistry;
-import com.jd.blockchain.binaryproto.FieldSetter;
import com.jd.blockchain.ledger.BlockchainIdentity;
import com.jd.blockchain.ledger.UserRegisterOperation;
@@ -11,17 +9,16 @@ public class UserRegisterOpTemplate implements UserRegisterOperation {
static {
DataContractRegistry.register(UserRegisterOperation.class);
}
-
+
private BlockchainIdentity userID;
public UserRegisterOpTemplate() {
}
- @DConstructor(name="UserRegisterOpTemplate")
- public UserRegisterOpTemplate(@FieldSetter(name="getUserId", type="BlockchainIdentity") BlockchainIdentity userID) {
+ public UserRegisterOpTemplate(BlockchainIdentity userID) {
this.userID = userID;
}
-
+
@Override
public BlockchainIdentity getUserID() {
return userID;