diff --git a/LICENSE b/LICENSE index 8e45f433..a333417e 100644 --- a/LICENSE +++ b/LICENSE @@ -192,7 +192,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 +http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/source/base/src/main/java/com/jd/blockchain/consts/TypeCodes.java b/source/base/src/main/java/com/jd/blockchain/consts/DataCodes.java similarity index 93% rename from source/base/src/main/java/com/jd/blockchain/consts/TypeCodes.java rename to source/base/src/main/java/com/jd/blockchain/consts/DataCodes.java index 3289a18f..e4e17a14 100644 --- a/source/base/src/main/java/com/jd/blockchain/consts/TypeCodes.java +++ b/source/base/src/main/java/com/jd/blockchain/consts/DataCodes.java @@ -1,10 +1,12 @@ package com.jd.blockchain.consts; /** + * A const registeration of codes of all data contracts in ledger model; + * * @author huanghaiquan * */ -public interface TypeCodes { +public interface DataCodes { public static final int BYTES_VALUE = 0x80; @@ -59,11 +61,11 @@ public interface TypeCodes { public static final int METADATA_CONSENSUS_PARTICIPANT = 0x621; -// public static final int METADATA_CONSENSUS_NODE = 0x630; + // public static final int METADATA_CONSENSUS_NODE = 0x630; public static final int METADATA_CONSENSUS_SETTING = 0x631; -// public static final int METADATA_PARTICIPANT_INFO = 0x640; + // public static final int METADATA_PARTICIPANT_INFO = 0x640; public static final int METADATA_CRYPTO_SETTING = 0x642; @@ -87,7 +89,7 @@ public interface TypeCodes { public static final int ENUM_TYPE_TRANSACTION_STATE = 0xB22; - public static final int ENUM_TYPE_DATA_TYPE= 0xB23; + public static final int ENUM_TYPE_BYTES_VALUE_TYPE = 0xB23; public static final int DIGITALSIGNATURE = 0xB30; @@ -103,8 +105,6 @@ public interface TypeCodes { public static final int REQUEST_ENDPOINT = 0xD20; - - // ------------------ 共识相关 ---------------- public static final int CONSENSUS = 0x1000; @@ -112,12 +112,11 @@ public interface TypeCodes { public static final int CONSENSUS_ACTION_REQUEST = CONSENSUS | 0x01; public static final int CONSENSUS_ACTION_RESPONSE = CONSENSUS | 0x02; - - + public static final int CONSENSUS_SETTINGS = CONSENSUS | 0x03; public static final int CONSENSUS_NODE_SETTINGS = CONSENSUS | 0x04; - + public static final int CONSENSUS_CLI_INCOMING_SETTINGS = CONSENSUS | 0x05; // ------------------ 共识相关(BFTSMART) ---------------- @@ -126,7 +125,7 @@ public interface TypeCodes { public static final int CONSENSUS_BFTSMART_SETTINGS = CONSENSUS_BFTSMART | 0x01; public static final int CONSENSUS_BFTSMART_NODE_SETTINGS = CONSENSUS_BFTSMART | 0x02; - + public static final int CONSENSUS_BFTSMART_CLI_INCOMING_SETTINGS = CONSENSUS_BFTSMART | 0x03; public static final int CONSENSUS_BFTSMART_BLOCK_SETTINGS = CONSENSUS_BFTSMART | 0x04; @@ -144,5 +143,4 @@ public interface TypeCodes { public static final int CONSENSUS_MSGQUEUE_BLOCK_SETTINGS = CONSENSUS_MSGQUEUE | 0x05; - } diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/BinaryEncodingUtils.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/BinaryProtocol.java similarity index 98% rename from source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/BinaryEncodingUtils.java rename to source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/BinaryProtocol.java index 7abe013c..e0b17277 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/BinaryEncodingUtils.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/BinaryProtocol.java @@ -10,7 +10,7 @@ import com.jd.blockchain.utils.io.BytesOutputBuffer; import com.jd.blockchain.utils.io.BytesSlice; import com.jd.blockchain.utils.io.BytesUtils; -public class BinaryEncodingUtils { +public class BinaryProtocol { public static void encode(Object data, Class contractType, OutputStream out) { diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataContractEncoder.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataContractEncoder.java index 1cb0fc75..179f7d76 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataContractEncoder.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataContractEncoder.java @@ -2,7 +2,6 @@ package com.jd.blockchain.binaryproto; import com.jd.blockchain.utils.io.BytesInputStream; import com.jd.blockchain.utils.io.BytesOutputBuffer; -import com.jd.blockchain.utils.io.BytesSlice; /** * 二进制编码器; diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataContractRegistry.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataContractRegistry.java index e6848575..08dcc76f 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataContractRegistry.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataContractRegistry.java @@ -13,6 +13,9 @@ public class DataContractRegistry { private DataContractRegistry() { } + + //TODO: Refactor contract type registering in service provider mode; + public static DataContractEncoder register(Class contractType) { DataContractEncoder encoder = DataContractContext.resolve(contractType); return encoder; diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataField.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataField.java index fbd02711..1829eed6 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataField.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataField.java @@ -5,8 +5,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import com.jd.blockchain.utils.ValueType; - /** * 标记一个接口的字段作为数据契约的字段; *

@@ -39,11 +37,11 @@ public @interface DataField { * 基本数据类型; *

* - * 如果字段的类型属于 {@link ValueType} 枚举中的基本数据类型,则需要显式指定一种具体的类型; + * 如果字段的类型属于 {@link PrimitiveType} 枚举中的基本数据类型,则需要显式指定一种具体的类型; * * @return */ - ValueType primitiveType() default ValueType.NIL; + PrimitiveType primitiveType() default PrimitiveType.NIL; /** * 是否是枚举类型; @@ -80,8 +78,8 @@ public @interface DataField { /** * 最大长度,单位为“byte” *

- * 仅对于文本、字节数组、大整数等相关的数据类型有效(即:{@link ValueType} 枚举中编码大于等于 0x20 - * {@link ValueType#TEXT}的数据类型); + * 仅对于文本、字节数组、大整数等相关的数据类型有效(即:{@link PrimitiveType} 枚举中编码大于等于 0x20 + * {@link PrimitiveType#TEXT}的数据类型); * * @return */ diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataType.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataType.java new file mode 100644 index 00000000..9df9f7bd --- /dev/null +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/DataType.java @@ -0,0 +1,24 @@ +package com.jd.blockchain.binaryproto; + +public interface DataType { + + /** + * 空值; + */ + public static final byte NIL = (byte) 0x00; + + /** + * 布尔; + */ + public static final byte BOOLEAN = (byte) 0x01; + + /** + * 数值; + */ + public static final byte NUMERIC = (byte) 0x10; + + public static final byte TEXT = (byte) 0x20; + + public static final byte BINARY = (byte) 0x40; + +} diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/EnumField.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/EnumField.java index 43074e98..f7c588f1 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/EnumField.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/EnumField.java @@ -5,8 +5,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import com.jd.blockchain.utils.ValueType; - @Target({ ElementType.FIELD, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) public @interface EnumField { @@ -15,11 +13,11 @@ public @interface EnumField { * 枚举值的类型; * *

- * 注:只支持 {@link ValueType#INT8} ~ {@link ValueType#INT32} 这几种类型; + * 注:只支持 {@link PrimitiveType#INT8} ~ {@link PrimitiveType#INT32} 这几种类型; * * * @return */ - ValueType type(); + PrimitiveType type(); } diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/EnumSpecification.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/EnumSpecification.java index c86f0bf0..6c4e73ce 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/EnumSpecification.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/EnumSpecification.java @@ -1,9 +1,5 @@ package com.jd.blockchain.binaryproto; -import java.util.Set; - -import com.jd.blockchain.utils.ValueType; - public interface EnumSpecification { int getCode(); @@ -14,7 +10,7 @@ public interface EnumSpecification { long getVersion(); - ValueType getValueType(); + PrimitiveType getValueType(); int[] getItemValues(); diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/FieldSpec.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/FieldSpec.java index 1c3621d6..315e6580 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/FieldSpec.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/FieldSpec.java @@ -1,7 +1,5 @@ package com.jd.blockchain.binaryproto; -import com.jd.blockchain.utils.ValueType; - /** * 表示数据契约字段的格式标准; * @@ -35,11 +33,11 @@ public interface FieldSpec { * 字段的值的类型; *

* 如果不是字段的值不是基本类型,则返回 null(即: {@link DataField#primitiveType()} 设置为 - * {@link ValueType#NIL}); + * {@link PrimitiveType#NIL}); * * @return */ - ValueType getPrimitiveType(); + PrimitiveType getPrimitiveType(); /** * 字段的值引用的枚举契约; diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/PrimitiveType.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/PrimitiveType.java new file mode 100644 index 00000000..cf791421 --- /dev/null +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/PrimitiveType.java @@ -0,0 +1,92 @@ +package com.jd.blockchain.binaryproto; + +/** + * 键值操作的数据类型; + * + * @author huanghaiquan + * + */ +public enum PrimitiveType { + + /** + * 空; + */ + NIL(DataType.NIL), + + /** + * 布尔型; + */ + BOOLEAN(DataType.BOOLEAN), + + /** + * 数值型: + */ + INT8((byte) (DataType.NUMERIC | 0x01)), + + INT16((byte) (DataType.NUMERIC | 0x02)), + + INT32((byte) (DataType.NUMERIC | 0x03)), + + INT64((byte) (DataType.NUMERIC | 0x04)), + + /** + * 日期时间; + */ + DATETIME((byte) (DataType.NUMERIC | 0x08)), + + /** + * 文本数据; + */ + TEXT(DataType.TEXT), + + /** + * 文本数据; + */ + JSON((byte) (DataType.TEXT | 0x01)), + + /** + * 文本数据; + */ + XML((byte) (DataType.TEXT | 0x02)), + + /** + * 二进制数据; + */ + BYTES(DataType.BINARY), + + /** + * 大整数; + */ + BIG_INT((byte) (DataType.BINARY | 0x01)), + + /** + * 图片; + */ + IMG((byte) (DataType.BINARY | 0x02)), + + /** + * 视频; + */ + VIDEO((byte) (DataType.BINARY | 0x03)), + + /** + * 位置坐标; + */ + LOCATION((byte) (DataType.BINARY | 0x04)); + + public final byte CODE; + + private PrimitiveType(byte code) { + this.CODE = code; + } + + public static PrimitiveType valueOf(byte code) { + for (PrimitiveType dataType : PrimitiveType.values()) { + if (dataType.CODE == code) { + return dataType; + } + } + throw new IllegalArgumentException("Code[" + code + "] not suppported by PrimitiveType!"); + } + +} diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/AbstractDynamicValueConverter.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/AbstractDynamicValueConverter.java index b0536f76..53c8161e 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/AbstractDynamicValueConverter.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/AbstractDynamicValueConverter.java @@ -2,7 +2,6 @@ package com.jd.blockchain.binaryproto.impl; import com.jd.blockchain.utils.io.BytesInputStream; import com.jd.blockchain.utils.io.BytesOutputBuffer; -import com.jd.blockchain.utils.io.BytesSlice; import com.jd.blockchain.utils.io.NumberMask; public abstract class AbstractDynamicValueConverter implements DynamicValueConverter { diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/DataContractContext.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/DataContractContext.java index f5efaa0e..ae923b4e 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/DataContractContext.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/DataContractContext.java @@ -5,7 +5,6 @@ import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -18,12 +17,12 @@ import com.jd.blockchain.binaryproto.DataContractEncoder; import com.jd.blockchain.binaryproto.DataContractException; import com.jd.blockchain.binaryproto.DataField; import com.jd.blockchain.binaryproto.DataSpecification; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.binaryproto.EnumContract; import com.jd.blockchain.binaryproto.EnumField; import com.jd.blockchain.binaryproto.EnumSpecification; import com.jd.blockchain.binaryproto.FieldSpec; import com.jd.blockchain.binaryproto.impl.EnumSpecificationInfo.EnumConstant; -import com.jd.blockchain.utils.ValueType; import com.jd.blockchain.utils.io.BytesSerializable; import com.jd.blockchain.utils.io.BytesUtils; import com.jd.blockchain.utils.security.SHA256Hash; @@ -66,23 +65,23 @@ public class DataContractContext { private static Map, EnumSpecification> enumContractSpecMap = new ConcurrentHashMap<>(); - private static Map, ValueConverter>> primitiveTypeConverters = new HashMap<>(); + private static Map, ValueConverter>> primitiveTypeConverters = new HashMap<>(); static { - addConverterMapping(ValueType.BOOLEAN, boolean.class, new BoolConverter()); - addConverterMapping(ValueType.BOOLEAN, Boolean.class, new BoolWrapperConverter()); - addConverterMapping(ValueType.INT8, byte.class, new Int8ByteConverter()); - addConverterMapping(ValueType.INT8, Byte.class, new Int8ByteWrapperConverter()); - addConverterMapping(ValueType.INT16, short.class, new Int16ShortConverter()); - addConverterMapping(ValueType.INT16, Short.class, new Int16ShortWrapperConverter()); - addConverterMapping(ValueType.INT16, char.class, new Int16CharConverter()); - addConverterMapping(ValueType.INT16, Character.class, new Int16CharWrapperConverter()); - addConverterMapping(ValueType.INT32, int.class, new Int32IntConverter()); - addConverterMapping(ValueType.INT32, Integer.class, new Int32IntWrapperConverter()); - addConverterMapping(ValueType.INT64, long.class, new Int64LongConverter()); - addConverterMapping(ValueType.INT64, Long.class, new Int64LongWrapperConverter()); - addConverterMapping(ValueType.TEXT, String.class, new StringValueConverter()); - addConverterMapping(ValueType.BYTES, byte[].class, new BytesValueConverter()); + addConverterMapping(PrimitiveType.BOOLEAN, boolean.class, new BoolConverter()); + addConverterMapping(PrimitiveType.BOOLEAN, Boolean.class, new BoolWrapperConverter()); + addConverterMapping(PrimitiveType.INT8, byte.class, new Int8ByteConverter()); + addConverterMapping(PrimitiveType.INT8, Byte.class, new Int8ByteWrapperConverter()); + addConverterMapping(PrimitiveType.INT16, short.class, new Int16ShortConverter()); + addConverterMapping(PrimitiveType.INT16, Short.class, new Int16ShortWrapperConverter()); + addConverterMapping(PrimitiveType.INT16, char.class, new Int16CharConverter()); + addConverterMapping(PrimitiveType.INT16, Character.class, new Int16CharWrapperConverter()); + addConverterMapping(PrimitiveType.INT32, int.class, new Int32IntConverter()); + addConverterMapping(PrimitiveType.INT32, Integer.class, new Int32IntWrapperConverter()); + addConverterMapping(PrimitiveType.INT64, long.class, new Int64LongConverter()); + addConverterMapping(PrimitiveType.INT64, Long.class, new Int64LongWrapperConverter()); + addConverterMapping(PrimitiveType.TEXT, String.class, new StringValueConverter()); + addConverterMapping(PrimitiveType.BYTES, byte[].class, new BytesValueConverter()); ENCODER_LOOKUP = new DataContractEncoderLookup() { @Override @@ -102,7 +101,7 @@ public class DataContractContext { }; } - private static void addConverterMapping(ValueType protocalType, Class javaType, ValueConverter converter) { + private static void addConverterMapping(PrimitiveType protocalType, Class javaType, ValueConverter converter) { Map, ValueConverter> converterMap = primitiveTypeConverters.get(protocalType); if (converterMap == null) { converterMap = new HashMap<>(); @@ -111,14 +110,14 @@ public class DataContractContext { converterMap.put(javaType, converter); } - private static ValueConverter getPrimitiveTypeConverter(ValueType protocalType, Class javaType) { + private static ValueConverter getPrimitiveTypeConverter(PrimitiveType protocalType, Class javaType) { Map, ValueConverter> converterMap = primitiveTypeConverters.get(protocalType); if (converterMap != null) { ValueConverter converter = converterMap.get(javaType); if (converter != null) { return converter; } - if (ValueType.BYTES == protocalType && BytesSerializable.class.isAssignableFrom(javaType)) { + if (PrimitiveType.BYTES == protocalType && BytesSerializable.class.isAssignableFrom(javaType)) { converter = new BytesSerializableValueConverter(javaType); converterMap.put(javaType, converter); return converter; @@ -367,7 +366,7 @@ public class DataContractContext { EnumSpecificationInfo enumSpec = (EnumSpecificationInfo) fieldInfo.fieldSpec.getRefEnum(); int[] values = enumSpec.getItemValues(); Object[] constants = enumSpec.getConstants(); - ValueType codeType = enumSpec.getValueType(); + PrimitiveType codeType = enumSpec.getValueType(); ValueConverter baseConverter = getPrimitiveTypeConverter(codeType, enumSpec.getDataType()); @@ -411,8 +410,8 @@ public class DataContractContext { private static BinarySliceSpec buildSlice(FieldSpecInfo fieldSpec) { boolean fixed = false; int len = -1; - ValueType fixedValueType = null; - if (fieldSpec.getPrimitiveType() != null && fieldSpec.getPrimitiveType() != ValueType.NIL) { + PrimitiveType fixedValueType = null; + if (fieldSpec.getPrimitiveType() != null && fieldSpec.getPrimitiveType() != PrimitiveType.NIL) { fixedValueType = fieldSpec.getPrimitiveType(); } else if (fieldSpec.getRefEnum() != null) { fixedValueType = fieldSpec.getRefEnum().getValueType(); @@ -547,7 +546,7 @@ public class DataContractContext { } int maxSize = annoField.maxSize(); - ValueType primitiveType = annoField.primitiveType(); + PrimitiveType primitiveType = annoField.primitiveType(); if (primitiveType != null) { primitiveType = verifyPrimitiveType(primitiveType, dataType, accessor); } @@ -651,7 +650,7 @@ public class DataContractContext { * @param dataType * @return */ - private static ValueType verifyPrimitiveType(ValueType primitiveType, Class dataType, Method accessor) { + private static PrimitiveType verifyPrimitiveType(PrimitiveType primitiveType, Class dataType, Method accessor) { switch (primitiveType) { case NIL: return null; @@ -763,6 +762,7 @@ public class DataContractContext { public Method reader; + @SuppressWarnings("unused") public DataField annoField; public FieldDeclaredInfo(Method accessor, DataField annoField, FieldSpecInfo fieldSpec) { diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/DataContractSpecification.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/DataContractSpecification.java index 8a2d05b1..d13e3242 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/DataContractSpecification.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/DataContractSpecification.java @@ -1,6 +1,5 @@ package com.jd.blockchain.binaryproto.impl; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/EnumSpecificationInfo.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/EnumSpecificationInfo.java index baf753c5..3a67a022 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/EnumSpecificationInfo.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/EnumSpecificationInfo.java @@ -3,15 +3,15 @@ package com.jd.blockchain.binaryproto.impl; import java.util.LinkedHashSet; import java.util.Set; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.binaryproto.EnumSpecification; -import com.jd.blockchain.utils.ValueType; /** * Created by zhangshuang3 on 2018/6/21. */ public class EnumSpecificationInfo implements EnumSpecification { - private ValueType valueType; + private PrimitiveType valueType; private Class dataType; @@ -24,7 +24,7 @@ public class EnumSpecificationInfo implements EnumSpecification { // private Map itemCodeMapping = new HashMap<>(); // private Map codeItemMapping = new HashMap<>(); - public EnumSpecificationInfo(ValueType valueType, int code, long version, String name, String description, Class dataType) { + public EnumSpecificationInfo(PrimitiveType valueType, int code, long version, String name, String description, Class dataType) { this.valueType = valueType; this.code = code; this.version = version; @@ -54,7 +54,7 @@ public class EnumSpecificationInfo implements EnumSpecification { } @Override - public ValueType getValueType() { + public PrimitiveType getValueType() { return this.valueType; } diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/EnumValueConverter.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/EnumValueConverter.java index f0c57fb8..34e3cdf2 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/EnumValueConverter.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/EnumValueConverter.java @@ -1,14 +1,14 @@ package com.jd.blockchain.binaryproto.impl; import com.jd.blockchain.binaryproto.DataContractException; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.utils.io.BytesSlice; public class EnumValueConverter implements FixedValueConverter { private Class enumType; - private ValueType codeType; + private PrimitiveType codeType; private int[] values; @@ -16,7 +16,7 @@ public class EnumValueConverter implements FixedValueConverter { private FixedValueConverter valueConverter; - public EnumValueConverter(Class enumType, ValueType codeType, int[] values, Object[] constants, FixedValueConverter valueConverter) { + public EnumValueConverter(Class enumType, PrimitiveType codeType, int[] values, Object[] constants, FixedValueConverter valueConverter) { this.enumType = enumType; this.values = values; this.constants = constants; diff --git a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/FieldSpecInfo.java b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/FieldSpecInfo.java index 6e8425bc..5a9c7c6d 100644 --- a/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/FieldSpecInfo.java +++ b/source/binary-proto/src/main/java/com/jd/blockchain/binaryproto/impl/FieldSpecInfo.java @@ -1,9 +1,9 @@ package com.jd.blockchain.binaryproto.impl; import com.jd.blockchain.binaryproto.DataSpecification; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.binaryproto.EnumSpecification; import com.jd.blockchain.binaryproto.FieldSpec; -import com.jd.blockchain.utils.ValueType; public class FieldSpecInfo implements FieldSpec { @@ -15,7 +15,7 @@ public class FieldSpecInfo implements FieldSpec { private boolean repeatable; - private ValueType primitiveType; + private PrimitiveType primitiveType; private EnumSpecification enumSpec; @@ -27,7 +27,7 @@ public class FieldSpecInfo implements FieldSpec { private boolean isGenericContract = false; - public FieldSpecInfo(int order, String name, String decription, ValueType primitiveType, boolean repeatable, + public FieldSpecInfo(int order, String name, String decription, PrimitiveType primitiveType, boolean repeatable, int maxSize, Class dataType) { if (primitiveType == null) { throw new IllegalArgumentException("primitiveType is null!"); @@ -71,7 +71,7 @@ public class FieldSpecInfo implements FieldSpec { } @Override - public ValueType getPrimitiveType() { + public PrimitiveType getPrimitiveType() { return primitiveType; } diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/BinaryEncodingTest.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/BinaryEncodingTest.java index fba70646..b1395038 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/BinaryEncodingTest.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/BinaryEncodingTest.java @@ -7,7 +7,7 @@ import static org.junit.Assert.assertTrue; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractException; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.utils.Bytes; @@ -37,7 +37,7 @@ public class BinaryEncodingTest { pd.setConfig(Bytes.fromString("Configuration of something.")); pd.setNetworkAddress(networkAddress); - byte[] bytes = BinaryEncodingUtils.encode(pd, PrimitiveDatas.class); + byte[] bytes = BinaryProtocol.encode(pd, PrimitiveDatas.class); int offset = 0; int code = BytesUtils.toInt(bytes, offset); offset += 12; @@ -109,7 +109,7 @@ public class BinaryEncodingTest { public void testEncoding_Null() { DataContractRegistry.register(PrimitiveDatas.class); - byte[] bytes = BinaryEncodingUtils.encode(null, PrimitiveDatas.class); + byte[] bytes = BinaryProtocol.encode(null, PrimitiveDatas.class); int offset = 0; int code = BytesUtils.toInt(bytes, offset); offset += 12;// 暂不校验 version; @@ -138,8 +138,8 @@ public class BinaryEncodingTest { pd.setConfig(Bytes.fromString("Configuration of something.")); pd.setNetworkAddress(networkAddress); - byte[] bytes = BinaryEncodingUtils.encode(pd, PrimitiveDatas.class); - PrimitiveDatas decodeData = BinaryEncodingUtils.decode(bytes); + byte[] bytes = BinaryProtocol.encode(pd, PrimitiveDatas.class); + PrimitiveDatas decodeData = BinaryProtocol.decode(bytes); assertEquals(pd.getId(), decodeData.getId()); assertEquals(pd.isEnable(), decodeData.isEnable()); assertEquals(pd.isBoy(), decodeData.isBoy()); @@ -163,7 +163,7 @@ public class BinaryEncodingTest { EnumDatasImpl enumDatas = new EnumDatasImpl(); enumDatas.setLevel(EnumLevel.V1); - byte[] bytes = BinaryEncodingUtils.encode(enumDatas, EnumDatas.class); + byte[] bytes = BinaryProtocol.encode(enumDatas, EnumDatas.class); int offset = 0; int code = BytesUtils.toInt(bytes, offset); offset += 12; @@ -186,8 +186,8 @@ public class BinaryEncodingTest { EnumDatasImpl enumDatas = new EnumDatasImpl(); enumDatas.setLevel(EnumLevel.V1); - byte[] bytes = BinaryEncodingUtils.encode(enumDatas, EnumDatas.class); - EnumDatas decodeData = BinaryEncodingUtils.decode(bytes); + byte[] bytes = BinaryProtocol.encode(enumDatas, EnumDatas.class); + EnumDatas decodeData = BinaryProtocol.decode(bytes); assertEquals(enumDatas.getLevel(), decodeData.getLevel()); } @@ -215,7 +215,7 @@ public class BinaryEncodingTest { refContractDatas.setPrimitiveDatas(primitiveDatas); - byte[] bytes = BinaryEncodingUtils.encode(refContractDatas, RefContractDatas.class); + byte[] bytes = BinaryProtocol.encode(refContractDatas, RefContractDatas.class); int offset = 0; int code = BytesUtils.toInt(bytes, offset); offset += 12; @@ -248,7 +248,7 @@ public class BinaryEncodingTest { RefContractDatasImpl refContractDatas = new RefContractDatasImpl(); - byte[] bytes = BinaryEncodingUtils.encode(refContractDatas, RefContractDatas.class); + byte[] bytes = BinaryProtocol.encode(refContractDatas, RefContractDatas.class); int offset = 0; int code = BytesUtils.toInt(bytes, offset); offset += 12; @@ -295,8 +295,8 @@ public class BinaryEncodingTest { refContractDatas.setPrimitiveDatas(primitiveDatas); - byte[] bytes = BinaryEncodingUtils.encode(refContractDatas, RefContractDatas.class); - RefContractDatas decodeData = BinaryEncodingUtils.decode(bytes); + byte[] bytes = BinaryProtocol.encode(refContractDatas, RefContractDatas.class); + RefContractDatas decodeData = BinaryProtocol.decode(bytes); assertEquals(refContractDatas.getPrimitive().getId(), decodeData.getPrimitive().getId()); assertEquals(refContractDatas.getPrimitive().isEnable(), decodeData.getPrimitive().isEnable()); @@ -329,7 +329,7 @@ public class BinaryEncodingTest { operations[0] = subOperation; genericRefContractDatas.setOperations(operations); - byte[] bytes = BinaryEncodingUtils.encode(genericRefContractDatas, GenericRefContractDatas.class); + byte[] bytes = BinaryProtocol.encode(genericRefContractDatas, GenericRefContractDatas.class); int offset = 0; int code = BytesUtils.toInt(bytes, offset); offset += 12; @@ -391,9 +391,9 @@ public class BinaryEncodingTest { operations[0] = subOperation; genericRefContractDatas.setOperations(operations); - byte[] bytes = BinaryEncodingUtils.encode(genericRefContractDatas, GenericRefContractDatas.class); + byte[] bytes = BinaryProtocol.encode(genericRefContractDatas, GenericRefContractDatas.class); - GenericRefContractDatas decodeData = BinaryEncodingUtils.decode(bytes); + GenericRefContractDatas decodeData = BinaryProtocol.decode(bytes); assertEquals("Jerry", ((SubOperation) (decodeData.getOperations()[0])).getUserName()); } @@ -432,7 +432,7 @@ public class BinaryEncodingTest { operations[0] = subOperation; compositeDatas.setOperations(operations); - byte[] bytes = BinaryEncodingUtils.encode(compositeDatas, CompositeDatas.class); + byte[] bytes = BinaryProtocol.encode(compositeDatas, CompositeDatas.class); int offset = 0; int code = BytesUtils.toInt(bytes, offset); @@ -508,8 +508,8 @@ public class BinaryEncodingTest { operations[0] = subOperation; compositeDatas.setOperations(operations); - byte[] bytes = BinaryEncodingUtils.encode(compositeDatas, CompositeDatas.class); - CompositeDatas decodeData = BinaryEncodingUtils.decode(bytes); + byte[] bytes = BinaryProtocol.encode(compositeDatas, CompositeDatas.class); + CompositeDatas decodeData = BinaryProtocol.decode(bytes); assertEquals(compositeDatas.isEnable(), decodeData.isEnable()); assertEquals(compositeDatas.getAge(), decodeData.getAge()); diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/CompositeDatas.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/CompositeDatas.java index be60a558..b1c9c95e 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/CompositeDatas.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/CompositeDatas.java @@ -2,8 +2,7 @@ package test.com.jd.blockchain.binaryproto; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.utils.Bytes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; /** * Created by zhangshuang3 on 2018/11/30. @@ -11,7 +10,7 @@ import com.jd.blockchain.utils.ValueType; @DataContract(code = 0xc, name = "CompositeDatas", description = "") public interface CompositeDatas { - @DataField(order = 1, primitiveType = ValueType.BOOLEAN) + @DataField(order = 1, primitiveType = PrimitiveType.BOOLEAN) boolean isEnable(); @DataField(order = 2, refEnum = true) @@ -23,7 +22,7 @@ public interface CompositeDatas { @DataField(order=4, list = true, refContract=true, genericContract = true) Operation[] getOperations(); - @DataField(order = 5, primitiveType = ValueType.INT16) + @DataField(order = 5, primitiveType = PrimitiveType.INT16) short getAge(); } diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/EnumLevel.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/EnumLevel.java index a736e334..54c94f32 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/EnumLevel.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/EnumLevel.java @@ -1,8 +1,8 @@ package test.com.jd.blockchain.binaryproto; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.binaryproto.EnumContract; import com.jd.blockchain.binaryproto.EnumField; -import com.jd.blockchain.utils.ValueType; /** * Created by zhangshuang3 on 2018/11/29. @@ -14,7 +14,7 @@ public enum EnumLevel { V2((byte) 2); - @EnumField(type= ValueType.INT8) + @EnumField(type= PrimitiveType.INT8) public final byte CODE; public byte getCode() { return CODE; diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/FieldOrderConflictedDatas.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/FieldOrderConflictedDatas.java index 2c17922c..428b74cf 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/FieldOrderConflictedDatas.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/FieldOrderConflictedDatas.java @@ -2,8 +2,7 @@ package test.com.jd.blockchain.binaryproto; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.utils.Bytes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; /** * Created by zhangshuang3 on 2018/7/11. @@ -11,22 +10,22 @@ import com.jd.blockchain.utils.ValueType; @DataContract(code = 0x06, name = "Primitive", description = "") public interface FieldOrderConflictedDatas { - @DataField(order = 2, primitiveType = ValueType.BOOLEAN) + @DataField(order = 2, primitiveType = PrimitiveType.BOOLEAN) boolean isEnable(); - @DataField(order = 3, primitiveType = ValueType.INT8) + @DataField(order = 3, primitiveType = PrimitiveType.INT8) byte isBoy(); - @DataField(order = 7, primitiveType = ValueType.INT16) + @DataField(order = 7, primitiveType = PrimitiveType.INT16) short getAge(); - @DataField(order = -1, primitiveType = ValueType.INT32) + @DataField(order = -1, primitiveType = PrimitiveType.INT32) int getId(); - @DataField(order = 6, primitiveType = ValueType.TEXT) + @DataField(order = 6, primitiveType = PrimitiveType.TEXT) String getName(); - @DataField(order = 7, primitiveType = ValueType.INT64) + @DataField(order = 7, primitiveType = PrimitiveType.INT64) long getValue(); diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/GenericRefContractDatasImpl.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/GenericRefContractDatasImpl.java index 774dd5c7..d257c612 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/GenericRefContractDatasImpl.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/GenericRefContractDatasImpl.java @@ -1,8 +1,6 @@ package test.com.jd.blockchain.binaryproto; import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; import java.util.List; /** diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/PrimitiveDatas.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/PrimitiveDatas.java index f855785c..30848834 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/PrimitiveDatas.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/PrimitiveDatas.java @@ -2,8 +2,8 @@ package test.com.jd.blockchain.binaryproto; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.utils.Bytes; -import com.jd.blockchain.utils.ValueType; import com.jd.blockchain.utils.net.NetworkAddress; /** @@ -12,37 +12,37 @@ import com.jd.blockchain.utils.net.NetworkAddress; @DataContract(code = 0x05, name = "Primitive", description = "") public interface PrimitiveDatas { - @DataField(order = 2, primitiveType = ValueType.BOOLEAN) + @DataField(order = 2, primitiveType = PrimitiveType.BOOLEAN) boolean isEnable(); - @DataField(order = 3, primitiveType = ValueType.INT8) + @DataField(order = 3, primitiveType = PrimitiveType.INT8) byte isBoy(); - @DataField(order = 4, primitiveType = ValueType.INT16) + @DataField(order = 4, primitiveType = PrimitiveType.INT16) short getAge(); - @DataField(order = -1, primitiveType = ValueType.INT32) + @DataField(order = -1, primitiveType = PrimitiveType.INT32) int getId(); - @DataField(order = 6, primitiveType = ValueType.TEXT) + @DataField(order = 6, primitiveType = PrimitiveType.TEXT) String getName(); - @DataField(order = 7, primitiveType = ValueType.INT64) + @DataField(order = 7, primitiveType = PrimitiveType.INT64) long getValue(); - @DataField(order = 12, primitiveType = ValueType.BYTES) + @DataField(order = 12, primitiveType = PrimitiveType.BYTES) byte[] getImage(); - @DataField(order = 100, primitiveType = ValueType.INT16) + @DataField(order = 100, primitiveType = PrimitiveType.INT16) char getFlag(); - @DataField(order = 200, primitiveType = ValueType.BYTES) + @DataField(order = 200, primitiveType = PrimitiveType.BYTES) Bytes getConfig(); - @DataField(order = 201, primitiveType = ValueType.BYTES) + @DataField(order = 201, primitiveType = PrimitiveType.BYTES) Bytes getSetting(); - @DataField(order = 202, primitiveType = ValueType.BYTES) + @DataField(order = 202, primitiveType = PrimitiveType.BYTES) NetworkAddress getNetworkAddr(); } diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/PrimitiveDatasImpl.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/PrimitiveDatasImpl.java index ec0f6a4b..b505fb34 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/PrimitiveDatasImpl.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/PrimitiveDatasImpl.java @@ -1,7 +1,5 @@ package test.com.jd.blockchain.binaryproto; -import org.omg.CORBA.PUBLIC_MEMBER; - import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.net.NetworkAddress; diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/RefContractDatas.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/RefContractDatas.java index 4bc61955..0c3d1947 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/RefContractDatas.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/RefContractDatas.java @@ -2,7 +2,6 @@ package test.com.jd.blockchain.binaryproto; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.utils.ValueType; /** * Created by zhangshuang3 on 2018/11/29. diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/SubOperation.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/SubOperation.java index a72a6077..6760bdcb 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/SubOperation.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/SubOperation.java @@ -2,7 +2,7 @@ package test.com.jd.blockchain.binaryproto; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; /** * Created by zhangshuang3 on 2018/11/29. @@ -10,7 +10,7 @@ import com.jd.blockchain.utils.ValueType; @DataContract(code = 0xa, name = "SubOperation", description = "") public interface SubOperation extends Operation { - @DataField(order=1, primitiveType = ValueType.TEXT) + @DataField(order=1, primitiveType = PrimitiveType.TEXT) String getUserName(); } diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Address.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Address.java deleted file mode 100644 index 013d414e..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Address.java +++ /dev/null @@ -1,16 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; -// -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; -//import com.jd.blockchain.binaryproto.ValueType; -// -//@DataContract(code=0x02, name="Address" , description="") -//public interface Address { -// -// @DataField(order=1, primitiveType=ValueType.TEXT) -// String getStreet(); -// -// @DataField(order=2, primitiveType=ValueType.INT32) -// int getNumber(); -// -//} diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/AddressCodeDuplicate.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/AddressCodeDuplicate.java index 7e60715e..9e1ac6cc 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/AddressCodeDuplicate.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/AddressCodeDuplicate.java @@ -2,7 +2,7 @@ package test.com.jd.blockchain.binaryproto.contract; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; /** * Created by zhangshuang3 on 2018/7/9. @@ -10,10 +10,10 @@ import com.jd.blockchain.utils.ValueType; @DataContract(code=0x02, name="Address" , description="") public interface AddressCodeDuplicate { - @DataField(order=1, primitiveType= ValueType.TEXT) + @DataField(order=1, primitiveType= PrimitiveType.TEXT) String getStreet(); - @DataField(order=2, primitiveType=ValueType.INT32) + @DataField(order=2, primitiveType=PrimitiveType.INT32) int getNumber(); } \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/AddressOrderDuplicate.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/AddressOrderDuplicate.java index cf23898f..f5b33e66 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/AddressOrderDuplicate.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/AddressOrderDuplicate.java @@ -2,7 +2,7 @@ package test.com.jd.blockchain.binaryproto.contract; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; /** * Created by zhangshuang3 on 2018/7/9. @@ -10,10 +10,10 @@ import com.jd.blockchain.utils.ValueType; @DataContract(code=0x03, name="Address" , description="") public interface AddressOrderDuplicate { - @DataField(order=1, primitiveType= ValueType.TEXT) + @DataField(order=1, primitiveType= PrimitiveType.TEXT) String getStreet(); - @DataField(order=1, primitiveType=ValueType.INT32) + @DataField(order=1, primitiveType=PrimitiveType.INT32) int getNumber(); } diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Array.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Array.java index 802cfb15..6eaf8c1d 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Array.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Array.java @@ -2,7 +2,7 @@ package test.com.jd.blockchain.binaryproto.contract; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; /** * Created by zhangshuang3 on 2018/7/11. @@ -10,16 +10,16 @@ import com.jd.blockchain.utils.ValueType; @DataContract(code=0x08, name="Array" , description="") public interface Array { - @DataField(order=1, primitiveType= ValueType.INT32, list=true) + @DataField(order=1, primitiveType= PrimitiveType.INT32, list=true) int[] getScores(); - @DataField(order=2, primitiveType=ValueType.TEXT, list=true) + @DataField(order=2, primitiveType=PrimitiveType.TEXT, list=true) String[] getFeatures(); - @DataField(order=3, primitiveType=ValueType.BYTES) + @DataField(order=3, primitiveType=PrimitiveType.BYTES) byte[] getFamilyMemberAges(); - @DataField(order=4, primitiveType=ValueType.INT64, list=true) + @DataField(order=4, primitiveType=PrimitiveType.INT64, list=true) long[] getFamilyMemberIds(); } \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/CryptoAlgorithm.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/CryptoAlgorithm.java deleted file mode 100644 index d4900959..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/CryptoAlgorithm.java +++ /dev/null @@ -1,158 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; -// -//import com.jd.blockchain.binaryproto.EnumContract; -//import com.jd.blockchain.binaryproto.EnumField; -//import com.jd.blockchain.binaryproto.ValueType; -//import com.jd.blockchain.crypto.CryptoAlgorithmType; -//import my.utils.io.BytesUtils; -// -///** -// * Created by zhangshuang3 on 2018/7/30. -// */ -//@EnumContract(code=0x0102) -//public enum CryptoAlgorithm { -// -// // Hash 类; -// // SHA_128(CryptoAlgorithmMask.HASH, (byte) 0x01, false, false), -// -// SHA_256(CryptoAlgorithmType.HASH, (byte) 0x01, false, false), -// -// RIPLE160(CryptoAlgorithmType.HASH, (byte) 0x02, false, false), -// -// SM3(CryptoAlgorithmType.HASH, (byte) 0x03, false, false), -// -// // 非对称签名/加密算法; -// -// /** -// * RSA 签名算法;可签名,可加密; -// */ -// RSA(CryptoAlgorithmType.ASYMMETRIC, (byte) 0x01, true, true), -// -// /** -// * ED25519 签名算法;只用于签名,没有加密特性; -// */ -// ED25519(CryptoAlgorithmType.ASYMMETRIC, (byte) 0x02, true, false), -// -// /** -// * ECDSA 签名算法;只用于签名,没有加密特性;??? -// */ -// ECDSA(CryptoAlgorithmType.ASYMMETRIC, (byte) 0x03, true, false), -// -// /** -// * 国密 SM2 算法;可签名,可加密; -// */ -// SM2(CryptoAlgorithmType.ASYMMETRIC, (byte) 0x04, true, true), -// -// // 对称加密; -// /** -// * AES 算法;可加密; -// */ -// AES(CryptoAlgorithmType.SYMMETRIC, (byte) 0x01, false, true), -// -// SM4(CryptoAlgorithmType.SYMMETRIC, (byte) 0x02, false, true), -// -// // 随机性; -// /** -// * ?????  一种随机数算法,待定; -// */ -// JAVA_SECURE(CryptoAlgorithmType.RANDOM, (byte) 0x01, false, false); -// -// /** -// * 密码算法的代号;
-// * 注:只占16位; -// */ -// @EnumField(type = ValueType.INT8) -// public final byte CODE; -// -// private final boolean signable; -// -// private final boolean encryptable; -// -// private CryptoAlgorithm(byte algType, byte algId, boolean signable, boolean encryptable) { -// this.CODE = (byte) (algType | algId); -// this.signable = signable; -// this.encryptable = encryptable; -// } -// -// /** -// * 是否属于摘要算法; -// * -// * @return -// */ -// public boolean isHash() { -// return (CODE & CryptoAlgorithmType.HASH) == CryptoAlgorithmType.HASH; -// } -// -// /** -// * 是否属于非对称密码算法; -// * -// * @return -// */ -// public boolean isAsymmetric() { -// return (CODE & CryptoAlgorithmType.ASYMMETRIC) == CryptoAlgorithmType.ASYMMETRIC; -// } -// -// /** -// * 是否属于对称密码算法; -// * -// * @return -// */ -// public boolean isSymmetric() { -// return (CODE & CryptoAlgorithmType.SYMMETRIC) == CryptoAlgorithmType.SYMMETRIC; -// } -// -// /** -// * 是否属于随机数算法; -// * -// * @return -// */ -// public boolean isRandom() { -// return (CODE & CryptoAlgorithmType.RANDOM) == CryptoAlgorithmType.RANDOM; -// } -// -// /** -// * 是否支持签名操作; -// * -// * @return -// */ -// public boolean isSignable() { -// return signable; -// } -// -// /** -// * 是否支持加密操作; -// * -// * @return -// */ -// public boolean isEncryptable() { -// return encryptable; -// } -// -// /** -// * 返回指定编码对应的枚举实例;
-// * -// * 如果不存在,则返回 null; -// * -// * @param code -// * @return -// */ -// public static CryptoAlgorithm valueOf(byte code) { -// for (CryptoAlgorithm alg : CryptoAlgorithm.values()) { -// if (alg.CODE == code) { -// return alg; -// } -// } -// throw new IllegalArgumentException("CryptoAlgorithm doesn't support enum code[" + code + "]!"); -// } -// -// // /** -// // * @return -// // */ -// // public byte[] toBytes() { -// // byte[] bytes = BytesUtils.toBytes(CODE); -// // byte[] result = new byte[BYTES_SIZE]; -// // System.arraycopy(bytes, 2, result, 0, 2); -// // // TODO: 只返回最后2个字节; -// // return result; -// // } -//} \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/CryptoSetting.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/CryptoSetting.java deleted file mode 100644 index 35662d50..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/CryptoSetting.java +++ /dev/null @@ -1,41 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; -// -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; -//import com.jd.blockchain.binaryproto.ValueType; -// -///** -// * Created by zhangshuang3 on 2018/7/30. -// */ -//@DataContract(code=0x0d, name="CryptoSetting", description = "Crypto setting") -//public interface CryptoSetting { -// -// /** -// * 系统中使用的 Hash 算法;
-// * -// * 对于历史数据,如果它未发生更改,则总是按照该数据产生时采用的算法进行校验,即使当时指定的Hash算法和当前的不同;
-// * -// * 如果对数据进行了更新,则采用新的 Hash 算法来计算生成完整性证明; -// * -// * @return -// */ -// @DataField(order=1, refEnum=true) -// public HashAlgorithm getHashAlgorithm(); -// -// @DataField(order=2, refEnum=true) -// public CryptoAlgorithm getHashAlgorithm1(); -// -// /** -// * 当有完整性证明的数据被从持久化介质中加载时,是否对其进行完整性校验(重新计算 hash 比对是否一致);
-// * -// * 如果为 true ,则自动进行校验,如果校验失败,会引发异常;
-// * -// * 注意:开启此选项将对性能会产生负面影响,因此使用者需要在性能和数据安全性之间做出权衡; -// * -// * @return -// */ -// @DataField(order=3, primitiveType= ValueType.BOOLEAN) -// public boolean getAutoVerifyHash();//func name is getxxxxx type -// -//} -// diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/HashAlgorithm.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/HashAlgorithm.java deleted file mode 100644 index 7f8296ff..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/HashAlgorithm.java +++ /dev/null @@ -1,50 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; -// -//import com.jd.blockchain.binaryproto.EnumContract; -//import com.jd.blockchain.binaryproto.EnumField; -//import com.jd.blockchain.binaryproto.ValueType; -// -///** -// * Created by zhangshuang3 on 2018/7/30. -// */ -//@EnumContract(code=0x0101) -//public enum HashAlgorithm { -// -// RIPE160((byte) 1), -// -// SHA256((byte) 2), -// -// SM3((byte) 4); -// -// @EnumField(type = ValueType.INT8) -// public final byte CODE; -// -// private HashAlgorithm(byte algorithm) { -// CODE = algorithm; -// } -// -// public byte getAlgorithm() { -// return CODE; -// } -// -// public static HashAlgorithm valueOf(byte algorithm) { -// for (HashAlgorithm hashAlgorithm : HashAlgorithm.values()) { -// if (hashAlgorithm.CODE == algorithm) { -// return hashAlgorithm; -// } -// } -// throw new IllegalArgumentException("Unsupported hash algorithm [" + algorithm + "]!"); -// } -// -// public static void checkHashAlgorithm(HashAlgorithm algorithm) { -// switch (algorithm) { -// case RIPE160: -// break; -// case SHA256: -// break; -// default: -// throw new IllegalArgumentException("Unsupported hash algorithm [" + algorithm + "]!"); -// } -// } -//} -// diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerBlock.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerBlock.java deleted file mode 100644 index 74e206be..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerBlock.java +++ /dev/null @@ -1,28 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; -// -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; -//import com.jd.blockchain.binaryproto.ValueType; -//import com.jd.blockchain.crypto.hash.HashDigest; -// -///** -// * Created by zhangshuang3 on 2018/7/30. -// */ -//@DataContract(code=0x12, name="LedgerBlock", description ="LedgerBlock") -//public interface LedgerBlock extends LedgerDataSnapshot{ -// -// @DataField(order=1, refHashDigest=true) -// HashDigest getHash(); -// -// @DataField(order=2, refHashDigest=true) -// HashDigest getPreviousHash(); -// -// @DataField(order=3, refHashDigest=true) -// HashDigest getLedgerHash(); -// -// @DataField(order=4, primitiveType=ValueType.INT64) -// long getHeight(); -// -// @DataField(order=5, refHashDigest=true) -// HashDigest getTransactionSetHash(); -//} \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerDataSnapshot.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerDataSnapshot.java deleted file mode 100644 index 683e13f4..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerDataSnapshot.java +++ /dev/null @@ -1,34 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; -// -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; -//import com.jd.blockchain.crypto.hash.HashDigest; -// -///** -// * Created by zhangshuang3 on 2018/7/30. -// */ -//@DataContract(code=0x11, name="LedgerDataSnapshot", description ="LedgerDataSnapshot") -//public interface LedgerDataSnapshot { -// -// @DataField(order=1, refHashDigest=true) -// HashDigest getAdminAccountHash(); -// -// @DataField(order=2, refHashDigest=true) -// HashDigest getUserAccountSetHash(); -// -// @DataField(order=3, refHashDigest=true) -// HashDigest getUserPrivilegeHash(); -// -// @DataField(order=4, refHashDigest=true) -// HashDigest getDataAccountSetHash(); -// -// @DataField(order=5, refHashDigest=true) -// HashDigest getDataPrivilegeHash(); -// -// @DataField(order=6, refHashDigest=true) -// HashDigest getContractAccountSetHash(); -// -// @DataField(order=7, refHashDigest=true) -// HashDigest getContractPrivilegeHash(); -// -//} diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerMetadata.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerMetadata.java deleted file mode 100644 index d40babdf..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerMetadata.java +++ /dev/null @@ -1,25 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; -// -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; -//import com.jd.blockchain.binaryproto.ValueType; -// -///** -// * Created by zhangshuang3 on 2018/7/30. -// */ -//@DataContract(code=0x0b, name="LedgerMetadata", description = "Ledger meta data") -//public interface LedgerMetadata { -// -// @DataField(order=1, primitiveType= ValueType.INT8, list=true) -// byte[] getSeed(); -// -// @DataField(order = 2, refContract=true) -// LedgerSetting getSetting(); -// -// @DataField(order=3, primitiveType=ValueType.INT8, list=true) -// byte[] getPrivilegesHash(); -// -// @DataField(order=4, primitiveType=ValueType.INT8, list=true) -// byte[] getParticipantsHash(); -// -//} \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerSetting.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerSetting.java deleted file mode 100644 index 6f2f383b..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/LedgerSetting.java +++ /dev/null @@ -1,21 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; -// -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; -// -///** -// * Created by zhangshuang3 on 2018/7/30. -// */ -//@DataContract(code=0x0c, name="LedgerSetting", description = "Ledger setting") -//public interface LedgerSetting { -// -// //@DataField(order=1, refContract=true) -// //ConsensusSetting getConsensusSetting(); -// -// @DataField(order=2, refContract=true) -// CryptoSetting getCryptoSetting(); -// -// @DataField(order=3, refContract=true) -// PrivilegeModelSetting getPrivilegesModelSetting(); -// -//} \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Level.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Level.java index 7b74768c..d7e1c676 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Level.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Level.java @@ -1,8 +1,8 @@ package test.com.jd.blockchain.binaryproto.contract; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.binaryproto.EnumContract; import com.jd.blockchain.binaryproto.EnumField; -import com.jd.blockchain.utils.ValueType; @EnumContract(code=0x0100) public enum Level { @@ -11,7 +11,7 @@ public enum Level { V2((byte) 2); - @EnumField(type=ValueType.INT8) + @EnumField(type=PrimitiveType.INT8) public final byte CODE; public byte getCode() { return CODE; diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Privilege.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Privilege.java deleted file mode 100644 index 3b1d53de..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Privilege.java +++ /dev/null @@ -1,18 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; -// -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; -//import com.jd.blockchain.binaryproto.ValueType; -// -///** -// * Created by zhangshuang3 on 2018/7/30. -// */ -//@DataContract(code=0x10, name="Privilege", description ="Privilege") -//public interface Privilege { -// -// //SortedSet getOpCodes(); implement later -// -// @DataField(order=2, primitiveType= ValueType.INT64) -// long getVersion(); -// -//} \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/PrivilegeModelSetting.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/PrivilegeModelSetting.java index 65df415b..52586c94 100644 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/PrivilegeModelSetting.java +++ b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/PrivilegeModelSetting.java @@ -2,7 +2,7 @@ package test.com.jd.blockchain.binaryproto.contract; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; /** * Created by zhangshuang3 on 2018/7/30. @@ -10,7 +10,7 @@ import com.jd.blockchain.utils.ValueType; @DataContract(code=0x0f, name="PrivilegeModelSetting", description ="Privilege Model setting") public interface PrivilegeModelSetting { - @DataField(order=1, primitiveType= ValueType.INT64) + @DataField(order=1, primitiveType= PrimitiveType.INT64) long getLatestVersion(); //@DataField(order=2, refContract=true) diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/RefContract.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/RefContract.java deleted file mode 100644 index 0decffb1..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/RefContract.java +++ /dev/null @@ -1,20 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; - -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; - -/** - * Created by zhangshuang3 on 2018/7/11. - */ -/* -@DataContract(code=0x07, name="RefContract" , description="") -public interface RefContract { - - @DataField(order=1, refContract=true) - Address getAddress(); - - @DataField(order=2, refContract=true) - Address getAddress1(); - -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Student.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Student.java deleted file mode 100644 index 29d6dae5..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/Student.java +++ /dev/null @@ -1,41 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; - -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; -//import com.jd.blockchain.binaryproto.ValueType; - -/* -@DataContract(code=0x01, name="测试数据契约1", description = "用于测试的数据契约") -public interface Student { - - @DataField(order=1, primitiveType=ValueType.INT32) - int getId(); - - @DataField(order=2, primitiveType=ValueType.INT8) - byte getFamilyMemberNum(); - - @DataField(order=3, primitiveType=ValueType.TEXT) - String getName(); - - @DataField(order=4, primitiveType=ValueType.INT16) - short getAge(); - - @DataField(order=5, refEnum=true) - Level getLevel(); - - @DataField(order=6, refContract=true) - Address getAddress(); - - @DataField(order=7, primitiveType=ValueType.INT32, list=true) - int[] getScores(); - - @DataField(order=8, primitiveType=ValueType.TEXT, list=true) - String[] getFeatures(); - - @DataField(order=9, primitiveType=ValueType.INT8, list=true) - byte[] getFamilyMemberAges(); - - @DataField(order=10, primitiveType=ValueType.INT64, list=true) - long[] getFamilyMemberIds(); -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/StudentInvert.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/StudentInvert.java deleted file mode 100644 index b82f23c1..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/StudentInvert.java +++ /dev/null @@ -1,44 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; - -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; -//import com.jd.blockchain.binaryproto.ValueType; - -/** - * Created by zhangshuang3 on 2018/7/9. - */ -/* -@DataContract(code=0x04, name="测试数据契约1", description = "用于测试的数据契约") -public interface StudentInvert { - - @DataField(order=10, primitiveType=ValueType.INT64, list=true) - long[] getFamilyMemberIds(); - - @DataField(order=9, primitiveType=ValueType.INT8, list=true) - byte[] getFamilyMemberAges(); - - @DataField(order=8, primitiveType=ValueType.TEXT, list=true) - String[] getFeatures(); - - @DataField(order=7, primitiveType=ValueType.INT32, list=true) - int[] getScores(); - - @DataField(order=6, refContract=true) - Address getAddress(); - - @DataField(order=5, refEnum=true) - Level getLevel(); - - @DataField(order=4, primitiveType=ValueType.INT16) - short getAge(); - - @DataField(order=3, primitiveType=ValueType.TEXT) - String getName(); - - @DataField(order=2, primitiveType=ValueType.INT8) - byte getFamilyMemberNum(); - - @DataField(order=1, primitiveType= ValueType.INT32) - int getId(); -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/User.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/User.java deleted file mode 100644 index fa6adef1..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/User.java +++ /dev/null @@ -1,31 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract; - -//import com.jd.blockchain.binaryproto.DataContract; -//import com.jd.blockchain.binaryproto.DataField; -//import com.jd.blockchain.binaryproto.ValueType; -//import com.jd.blockchain.crypto.asymmetric.PubKey; -//import my.utils.io.ByteArray; - -/** - * Created by zhangshuang3 on 2018/7/25. - */ -/* -@DataContract(code=0x09, name="UserAccount", description = "用户账户") -public interface User { - - @DataField(order=1, primitiveType= ValueType.TEXT) - String getAddress(); - - @DataField(order=2, refPubKey = true) - PubKey getPubKey(); - - @DataField(order=3, refPubKey = true) - PubKey getDataPubKey(); - - @DataField(order=4, primitiveType = ValueType.BYTES) - ByteArray getDataHash(); - - @DataField(order=5, primitiveType = ValueType.BYTES) - ByteArray getPrivilegeHash(); -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/AddressImpl.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/AddressImpl.java deleted file mode 100644 index c2af3153..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/AddressImpl.java +++ /dev/null @@ -1,29 +0,0 @@ -/* -package test.com.jd.blockchain.binaryproto.contract.impl; - -import test.com.jd.blockchain.binaryproto.contract.Address; - -public class AddressImpl implements Address { - private String street; - private int number; - - @Override - public String getStreet() { - // TODO Auto-generated method stub - return this.street; - } - public void setStreet(String street) { - this.street = street; - } - - @Override - public int getNumber() { - // TODO Auto-generated method stub - return this.number; - } - public void setNumber(int number) { - this.number = number; - } - -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/CryptoSettingImpl.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/CryptoSettingImpl.java deleted file mode 100644 index 2fe4cb23..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/CryptoSettingImpl.java +++ /dev/null @@ -1,40 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract.impl; - -//import test.com.jd.blockchain.binaryproto.contract.CryptoAlgorithm; -//import test.com.jd.blockchain.binaryproto.contract.CryptoSetting; -//import test.com.jd.blockchain.binaryproto.contract.HashAlgorithm; - -/** - * Created by zhangshuang3 on 2018/7/30. - */ -/* -public class CryptoSettingImpl implements CryptoSetting { - private HashAlgorithm hashAlgorithm; - private CryptoAlgorithm cryptoAlgorithm; - private boolean isAuto; - - @Override - public HashAlgorithm getHashAlgorithm() { - return this.hashAlgorithm; - } - public void setHashAlgorithm(HashAlgorithm hashAlgorithm) { - this.hashAlgorithm = hashAlgorithm; - } - - @Override - public CryptoAlgorithm getHashAlgorithm1() { - return this.cryptoAlgorithm; - } - public void setHashAlgorithm1(CryptoAlgorithm cryptoAlgorithm) { - this.cryptoAlgorithm = cryptoAlgorithm; - } - @Override - public boolean getAutoVerifyHash() { - return isAuto; - } - public void setAutoVerifyHash(boolean isAuto) { - this.isAuto = isAuto; - } - -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/LedgerBlockImpl.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/LedgerBlockImpl.java deleted file mode 100644 index 803b4b5a..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/LedgerBlockImpl.java +++ /dev/null @@ -1,147 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract.impl; - -//import com.jd.blockchain.binaryproto.DConstructor; -//import com.jd.blockchain.binaryproto.DataField; -//import com.jd.blockchain.binaryproto.FieldSetter; -//import com.jd.blockchain.crypto.hash.HashDigest; -//import test.com.jd.blockchain.binaryproto.contract.Address; -//import test.com.jd.blockchain.binaryproto.contract.LedgerBlock; - -/** - * Created by zhangshuang3 on 2018/7/30. - */ -/* -public class LedgerBlockImpl implements LedgerBlock { - - private HashDigest hash; - - private long height; - - private HashDigest ledgerHash; - - private HashDigest previousHash; - - private HashDigest adminAccountHash; - - private HashDigest userAccountSetHash; - - private HashDigest userPrivilegeHash; - - private HashDigest dataAccountSetHash; - - private HashDigest dataPrivilegeHash; - - private HashDigest contractAccountSetHash; - - private HashDigest contractPrivilegeHash; - - private HashDigest transactionSetHash; - - public void setAdminAccountHash(HashDigest adminAccountHash) { - this.adminAccountHash = adminAccountHash; - } - - public void setUserAccountSetHash(HashDigest userAccountSetHash) { - this.userAccountSetHash = userAccountSetHash; - } - - public void setUserPrivilegeHash(HashDigest userPrivilegeHash) { - this.userPrivilegeHash = userPrivilegeHash; - } - - public void setDataAccountSetHash(HashDigest dataAccountSetHash) { - this.dataAccountSetHash = dataAccountSetHash; - } - - public void setDataPrivilegeHash(HashDigest dataPrivilegeHash) { - this.dataPrivilegeHash = dataPrivilegeHash; - } - - public void setContractAccountSetHash(HashDigest contractAccountSetHash) { - this.contractAccountSetHash = contractAccountSetHash; - } - - public void setContractPrivilegeHash(HashDigest contractPrivilegeHash) { - this.contractPrivilegeHash = contractPrivilegeHash; - } - - public void setTransactionSetHash(HashDigest transactionSetHash) { - this.transactionSetHash = transactionSetHash; - } - - public LedgerBlockImpl() { - } - - @DConstructor(name="LedgerBlockImpl") - public LedgerBlockImpl(@FieldSetter(name="getHeight", type="long") long height, @FieldSetter(name="getLedgerHash", type="HashDigest") HashDigest ledgerHash, @FieldSetter(name="getPreviousHash", type="HashDigest") HashDigest previousHash) { - this.height = height; - this.ledgerHash = ledgerHash; - this.previousHash = previousHash; - } - - @Override - public HashDigest getHash() { - return hash; - } - - @Override - public HashDigest getPreviousHash() { - return previousHash; - } - - @Override - public HashDigest getLedgerHash() { - return ledgerHash; - } - - @Override - public long getHeight() { - return height; - } - - @Override - public HashDigest getAdminAccountHash() { - return adminAccountHash; - } - - @Override - public HashDigest getUserAccountSetHash() { - return userAccountSetHash; - } - - @Override - public HashDigest getUserPrivilegeHash() { - return userPrivilegeHash; - } - - @Override - public HashDigest getDataAccountSetHash() { - return dataAccountSetHash; - } - - @Override - public HashDigest getDataPrivilegeHash() { - return dataPrivilegeHash; - } - - @Override - public HashDigest getContractAccountSetHash() { - return contractAccountSetHash; - } - - @Override - public HashDigest getContractPrivilegeHash() { - return contractPrivilegeHash; - } - - @Override - public HashDigest getTransactionSetHash() { - return transactionSetHash; - } - - public void setHash(HashDigest blockHash) { - this.hash = blockHash; - } - -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/LedgerMetadataImpl.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/LedgerMetadataImpl.java deleted file mode 100644 index 7267377b..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/LedgerMetadataImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract.impl; - -//import test.com.jd.blockchain.binaryproto.contract.*; -//import test.com.jd.blockchain.binaryproto.contract.LedgerMetadata; -//import test.com.jd.blockchain.binaryproto.contract.LedgerSetting; - -/** - * Created by zhangshuang3 on 2018/7/30. - */ -/* -public class LedgerMetadataImpl implements LedgerMetadata { - private byte[] seed; - - private LedgerSetting setting; - - private byte[] privilegesHash; - - private byte[] participantsHash; - - @Override - public byte[] getSeed() { - return seed; - } - - @Override - public LedgerSetting getSetting() { - return setting; - } - - @Override - public byte[] getPrivilegesHash() { - return privilegesHash; - } - - @Override - public byte[] getParticipantsHash() { - return participantsHash; - } - - public void setSeed(byte[] seed) { - this.seed = seed; - } - - public void setSetting(LedgerSetting setting) { - this.setting = setting; - } - - public void setPrivilegesHash(byte[] privilegesHash) { - this.privilegesHash = privilegesHash; - } - - public void setParticipantsHash(byte[] participantsHash) { - this.participantsHash = participantsHash; - } -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/LedgerSettingImpl.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/LedgerSettingImpl.java deleted file mode 100644 index 1af4b7a5..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/LedgerSettingImpl.java +++ /dev/null @@ -1,30 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract.impl; - -//import test.com.jd.blockchain.binaryproto.contract.LedgerSetting; -//import test.com.jd.blockchain.binaryproto.contract.CryptoSetting; -//import test.com.jd.blockchain.binaryproto.contract.PrivilegeModelSetting; - -/** - * Created by zhangshuang3 on 2018/7/30. - */ -/* -public class LedgerSettingImpl implements LedgerSetting { - private CryptoSetting cryptoSetting; - private PrivilegeModelSetting privilegeModelSetting; - - @Override - public CryptoSetting getCryptoSetting() { - return this.cryptoSetting; - } - public void setCryptoSetting(CryptoSetting cryptoSetting) { - this.cryptoSetting = cryptoSetting; - } - @Override - public PrivilegeModelSetting getPrivilegesModelSetting() { - return this.privilegeModelSetting; - } - public void setPrivilegesModelSetting(PrivilegeModelSetting privilegeModelSetting) { - this.privilegeModelSetting = privilegeModelSetting; - } -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/RefContractImpl.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/RefContractImpl.java deleted file mode 100644 index 700cbf66..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/RefContractImpl.java +++ /dev/null @@ -1,32 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract.impl; - -//import test.com.jd.blockchain.binaryproto.contract.Address; -//import test.com.jd.blockchain.binaryproto.contract.RefContract; - -/** - * Created by zhangshuang3 on 2018/7/11. - */ -/* -public class RefContractImpl implements RefContract { - private Address address; - private Address address1; - - @Override - public Address getAddress() { - // TODO Auto-generated method stub - return this.address; - } - public void setAddress(Address address) { - this.address = address; - } - - @Override - public Address getAddress1() { - // TODO Auto-generated method stub - return this.address1; - } - public void setAddress1(Address address) { - this.address1 = address; - } -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/StudentImpl.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/StudentImpl.java deleted file mode 100644 index 5b8cfacd..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/StudentImpl.java +++ /dev/null @@ -1,108 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract.impl; - -//import test.com.jd.blockchain.binaryproto.contract.Address; -//import test.com.jd.blockchain.binaryproto.contract.Level; -//import test.com.jd.blockchain.binaryproto.contract.Student; -//import test.com.jd.blockchain.binaryproto.contract.StudentInvert; - -/* -public class StudentImpl implements Student,StudentInvert { - - private int id; - private short age; - private String name; - private Level level; - private Address address; - private int[] scores; - private String[] features; - private byte familyMemberNum; - private byte[] familyMemberAges; - private long[] familyMemberIds; - - - @Override - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - @Override - public String getName() { - // TODO Auto-generated method stub - return this.name; - } - public void setName(String name) { - this.name = name; - } - - @Override - public Level getLevel() { - // TODO Auto-generated method stub - return this.level; - } - public void setLevel(Level level) { - this.level = level; - } - - @Override - public Address getAddress() { - // TODO Auto-generated method stub - return this.address; - } - public void setAddress(Address address) { - this.address = address; - } - - public short getAge() { - return age; - } - - public void setAge(short age) { - this.age = age; - } - - @Override - public int[] getScores() { - // TODO Auto-generated method stub - return this.scores; - } - public void setScores(int[] scores) { - this.scores = scores; - } - - @Override - public String[] getFeatures() { - return this.features; - } - public void setFeatures(String[] features) { - this.features = features; - } - - @Override - public byte getFamilyMemberNum() { - return this.familyMemberNum; - } - public void setFamilyMemberNum(byte familyMemberNum) { - this.familyMemberNum = familyMemberNum; - } - - @Override - public byte[] getFamilyMemberAges() { - return this.familyMemberAges; - } - public void setFamilyMemberAges(byte[] familyMemberAge) { - this.familyMemberAges = familyMemberAge; - } - - @Override - public long[] getFamilyMemberIds() { - return this.familyMemberIds; - } - public void setFamilyMemberIds(long[] familyMemberId) { - this.familyMemberIds = familyMemberId; - } -} -*/ \ No newline at end of file diff --git a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/UserImpl.java b/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/UserImpl.java deleted file mode 100644 index 09fb3cf1..00000000 --- a/source/binary-proto/src/test/java/test/com/jd/blockchain/binaryproto/contract/impl/UserImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -//package test.com.jd.blockchain.binaryproto.contract.impl; - -//import com.jd.blockchain.binaryproto.DConstructor; -//import com.jd.blockchain.binaryproto.FieldSetter; -//import com.jd.blockchain.crypto.asymmetric.PubKey; -//import my.utils.io.ByteArray; -//import test.com.jd.blockchain.binaryproto.contract.User; - -/** - * Created by zhangshuang3 on 2018/7/24. - */ -/* -public class UserImpl implements User { - String address; - PubKey pubKey; - PubKey dataPubKey; - ByteArray dataHash; - ByteArray privHash; - - @DConstructor(name = "UserImpl") - public UserImpl(@FieldSetter(name = "getAddress", type = "String") String address, @FieldSetter(name = "getPubKey",type = "PubKey") PubKey pubKey, @FieldSetter(name = "getDataPubKey",type = "PubKey") PubKey dataPubKey, - @FieldSetter(name = "getDataHash", type = "byte[]") byte[] dataHash, @FieldSetter(name = "getPrivilegeHash", type = "byte[]") byte[] privHash) { - this.address = address; - this.pubKey = pubKey; - this.dataPubKey = dataPubKey; - this.dataHash = ByteArray.wrap(dataHash); - this.privHash = ByteArray.wrap(privHash); - } - - @Override - public String getAddress() { - return address; - } - @Override - public PubKey getPubKey() { - return pubKey; - } - @Override - public PubKey getDataPubKey() { - return dataPubKey; - } - @Override - public ByteArray getDataHash() { - return dataHash; - } - @Override - public ByteArray getPrivilegeHash() { - return privHash; - } -} -*/ \ No newline at end of file diff --git a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartClientIncomingSettings.java b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartClientIncomingSettings.java index 354180a8..2838542a 100644 --- a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartClientIncomingSettings.java +++ b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartClientIncomingSettings.java @@ -2,21 +2,21 @@ package com.jd.blockchain.consensus.bftsmart; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.consensus.ClientIncomingSettings; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.PubKey; -import com.jd.blockchain.utils.ValueType; -@DataContract(code = TypeCodes.CONSENSUS_BFTSMART_CLI_INCOMING_SETTINGS) +@DataContract(code = DataCodes.CONSENSUS_BFTSMART_CLI_INCOMING_SETTINGS) public interface BftsmartClientIncomingSettings extends ClientIncomingSettings { - @DataField(order = 1, primitiveType = ValueType.BYTES) + @DataField(order = 1, primitiveType = PrimitiveType.BYTES) byte[] getTopology(); - @DataField(order = 2, primitiveType = ValueType.BYTES) + @DataField(order = 2, primitiveType = PrimitiveType.BYTES) byte[] getTomConfig(); - @DataField(order = 3, primitiveType=ValueType.BYTES) + @DataField(order = 3, primitiveType=PrimitiveType.BYTES) PubKey getPubKey(); } diff --git a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartCommitBlockSettings.java b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartCommitBlockSettings.java index e99ea811..675344da 100644 --- a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartCommitBlockSettings.java +++ b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartCommitBlockSettings.java @@ -2,16 +2,16 @@ package com.jd.blockchain.consensus.bftsmart; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; -@DataContract(code = TypeCodes.CONSENSUS_BFTSMART_BLOCK_SETTINGS) +@DataContract(code = DataCodes.CONSENSUS_BFTSMART_BLOCK_SETTINGS) public interface BftsmartCommitBlockSettings { - @DataField(order = 0, primitiveType = ValueType.INT32) + @DataField(order = 0, primitiveType = PrimitiveType.INT32) int getTxSizePerBlock(); - @DataField(order = 1, primitiveType = ValueType.INT64) + @DataField(order = 1, primitiveType = PrimitiveType.INT64) long getMaxDelayMilliSecondsPerBlock(); } diff --git a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartConsensusSettings.java b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartConsensusSettings.java index 8b6fa451..f4e24cf5 100644 --- a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartConsensusSettings.java +++ b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartConsensusSettings.java @@ -2,16 +2,16 @@ package com.jd.blockchain.consensus.bftsmart; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.consensus.ConsensusSettings; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.utils.Property; -import com.jd.blockchain.utils.ValueType; import com.jd.blockchain.utils.serialize.binary.BinarySerializeUtils; -@DataContract(code = TypeCodes.CONSENSUS_BFTSMART_SETTINGS) +@DataContract(code = DataCodes.CONSENSUS_BFTSMART_SETTINGS) public interface BftsmartConsensusSettings extends ConsensusSettings { - @DataField(order = 1, primitiveType = ValueType.BYTES, list=true) + @DataField(order = 1, primitiveType = PrimitiveType.BYTES, list=true) Property[] getSystemConfigs(); @DataField(order = 2, refContract = true) diff --git a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartNodeSettings.java b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartNodeSettings.java index e1595626..a7158b68 100644 --- a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartNodeSettings.java +++ b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartNodeSettings.java @@ -2,13 +2,13 @@ package com.jd.blockchain.consensus.bftsmart; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.consensus.NodeSettings; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.PubKey; -import com.jd.blockchain.utils.ValueType; import com.jd.blockchain.utils.net.NetworkAddress; -@DataContract(code = TypeCodes.CONSENSUS_BFTSMART_NODE_SETTINGS) +@DataContract(code = DataCodes.CONSENSUS_BFTSMART_NODE_SETTINGS) public interface BftsmartNodeSettings extends NodeSettings { /** @@ -31,7 +31,7 @@ public interface BftsmartNodeSettings extends NodeSettings { * * @return */ - @DataField(order = 2, primitiveType = ValueType.INT32) + @DataField(order = 2, primitiveType = PrimitiveType.INT32) int getId(); /** @@ -39,7 +39,7 @@ public interface BftsmartNodeSettings extends NodeSettings { * * @return */ - @DataField(order = 3, primitiveType = ValueType.BYTES) + @DataField(order = 3, primitiveType = PrimitiveType.BYTES) NetworkAddress getNetworkAddress(); } diff --git a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartSettingsFactory.java b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartSettingsFactory.java index 45be9423..a3e345ec 100644 --- a/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartSettingsFactory.java +++ b/source/consensus/consensus-bftsmart/src/main/java/com/jd/blockchain/consensus/bftsmart/BftsmartSettingsFactory.java @@ -1,6 +1,6 @@ package com.jd.blockchain.consensus.bftsmart; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.consensus.*; import com.jd.blockchain.utils.io.BytesEncoder; @@ -40,14 +40,14 @@ public class BftsmartSettingsFactory implements SettingsFactory { @Override public byte[] encode(ConsensusSettings data) { if (data instanceof BftsmartConsensusSettings) { - return BinaryEncodingUtils.encode(data, BftsmartConsensusSettings.class); + return BinaryProtocol.encode(data, BftsmartConsensusSettings.class); } throw new IllegalArgumentException("Settings data isn't supported! Accept BftsmartConsensusSettings only!"); } @Override public ConsensusSettings decode(byte[] bytes) { - return BinaryEncodingUtils.decodeAs(bytes, BftsmartConsensusSettings.class); + return BinaryProtocol.decodeAs(bytes, BftsmartConsensusSettings.class); } } @@ -57,14 +57,14 @@ public class BftsmartSettingsFactory implements SettingsFactory { @Override public byte[] encode(ClientIncomingSettings data) { if (data instanceof BftsmartClientIncomingSettings) { - return BinaryEncodingUtils.encode(data, BftsmartClientIncomingSettings.class); + return BinaryProtocol.encode(data, BftsmartClientIncomingSettings.class); } throw new IllegalArgumentException("Settings data isn't supported! Accept BftsmartClientIncomingSettings only!"); } @Override public ClientIncomingSettings decode(byte[] bytes) { - return BinaryEncodingUtils.decodeAs(bytes, BftsmartClientIncomingSettings.class); + return BinaryProtocol.decodeAs(bytes, BftsmartClientIncomingSettings.class); } } diff --git a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIdentification.java b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIdentification.java index d835c09e..99b3b9a3 100644 --- a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIdentification.java +++ b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIdentification.java @@ -2,10 +2,10 @@ package com.jd.blockchain.consensus; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.PubKey; import com.jd.blockchain.crypto.SignatureDigest; -import com.jd.blockchain.utils.ValueType; /** * 客户端的身份证明; @@ -13,7 +13,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code = TypeCodes.CLIENT_IDENTIFICATION) +@DataContract(code = DataCodes.CLIENT_IDENTIFICATION) public interface ClientIdentification { /** @@ -21,7 +21,7 @@ public interface ClientIdentification { * * @return */ - @DataField(order = 0, primitiveType = ValueType.BYTES) + @DataField(order = 0, primitiveType = PrimitiveType.BYTES) byte[] getIdentityInfo(); /** @@ -29,7 +29,7 @@ public interface ClientIdentification { * * @return */ - @DataField(order = 1, primitiveType = ValueType.BYTES) + @DataField(order = 1, primitiveType = PrimitiveType.BYTES) PubKey getPubKey(); /** @@ -37,7 +37,7 @@ public interface ClientIdentification { * * @return */ - @DataField(order = 2, primitiveType = ValueType.BYTES) + @DataField(order = 2, primitiveType = PrimitiveType.BYTES) SignatureDigest getSignature(); /** @@ -45,6 +45,6 @@ public interface ClientIdentification { * * @return */ - @DataField(order = 3, primitiveType = ValueType.TEXT) + @DataField(order = 3, primitiveType = PrimitiveType.TEXT) String getProviderName(); } diff --git a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIdentifications.java b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIdentifications.java index 8d23135a..7fe4aa92 100644 --- a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIdentifications.java +++ b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIdentifications.java @@ -10,7 +10,7 @@ package com.jd.blockchain.consensus; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; /** * @@ -18,7 +18,7 @@ import com.jd.blockchain.consts.TypeCodes; * @create 2018/12/19 * @since 1.0.0 */ -@DataContract(code = TypeCodes.CLIENT_IDENTIFICATIONS) +@DataContract(code = DataCodes.CLIENT_IDENTIFICATIONS) public interface ClientIdentifications { @DataField(order = 0, list = true, refContract = true, genericContract = true) diff --git a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIncomingSettings.java b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIncomingSettings.java index 3585c613..a879a54a 100644 --- a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIncomingSettings.java +++ b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ClientIncomingSettings.java @@ -2,8 +2,8 @@ package com.jd.blockchain.consensus; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; /** * 共识网络的客户接入参数; @@ -11,7 +11,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code = TypeCodes.CONSENSUS_CLI_INCOMING_SETTINGS) +@DataContract(code = DataCodes.CONSENSUS_CLI_INCOMING_SETTINGS) public interface ClientIncomingSettings { /** @@ -19,7 +19,7 @@ public interface ClientIncomingSettings { * * @return */ - @DataField(order = 0, primitiveType = ValueType.INT32) + @DataField(order = 0, primitiveType = PrimitiveType.INT32) int getClientId(); /** @@ -27,7 +27,7 @@ public interface ClientIncomingSettings { * * @return */ - @DataField(order = 1, primitiveType = ValueType.TEXT) + @DataField(order = 1, primitiveType = PrimitiveType.TEXT) String getProviderName(); /** diff --git a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ConsensusSettings.java b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ConsensusSettings.java index b7849625..b75996f5 100644 --- a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ConsensusSettings.java +++ b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/ConsensusSettings.java @@ -2,7 +2,7 @@ package com.jd.blockchain.consensus; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; /** * 共识网络的配置参数; @@ -10,7 +10,7 @@ import com.jd.blockchain.consts.TypeCodes; * @author huanghaiquan * */ -@DataContract(code = TypeCodes.CONSENSUS_SETTINGS) +@DataContract(code = DataCodes.CONSENSUS_SETTINGS) public interface ConsensusSettings { /** diff --git a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/NodeSettings.java b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/NodeSettings.java index a0c7ee66..1c81163f 100644 --- a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/NodeSettings.java +++ b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/NodeSettings.java @@ -2,9 +2,9 @@ package com.jd.blockchain.consensus; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.PubKey; -import com.jd.blockchain.utils.ValueType; /** * 节点的配置参数; @@ -12,7 +12,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code=TypeCodes.CONSENSUS_NODE_SETTINGS) +@DataContract(code=DataCodes.CONSENSUS_NODE_SETTINGS) public interface NodeSettings { /** @@ -22,7 +22,7 @@ public interface NodeSettings { * * @return */ - @DataField(order=0, primitiveType=ValueType.TEXT) + @DataField(order=0, primitiveType=PrimitiveType.TEXT) String getAddress(); /** @@ -30,6 +30,6 @@ public interface NodeSettings { * * @return */ - @DataField(order = 1, primitiveType = ValueType.BYTES) + @DataField(order = 1, primitiveType = PrimitiveType.BYTES) PubKey getPubKey(); } diff --git a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/action/ActionRequest.java b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/action/ActionRequest.java index 694d7326..731ffef7 100644 --- a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/action/ActionRequest.java +++ b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/action/ActionRequest.java @@ -2,27 +2,27 @@ package com.jd.blockchain.consensus.action; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; -@DataContract(code= TypeCodes.CONSENSUS_ACTION_REQUEST) +@DataContract(code= DataCodes.CONSENSUS_ACTION_REQUEST) public interface ActionRequest { - @DataField(order=1, list=true, primitiveType= ValueType.INT8) + @DataField(order=1, list=true, primitiveType= PrimitiveType.INT8) byte[] getGroupId(); - @DataField(order=2, primitiveType=ValueType.TEXT) + @DataField(order=2, primitiveType=PrimitiveType.TEXT) String getHandleType(); - @DataField(order=3, primitiveType=ValueType.TEXT) + @DataField(order=3, primitiveType=PrimitiveType.TEXT) String getHandleMethod(); // String getMessageType(); - @DataField(order=4, list=true, primitiveType= ValueType.INT8) + @DataField(order=4, list=true, primitiveType= PrimitiveType.INT8) byte[] getMessageBody(); - @DataField(order=5, primitiveType= ValueType.TEXT) + @DataField(order=5, primitiveType= PrimitiveType.TEXT) String getTransactionType(); // String getReponseType(); diff --git a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/action/ActionResponse.java b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/action/ActionResponse.java index 1ba34d01..5e35e911 100644 --- a/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/action/ActionResponse.java +++ b/source/consensus/consensus-framework/src/main/java/com/jd/blockchain/consensus/action/ActionResponse.java @@ -2,22 +2,22 @@ package com.jd.blockchain.consensus.action; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; -@DataContract(code= TypeCodes.CONSENSUS_ACTION_RESPONSE) +@DataContract(code= DataCodes.CONSENSUS_ACTION_RESPONSE) public interface ActionResponse { - @DataField(order=1, list=true, primitiveType= ValueType.INT8) + @DataField(order=1, list=true, primitiveType= PrimitiveType.INT8) byte[] getMessage(); - @DataField(order=2, primitiveType=ValueType.BOOLEAN) + @DataField(order=2, primitiveType=PrimitiveType.BOOLEAN) boolean getError(); - @DataField(order=3, primitiveType=ValueType.TEXT) + @DataField(order=3, primitiveType=PrimitiveType.TEXT) String getErrorMessage(); - @DataField(order=4, primitiveType=ValueType.TEXT) + @DataField(order=4, primitiveType=PrimitiveType.TEXT) String getErrorType(); } \ No newline at end of file diff --git a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/config/MsgQueueSettingsFactory.java b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/config/MsgQueueSettingsFactory.java index e87adb9e..61449436 100644 --- a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/config/MsgQueueSettingsFactory.java +++ b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/config/MsgQueueSettingsFactory.java @@ -8,7 +8,7 @@ */ package com.jd.blockchain.consensus.mq.config; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.consensus.ClientIncomingSettings; import com.jd.blockchain.consensus.ConsensusSettings; @@ -75,14 +75,14 @@ public class MsgQueueSettingsFactory implements SettingsFactory { @Override public byte[] encode(ConsensusSettings data) { if (data instanceof MsgQueueConsensusSettings) { - return BinaryEncodingUtils.encode(data, MsgQueueConsensusSettings.class); + return BinaryProtocol.encode(data, MsgQueueConsensusSettings.class); } throw new IllegalArgumentException("Settings data isn't supported! Accept MsgQueueConsensusSettings only!"); } @Override public MsgQueueConsensusSettings decode(byte[] bytes) { - return BinaryEncodingUtils.decodeAs(bytes, MsgQueueConsensusSettings.class); + return BinaryProtocol.decodeAs(bytes, MsgQueueConsensusSettings.class); } } @@ -91,14 +91,14 @@ public class MsgQueueSettingsFactory implements SettingsFactory { @Override public byte[] encode(ClientIncomingSettings data) { if (data instanceof MsgQueueClientIncomingSettings) { - return BinaryEncodingUtils.encode(data, MsgQueueClientIncomingSettings.class); + return BinaryProtocol.encode(data, MsgQueueClientIncomingSettings.class); } throw new IllegalArgumentException("Settings data isn't supported! Accept MsgQueueClientIncomingSettings only!"); } @Override public MsgQueueClientIncomingSettings decode(byte[] bytes) { - return BinaryEncodingUtils.decodeAs(bytes, MsgQueueClientIncomingSettings.class); + return BinaryProtocol.decodeAs(bytes, MsgQueueClientIncomingSettings.class); } } diff --git a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueBlockSettings.java b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueBlockSettings.java index e2edaa7b..80832ca7 100644 --- a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueBlockSettings.java +++ b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueBlockSettings.java @@ -10,8 +10,8 @@ package com.jd.blockchain.consensus.mq.settings; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; /** * @@ -19,12 +19,12 @@ import com.jd.blockchain.utils.ValueType; * @create 2018/12/13 * @since 1.0.0 */ -@DataContract(code = TypeCodes.CONSENSUS_MSGQUEUE_BLOCK_SETTINGS) +@DataContract(code = DataCodes.CONSENSUS_MSGQUEUE_BLOCK_SETTINGS) public interface MsgQueueBlockSettings { - @DataField(order = 0, primitiveType = ValueType.INT32) + @DataField(order = 0, primitiveType = PrimitiveType.INT32) int getTxSizePerBlock(); - @DataField(order = 1, primitiveType = ValueType.INT64) + @DataField(order = 1, primitiveType = PrimitiveType.INT64) long getMaxDelayMilliSecondsPerBlock(); } \ No newline at end of file diff --git a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueClientIncomingSettings.java b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueClientIncomingSettings.java index e0cb03d1..09d2c882 100644 --- a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueClientIncomingSettings.java +++ b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueClientIncomingSettings.java @@ -10,11 +10,11 @@ package com.jd.blockchain.consensus.mq.settings; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.consensus.ClientIncomingSettings; import com.jd.blockchain.consensus.ConsensusSettings; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.PubKey; -import com.jd.blockchain.utils.ValueType; /** * @@ -22,9 +22,9 @@ import com.jd.blockchain.utils.ValueType; * @create 2018/12/13 * @since 1.0.0 */ -@DataContract(code = TypeCodes.CONSENSUS_MSGQUEUE_CLI_INCOMING_SETTINGS) +@DataContract(code = DataCodes.CONSENSUS_MSGQUEUE_CLI_INCOMING_SETTINGS) public interface MsgQueueClientIncomingSettings extends ClientIncomingSettings { - @DataField(order = 1, primitiveType=ValueType.BYTES) + @DataField(order = 1, primitiveType=PrimitiveType.BYTES) PubKey getPubKey(); } \ No newline at end of file diff --git a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueConsensusSettings.java b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueConsensusSettings.java index d4e9e648..80cadcd7 100644 --- a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueConsensusSettings.java +++ b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueConsensusSettings.java @@ -10,11 +10,11 @@ package com.jd.blockchain.consensus.mq.settings; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.consensus.ConsensusSettings; import com.jd.blockchain.consensus.mq.config.MsgQueueBlockConfig; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.utils.Property; -import com.jd.blockchain.utils.ValueType; /** * @@ -22,7 +22,7 @@ import com.jd.blockchain.utils.ValueType; * @create 2018/12/13 * @since 1.0.0 */ -@DataContract(code = TypeCodes.CONSENSUS_MSGQUEUE_SETTINGS) +@DataContract(code = DataCodes.CONSENSUS_MSGQUEUE_SETTINGS) public interface MsgQueueConsensusSettings extends ConsensusSettings { @DataField(order = 0, refContract = true) diff --git a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueNetworkSettings.java b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueNetworkSettings.java index fea1690e..0bfd5061 100644 --- a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueNetworkSettings.java +++ b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueNetworkSettings.java @@ -10,8 +10,8 @@ package com.jd.blockchain.consensus.mq.settings; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; /** * @@ -19,18 +19,18 @@ import com.jd.blockchain.utils.ValueType; * @create 2018/12/12 * @since 1.0.0 */ -@DataContract(code = TypeCodes.CONSENSUS_MSGQUEUE_NETWORK_SETTINGS) +@DataContract(code = DataCodes.CONSENSUS_MSGQUEUE_NETWORK_SETTINGS) public interface MsgQueueNetworkSettings { - @DataField(order = 0, primitiveType = ValueType.TEXT) + @DataField(order = 0, primitiveType = PrimitiveType.TEXT) String getServer(); - @DataField(order = 1, primitiveType = ValueType.TEXT) + @DataField(order = 1, primitiveType = PrimitiveType.TEXT) String getTxTopic(); - @DataField(order = 2, primitiveType = ValueType.TEXT) + @DataField(order = 2, primitiveType = PrimitiveType.TEXT) String getBlTopic(); - @DataField(order = 3, primitiveType = ValueType.TEXT) + @DataField(order = 3, primitiveType = PrimitiveType.TEXT) String getMsgTopic(); } \ No newline at end of file diff --git a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueNodeSettings.java b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueNodeSettings.java index acfeb22b..9bd2a159 100644 --- a/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueNodeSettings.java +++ b/source/consensus/consensus-mq/src/main/java/com/jd/blockchain/consensus/mq/settings/MsgQueueNodeSettings.java @@ -10,7 +10,7 @@ package com.jd.blockchain.consensus.mq.settings; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.consensus.NodeSettings; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; /** * @@ -19,7 +19,7 @@ import com.jd.blockchain.consts.TypeCodes; * @since 1.0.0 */ -@DataContract(code=TypeCodes.CONSENSUS_MSGQUEUE_NODE_SETTINGS) +@DataContract(code=DataCodes.CONSENSUS_MSGQUEUE_NODE_SETTINGS) public interface MsgQueueNodeSettings extends NodeSettings { } \ No newline at end of file diff --git a/source/contract/README.MD b/source/contract/README.MD index 15b32c0d..9e940486 100644 --- a/source/contract/README.MD +++ b/source/contract/README.MD @@ -1,22 +1,27 @@ -合约相关说明 - -1.编译合约入口:ContractCompilerCmdTest.java; -2.账本调用合约测试入口:ContractEventSendOperationHandleTest.java; +### 合约相关说明 +1. 编译合约入口:ContractCompilerCmdTest.java; +2. 账本调用合约测试入口:ContractEventSendOperationHandleTest.java; +### 单元测试注意事项 使用ContractEventSendOperationHandleTest.java进行单元测试,注意事项: -1.设置合约使用PUB_CLASS_PATH、CORE_CLASS_PATH位置(sys-contract.properties); +1. 设置合约使用PUB_CLASS_PATH、CORE_CLASS_PATH位置(sys-contract.properties); PUB包在根目录中的contract-libs文件夹;core包需要编译来生成。具体如下: -1)进入contract-jar模块,执行maven命令:mvn clean assembly:assembly -2)生成的core包位于模块的target中的contract-jar-xxx所在的coreLib中; -3)将此coreLib目录作为CORE_CLASS_PATH指向的目录。 -2.编译生成合约压缩包,即执行:ContractCompilerCmdTest.java对应的mainTestOk(); + - 进入contract-jar模块,执行maven命令: + ``` + mvn clean assembly:assembly + ``` + - 生成的core包位于模块的target中的contract-jar-xxx所在的coreLib中; + - 将此coreLib目录作为CORE_CLASS_PATH指向的目录。 +2. 编译生成合约压缩包,即执行:ContractCompilerCmdTest.java对应的mainTestOk(); 在编译之前,修改sys-contract.properties文件的变量CONTRACT_FROM_PATH(合约源文件位置)、CONTRACT_SAVE_TO_PATH(合约保存位置)。 -3.在合约保存位置中可看到生成的压缩包:xxx.contract;然后执行 ContractEventSendOperationHandleTest.java测试用例test1()即可。 - -20180910版本改造 -1.在contract-jar中添加了mvn assembly处理逻辑,将合约用到的lib包全部放置其target/xxx/pubLib文件夹中,执行:mvn clean assembly:assembly -2.修改了sys-contract.properties文件,新增了CONTRACT_CLASS_LIBS参数,将CONTRACT_CLASS_PATH专用于存储路径,CONTRACT_CLASS_LIBS来存放所有的jar包; -3.删减了contract-libs文件夹中需要动态生成的jar; - - +3. 在合约保存位置中可看到生成的压缩包:xxx.contract;然后执行 ContractEventSendOperationHandleTest.java测试用例test1()即可。 +### 20180910版本改造 +1. 在contract-jar中添加了mvn assembly处理逻辑,将合约用到的lib包全部放置其target/xxx/pubLib文件夹中,执行: +``` +mvn clean assembly:assembly +``` +2. 修改了sys-contract.properties文件,新增了CONTRACT_CLASS_LIBS参数; + - 将CONTRACT_CLASS_PATH专用于存储路径 + - CONTRACT_CLASS_LIBS来存放所有的jar包 +3. 删减了contract-libs文件夹中需要动态生成的jar。 diff --git a/source/contract/contract-framework/pom.xml b/source/contract/contract-framework/pom.xml index 9f449374..83d1cf06 100644 --- a/source/contract/contract-framework/pom.xml +++ b/source/contract/contract-framework/pom.xml @@ -12,7 +12,7 @@ com.jd.blockchain - contract-model + ledger-model ${project.version} @@ -27,7 +27,6 @@ org.apache.maven.plugins maven-deploy-plugin - 2.8.2 true diff --git a/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractCode.java b/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractCode.java deleted file mode 100644 index 5590cabb..00000000 --- a/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractCode.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.jd.blockchain.contract; - -import com.jd.blockchain.contract.model.ContractEventContext; - -public interface ContractCode { - - String getAddress(); - - long getVersion(); - - void processEvent(ContractEventContext eventContext); - -} diff --git a/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractCode.java b/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractCode.java new file mode 100644 index 00000000..891acd4c --- /dev/null +++ b/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractCode.java @@ -0,0 +1,14 @@ +package com.jd.blockchain.contract.engine; + +import com.jd.blockchain.contract.ContractEventContext; +import com.jd.blockchain.utils.Bytes; + +public interface ContractCode { + + Bytes getAddress(); + + long getVersion(); + + void processEvent(ContractEventContext eventContext); + +} diff --git a/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractEngine.java b/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractEngine.java similarity index 64% rename from source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractEngine.java rename to source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractEngine.java index 09f7b416..3f5a21c1 100644 --- a/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractEngine.java +++ b/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractEngine.java @@ -1,4 +1,6 @@ -package com.jd.blockchain.contract; +package com.jd.blockchain.contract.engine; + +import com.jd.blockchain.utils.Bytes; /** * 合约引擎; @@ -16,7 +18,7 @@ public interface ContractEngine { * @param address * @return */ - ContractCode getContract(String address, long version); + ContractCode getContract(Bytes address, long version); /** * 装入合约代码;
@@ -27,6 +29,6 @@ public interface ContractEngine { * @param code * @return */ - ContractCode setupContract(String address, long version, byte[] code); + ContractCode setupContract(Bytes address, long version, byte[] code); } diff --git a/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractServiceProvider.java b/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractServiceProvider.java similarity index 79% rename from source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractServiceProvider.java rename to source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractServiceProvider.java index ae8a0d00..753efd2f 100644 --- a/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractServiceProvider.java +++ b/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractServiceProvider.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract; +package com.jd.blockchain.contract.engine; public interface ContractServiceProvider { diff --git a/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractServiceProviders.java b/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractServiceProviders.java similarity index 96% rename from source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractServiceProviders.java rename to source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractServiceProviders.java index f0a6ba37..146dffa6 100644 --- a/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/ContractServiceProviders.java +++ b/source/contract/contract-framework/src/main/java/com/jd/blockchain/contract/engine/ContractServiceProviders.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract; +package com.jd.blockchain.contract.engine; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JVMContractEngine.java b/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JVMContractEngine.java index 6769b618..ea1ee9fa 100644 --- a/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JVMContractEngine.java +++ b/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JVMContractEngine.java @@ -1,21 +1,21 @@ package com.jd.blockchain.contract.jvm; -import com.jd.blockchain.contract.ContractCode; -import com.jd.blockchain.contract.ContractEngine; +import com.jd.blockchain.contract.engine.ContractCode; +import com.jd.blockchain.contract.engine.ContractEngine; import com.jd.blockchain.runtime.Module; import com.jd.blockchain.runtime.RuntimeContext; +import com.jd.blockchain.utils.Bytes; public class JVMContractEngine implements ContractEngine { private RuntimeContext runtimeContext = RuntimeContext.get(); -// private RuntimeContext runtimeContext = ModularRuntimeContext.setup(System.getProperty("user.dir")); - private String getCodeName(String address, long version) { - return address + "_" + version; + private String getCodeName(Bytes address, long version) { + return address.toBase58() + "_" + version; } @Override - public ContractCode getContract(String address, long version) { + public ContractCode getContract(Bytes address, long version) { String codeName = getCodeName(address, version); Module module = runtimeContext.getDynamicModule(codeName); if (module == null) { @@ -25,7 +25,7 @@ public class JVMContractEngine implements ContractEngine { } @Override - public ContractCode setupContract(String address, long version, byte[] code) { + public ContractCode setupContract(Bytes address, long version, byte[] code) { //is there the contractCode before setup? if yes ,then return; ContractCode contractCode = getContract(address,version); if(contractCode != null){ diff --git a/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JVMContractServiceProvider.java b/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JVMContractServiceProvider.java index 859c25c7..013537bf 100644 --- a/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JVMContractServiceProvider.java +++ b/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JVMContractServiceProvider.java @@ -1,7 +1,7 @@ package com.jd.blockchain.contract.jvm; -import com.jd.blockchain.contract.ContractEngine; -import com.jd.blockchain.contract.ContractServiceProvider; +import com.jd.blockchain.contract.engine.ContractEngine; +import com.jd.blockchain.contract.engine.ContractServiceProvider; public class JVMContractServiceProvider implements ContractServiceProvider { @Override diff --git a/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JavaContractCode.java b/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JavaContractCode.java index 147b6a26..90f68d5a 100644 --- a/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JavaContractCode.java +++ b/source/contract/contract-jvm/src/main/java/com/jd/blockchain/contract/jvm/JavaContractCode.java @@ -1,22 +1,20 @@ package com.jd.blockchain.contract.jvm; -import com.jd.blockchain.contract.ContractCode; -import com.jd.blockchain.contract.model.ContractEvent; -import com.jd.blockchain.contract.model.ContractEventContext; -import com.jd.blockchain.runtime.Module; -import com.jd.blockchain.utils.BaseConstant; +import java.lang.annotation.Annotation; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.ReflectionUtils; -import static com.jd.blockchain.utils.BaseConstant.CONTRACT_MAIN_CLASS_KEY; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; +import com.jd.blockchain.contract.ContractEvent; +import com.jd.blockchain.contract.ContractEventContext; +import com.jd.blockchain.contract.engine.ContractCode; +import com.jd.blockchain.runtime.Module; +import com.jd.blockchain.utils.BaseConstant; +import com.jd.blockchain.utils.Bytes; /** * contract code based jvm @@ -25,18 +23,18 @@ import java.util.Properties; public class JavaContractCode implements ContractCode { private static final Logger LOGGER = LoggerFactory.getLogger(JavaContractCode.class); private Module codeModule; - private String address; + private Bytes address; private long version; private ContractEventContext contractEventContext; - public JavaContractCode(String address, long version, Module codeModule) { + public JavaContractCode(Bytes address, long version, Module codeModule) { this.address = address; this.version = version; this.codeModule = codeModule; } @Override - public String getAddress() { + public Bytes getAddress() { return address; } diff --git a/source/contract/contract-maven-plugin/pom.xml b/source/contract/contract-maven-plugin/pom.xml index c8c11adb..0a357e52 100644 --- a/source/contract/contract-maven-plugin/pom.xml +++ b/source/contract/contract-maven-plugin/pom.xml @@ -9,32 +9,33 @@ contract-maven-plugin maven-plugin - - ${parent.version} - ${parent.version} - 4.12 - - 0.9.0-SNAPSHOT - junit - junit - test + com.jd.blockchain + ledger-model + ${project.version} com.jd.blockchain - contract-model - ${contract.version} + utils-common + ${project.version} com.jd.blockchain - utils-common - ${utils.version} + sdk-client + ${project.version} + + + + com.jd.blockchain + tools-keygen + ${project.version} + org.apache.maven.plugin-tools @@ -83,29 +84,30 @@ false
- - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + org.apache.maven.plugins diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractDeployExeUtil.java b/source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployExeUtil.java similarity index 85% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractDeployExeUtil.java rename to source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployExeUtil.java index 820668e4..a206a854 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractDeployExeUtil.java +++ b/source/contract/contract-maven-plugin/src/main/java/com/jd/blockchain/ContractDeployExeUtil.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain; import java.io.File; import java.io.FileInputStream; @@ -160,25 +160,28 @@ public enum ContractDeployExeUtil { return deploy(ledgerHash, contractIdentity, ownerKey, chainCode); } - public boolean exeContract(String ledger,String ownerPubPath, String ownerPrvPath, - String ownerPassword,String event,String contractArgs){ - BlockchainKeypair ownerKey = getKeyPair(ownerPubPath, ownerPrvPath, ownerPassword); - HashDigest ledgerHash = new HashDigest(Base58Utils.decode(ledger)); - - // 定义交易,传输最简单的数字、字符串、提取合约中的地址; - TransactionTemplate txTpl = bcsrv.newTransaction(ledgerHash); - txTpl.contractEvents().send(getContractAddress(),event,contractArgs.getBytes()); - - // 签名; - PreparedTransaction ptx = txTpl.prepare(); - ptx.sign(ownerKey); - - // 提交并等待共识返回; - TransactionResponse txResp = ptx.commit(); - - // 验证结果; - return txResp.isSuccess(); - } + +// 暂不支持从插件执行合约;此外,由于合约参数调用的格式发生变化,故此方法被废弃;by: huanghaiquan at 2019-04-30; + +// public boolean exeContract(String ledger,String ownerPubPath, String ownerPrvPath, +// String ownerPassword,String event,String contractArgs){ +// BlockchainKeypair ownerKey = getKeyPair(ownerPubPath, ownerPrvPath, ownerPassword); +// HashDigest ledgerHash = new HashDigest(Base58Utils.decode(ledger)); +// +// // 定义交易,传输最简单的数字、字符串、提取合约中的地址; +// TransactionTemplate txTpl = bcsrv.newTransaction(ledgerHash); +// txTpl.contractEvents().send(getContractAddress(),event,contractArgs.getBytes()); +// +// // 签名; +// PreparedTransaction ptx = txTpl.prepare(); +// ptx.sign(ownerKey); +// +// // 提交并等待共识返回; +// TransactionResponse txResp = ptx.commit(); +// +// // 验证结果; +// return txResp.isSuccess(); +// } public Bytes getContractAddress() { return contractAddress; 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 d942c165..80be911f 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,6 +1,5 @@ package com.jd.blockchain; -import com.jd.blockchain.contract.model.ContractDeployExeUtil; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.PrivKey; import com.jd.blockchain.crypto.PubKey; diff --git a/source/contract/contract-model/pom.xml b/source/contract/contract-model/pom.xml deleted file mode 100644 index 6a5da9c5..00000000 --- a/source/contract/contract-model/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - 4.0.0 - - com.jd.blockchain - contract - 0.9.0-SNAPSHOT - - contract-model - - - - com.jd.blockchain - sdk-client - ${project.version} - - - - com.jd.blockchain - tools-keygen - ${project.version} - - - crypto-framework - com.jd.blockchain - - - - - - - - - - - \ No newline at end of file diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/LedgerContext.java b/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/LedgerContext.java deleted file mode 100644 index 5f2fbcbc..00000000 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/LedgerContext.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.jd.blockchain.contract.model; - -import com.jd.blockchain.ledger.data.DataAccountOperator; -import com.jd.blockchain.ledger.data.UserOperator; -import com.jd.blockchain.sdk.BlockchainQueryService; - -public interface LedgerContext extends BlockchainQueryService, UserOperator, DataAccountOperator{ - - - -} diff --git a/source/contract/contract-model/src/main/resources/sys-contract.properties b/source/contract/contract-model/src/main/resources/sys-contract.properties deleted file mode 100644 index e8aee795..00000000 --- a/source/contract/contract-model/src/main/resources/sys-contract.properties +++ /dev/null @@ -1,7 +0,0 @@ -#项目源文件存放的位置; -PROJECT_BASE_DIR=e:\\gitCode\\block\\prototype\\ -#合同使用的类库存放的位置,可能不在项目中,故采用全新的地址; -LEDGER_BASE_CLASS_PATH=e:\\gitCode\\block\\prototype\\libs\\ -BLACKLIST=java.io;java.net;java.util.Random -#type:public,private -CONTRACT_CLASSLOADER_TYPE=private \ No newline at end of file diff --git a/source/contract/pom.xml b/source/contract/pom.xml index 39cbad89..835b06aa 100644 --- a/source/contract/pom.xml +++ b/source/contract/pom.xml @@ -10,7 +10,6 @@ pom - contract-model contract-framework contract-jvm contract-maven-plugin diff --git a/source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/CryptoAlgorithm.java b/source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/CryptoAlgorithm.java index 19688f65..ec8ed272 100644 --- a/source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/CryptoAlgorithm.java +++ b/source/crypto/crypto-framework/src/main/java/com/jd/blockchain/crypto/CryptoAlgorithm.java @@ -5,11 +5,11 @@ import java.io.OutputStream; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.utils.io.BytesUtils; -@DataContract(code = TypeCodes.CRYPTO_ALGORITHM) +@DataContract(code = DataCodes.CRYPTO_ALGORITHM) public interface CryptoAlgorithm { /** @@ -63,7 +63,7 @@ public interface CryptoAlgorithm { * {@link #EXT_ALGORITHM}) 5 种); 接下来4位标识密钥类型(包括:{@link #SYMMETRIC_KEY}, * {@link #ASYMMETRIC_KEY}); 最后8位是算法唯一ID; */ - @DataField(primitiveType = ValueType.INT16, order = 0) + @DataField(primitiveType = PrimitiveType.INT16, order = 0) short code(); /** diff --git a/source/gateway/src/main/java/com/jd/blockchain/gateway/PeerService.java b/source/gateway/src/main/java/com/jd/blockchain/gateway/PeerService.java index 38039582..b3fd6065 100644 --- a/source/gateway/src/main/java/com/jd/blockchain/gateway/PeerService.java +++ b/source/gateway/src/main/java/com/jd/blockchain/gateway/PeerService.java @@ -1,7 +1,7 @@ package com.jd.blockchain.gateway; -import com.jd.blockchain.ledger.data.TransactionService; -import com.jd.blockchain.sdk.BlockchainQueryService; +import com.jd.blockchain.transaction.BlockchainQueryService; +import com.jd.blockchain.transaction.TransactionService; public interface PeerService { diff --git a/source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java b/source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java index 443b1208..ba17036b 100644 --- a/source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java +++ b/source/gateway/src/main/java/com/jd/blockchain/gateway/service/PeerConnectionManager.java @@ -7,9 +7,9 @@ import org.springframework.stereotype.Component; import com.jd.blockchain.crypto.AsymmetricKeypair; import com.jd.blockchain.gateway.PeerConnector; import com.jd.blockchain.gateway.PeerService; -import com.jd.blockchain.ledger.data.TransactionService; -import com.jd.blockchain.sdk.BlockchainQueryService; import com.jd.blockchain.sdk.service.PeerBlockchainServiceFactory; +import com.jd.blockchain.transaction.BlockchainQueryService; +import com.jd.blockchain.transaction.TransactionService; import com.jd.blockchain.utils.net.NetworkAddress; import java.util.List; diff --git a/source/gateway/src/main/java/com/jd/blockchain/gateway/web/TxProcessingController.java b/source/gateway/src/main/java/com/jd/blockchain/gateway/web/TxProcessingController.java index 02ac7fc6..3ee571d9 100644 --- a/source/gateway/src/main/java/com/jd/blockchain/gateway/web/TxProcessingController.java +++ b/source/gateway/src/main/java/com/jd/blockchain/gateway/web/TxProcessingController.java @@ -7,7 +7,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.SignatureFunction; @@ -16,7 +16,7 @@ import com.jd.blockchain.ledger.DigitalSignature; import com.jd.blockchain.ledger.TransactionContent; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; -import com.jd.blockchain.ledger.data.TransactionService; +import com.jd.blockchain.transaction.TransactionService; import com.jd.blockchain.utils.BusinessException; import com.jd.blockchain.web.converters.BinaryMessageConverter; @@ -53,7 +53,7 @@ public class TxProcessingController implements TransactionService { throw new IllegalStateException("Not implemented!"); } else { // 验证签名; - byte[] content = BinaryEncodingUtils.encode(txRequest.getTransactionContent(), TransactionContent.class); + byte[] content = BinaryProtocol.encode(txRequest.getTransactionContent(), TransactionContent.class); for (DigitalSignature sign : partiSigns) { SignatureFunction signFunc = Crypto .getSignatureFunction(sign.getPubKey().getAlgorithm()); 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 42904f14..19b195f1 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 @@ -3,7 +3,7 @@ package com.jd.blockchain.ledger.core; import java.util.HashMap; import java.util.Map; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.AddressEncoding; import com.jd.blockchain.crypto.HashDigest; @@ -99,7 +99,7 @@ public class AccountSet implements Transactional, MerkleProvable { // } private AccountHeader deserialize(byte[] txBytes) { - return BinaryEncodingUtils.decode(txBytes); + return BinaryProtocol.decode(txBytes); } /** @@ -289,13 +289,13 @@ public class AccountSet implements Transactional, MerkleProvable { private VersioningAccount deserialize(byte[] bytes, CryptoSetting cryptoSetting, String keyPrefix, ExPolicyKVStorage exStorage, VersioningKVStorage verStorage, boolean readonly, long version) { - AccountHeader accInfo = BinaryEncodingUtils.decode(bytes); + AccountHeader accInfo = BinaryProtocol.decode(bytes); return new VersioningAccount(accInfo.getAddress(), accInfo.getPubKey(), accInfo.getRootHash(), cryptoSetting, keyPrefix, exStorage, verStorage, readonly, accessPolicy, version); } private byte[] serialize(AccountHeader account) { - return BinaryEncodingUtils.encode(account, AccountHeader.class); + return BinaryProtocol.encode(account, AccountHeader.class); } @Override diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ContractAccount.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ContractAccount.java index 06817550..323960f3 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ContractAccount.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ContractAccount.java @@ -8,11 +8,8 @@ import com.jd.blockchain.utils.io.BytesUtils; public class ContractAccount implements AccountHeader { - // private static final String CONTRACT_INFO_PREFIX = "INFO" + - // LedgerConsts.KEY_SEPERATOR; private static final Bytes CONTRACT_INFO_PREFIX = Bytes.fromString("INFO" + LedgerConsts.KEY_SEPERATOR); - // private static final String CHAIN_CODE_KEY = "CHAIN-CODE"; private static final Bytes CHAIN_CODE_KEY = Bytes.fromString("CHAIN-CODE"); private BaseAccount accBase; @@ -74,7 +71,6 @@ public class ContractAccount implements AccountHeader { private Bytes encodePropertyKey(Bytes key) { return CONTRACT_INFO_PREFIX.concat(key); -// return key.concatTo(CONTRACT_INFO_PREFIX); } } \ No newline at end of file diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/DataAccount.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/DataAccount.java index dfe09bae..aa51901a 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/DataAccount.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/DataAccount.java @@ -1,6 +1,7 @@ package com.jd.blockchain.ledger.core; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.PubKey; import com.jd.blockchain.ledger.AccountHeader; @@ -8,7 +9,6 @@ import com.jd.blockchain.ledger.BytesValue; import com.jd.blockchain.ledger.KVDataEntry; import com.jd.blockchain.ledger.KVDataObject; import com.jd.blockchain.utils.Bytes; -import com.jd.blockchain.utils.ValueType; import com.jd.blockchain.utils.serialize.binary.BinarySerializeUtils; public class DataAccount implements AccountHeader, MerkleProvable { @@ -141,8 +141,8 @@ public class DataAccount implements AccountHeader, MerkleProvable { value = baseAccount.dataset.getValuesAtIndex(fromIndex); key = baseAccount.dataset.getKeyAtIndex(fromIndex); ver = baseAccount.dataset.getVersion(key); - BytesValue decodeData = BinaryEncodingUtils.decode(value); - kvDataEntries[i] = new KVDataObject(key, ver, ValueType.valueOf(decodeData.getType().CODE), decodeData.getValue().toBytes()); + BytesValue decodeData = BinaryProtocol.decode(value); + kvDataEntries[i] = new KVDataObject(key, ver, PrimitiveType.valueOf(decodeData.getType().CODE), decodeData.getValue().toBytes()); fromIndex++; } diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerAdminAccount.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerAdminAccount.java index 32ba3090..68f77f29 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerAdminAccount.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerAdminAccount.java @@ -3,7 +3,7 @@ package com.jd.blockchain.ledger.core; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; @@ -288,11 +288,11 @@ public class LedgerAdminAccount implements Transactional, LedgerAdministration { } private LedgerMetadata deserializeMetadata(byte[] bytes) { - return BinaryEncodingUtils.decode(bytes); + return BinaryProtocol.decode(bytes); } private byte[] serializeMetadata(LedgerMetadataImpl config) { - return BinaryEncodingUtils.encode(config, LedgerMetadata.class); + return BinaryProtocol.encode(config, LedgerMetadata.class); } @Override diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitDecision.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitDecision.java index ac1387b0..4810d601 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitDecision.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitDecision.java @@ -2,10 +2,10 @@ package com.jd.blockchain.ledger.core; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.SignatureDigest; -import com.jd.blockchain.utils.ValueType; /** * 账本初始化决定; @@ -13,7 +13,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code = TypeCodes.METADATA_INIT_DECISION) +@DataContract(code = DataCodes.METADATA_INIT_DECISION) public interface LedgerInitDecision { /** @@ -21,14 +21,14 @@ public interface LedgerInitDecision { * * @return */ - @DataField(order=1, primitiveType=ValueType.INT32) + @DataField(order=1, primitiveType=PrimitiveType.INT32) int getParticipantId(); /** * 新建账本的哈希; * @return */ - @DataField(order=2, primitiveType = ValueType.BYTES) + @DataField(order=2, primitiveType = PrimitiveType.BYTES) HashDigest getLedgerHash(); /** @@ -40,7 +40,7 @@ public interface LedgerInitDecision { * * @return */ - @DataField(order=3, primitiveType = ValueType.BYTES) + @DataField(order=3, primitiveType = PrimitiveType.BYTES) SignatureDigest getSignature(); } diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitPermission.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitPermission.java index 7c2297ae..7ca9e15c 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitPermission.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerInitPermission.java @@ -2,10 +2,10 @@ package com.jd.blockchain.ledger.core; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.SignatureDigest; import com.jd.blockchain.ledger.LedgerInitOperation; -import com.jd.blockchain.utils.ValueType; /** * 账本初始化许可; @@ -13,7 +13,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code = TypeCodes.METADATA_INIT_PERMISSION) +@DataContract(code = DataCodes.METADATA_INIT_PERMISSION) public interface LedgerInitPermission { /** @@ -21,7 +21,7 @@ public interface LedgerInitPermission { * * @return */ - @DataField(order = 1, primitiveType = ValueType.INT32) + @DataField(order = 1, primitiveType = PrimitiveType.INT32) int getParticipantId(); /** @@ -39,7 +39,7 @@ public interface LedgerInitPermission { * * @return */ - @DataField(order = 2, primitiveType = ValueType.BYTES) + @DataField(order = 2, primitiveType = PrimitiveType.BYTES) SignatureDigest getTransactionSignature(); } diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerMetadata.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerMetadata.java index c0536716..4e8f05e5 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerMetadata.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerMetadata.java @@ -2,11 +2,11 @@ package com.jd.blockchain.ledger.core; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.utils.ValueType; -@DataContract(code = TypeCodes.METADATA) +@DataContract(code = DataCodes.METADATA) public interface LedgerMetadata { /** @@ -14,7 +14,7 @@ public interface LedgerMetadata { * * @return */ - @DataField(order = 1, primitiveType = ValueType.BYTES) + @DataField(order = 1, primitiveType = PrimitiveType.BYTES) byte[] getSeed(); /** @@ -22,7 +22,7 @@ public interface LedgerMetadata { * * @return */ - @DataField(order = 2, primitiveType = ValueType.BYTES) + @DataField(order = 2, primitiveType = PrimitiveType.BYTES) HashDigest getParticipantsHash(); /** diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerSetting.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerSetting.java index eba16465..21ce0565 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerSetting.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerSetting.java @@ -2,18 +2,18 @@ package com.jd.blockchain.ledger.core; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.ledger.CryptoSetting; import com.jd.blockchain.utils.Bytes; -import com.jd.blockchain.utils.ValueType; -@DataContract(code = TypeCodes.METADATA_LEDGER_SETTING) +@DataContract(code = DataCodes.METADATA_LEDGER_SETTING) public interface LedgerSetting { - @DataField(order=0, primitiveType=ValueType.TEXT) + @DataField(order=0, primitiveType=PrimitiveType.TEXT) String getConsensusProvider(); - @DataField(order=1, primitiveType=ValueType.BYTES) + @DataField(order=1, primitiveType=PrimitiveType.BYTES) Bytes getConsensusSetting(); @DataField(order=2, refContract=true) diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ParticipantDataSet.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ParticipantDataSet.java index feb51295..77e94d77 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ParticipantDataSet.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/ParticipantDataSet.java @@ -1,6 +1,6 @@ package com.jd.blockchain.ledger.core; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.ParticipantNode; @@ -65,7 +65,7 @@ public class ParticipantDataSet implements Transactional, MerkleProvable { */ public void addConsensusParticipant(ParticipantNode participant) { Bytes key = encodeKey(participant.getAddress()); - byte[] participantBytes = BinaryEncodingUtils.encode(participant, ParticipantNode.class); + byte[] participantBytes = BinaryProtocol.encode(participant, ParticipantNode.class); long nv = dataset.setValue(key, participantBytes, -1); if (nv < 0) { throw new LedgerException("Participant already exist! --[id=" + key + "]"); @@ -92,7 +92,7 @@ public class ParticipantDataSet implements Transactional, MerkleProvable { if (bytes == null) { return null; } - return BinaryEncodingUtils.decode(bytes); + return BinaryProtocol.decode(bytes); } public ParticipantNode[] getParticipants() { @@ -100,7 +100,7 @@ public class ParticipantDataSet implements Transactional, MerkleProvable { ParticipantNode[] pns = new ParticipantNode[bytes.length]; for (int i = 0; i < pns.length; i++) { - pns[i] = BinaryEncodingUtils.decode(bytes[i]); + pns[i] = BinaryProtocol.decode(bytes[i]); } return pns; } diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/TransactionSet.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/TransactionSet.java index f698e361..09b941d1 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/TransactionSet.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/TransactionSet.java @@ -1,6 +1,6 @@ package com.jd.blockchain.ledger.core; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.CryptoSetting; @@ -142,11 +142,11 @@ public class TransactionSet implements Transactional, MerkleProvable { } private LedgerTransaction deserialize(byte[] txBytes) { - return BinaryEncodingUtils.decode(txBytes); + return BinaryProtocol.decode(txBytes); } private byte[] serialize(LedgerTransaction txRequest) { - return BinaryEncodingUtils.encode(txRequest, LedgerTransaction.class); + return BinaryProtocol.encode(txRequest, LedgerTransaction.class); } public boolean isReadonly() { diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerQueryService.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerQueryService.java index 4b8cd2c2..e7131c5a 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerQueryService.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerQueryService.java @@ -1,13 +1,29 @@ package com.jd.blockchain.ledger.core.impl; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.ledger.*; -import com.jd.blockchain.ledger.core.*; -import com.jd.blockchain.sdk.BlockchainQueryService; +import com.jd.blockchain.ledger.AccountHeader; +import com.jd.blockchain.ledger.BytesValue; +import com.jd.blockchain.ledger.KVDataEntry; +import com.jd.blockchain.ledger.KVDataObject; +import com.jd.blockchain.ledger.LedgerBlock; +import com.jd.blockchain.ledger.LedgerInfo; +import com.jd.blockchain.ledger.LedgerTransaction; +import com.jd.blockchain.ledger.ParticipantNode; +import com.jd.blockchain.ledger.TransactionState; +import com.jd.blockchain.ledger.UserInfo; +import com.jd.blockchain.ledger.core.ContractAccountSet; +import com.jd.blockchain.ledger.core.DataAccount; +import com.jd.blockchain.ledger.core.DataAccountSet; +import com.jd.blockchain.ledger.core.LedgerAdministration; +import com.jd.blockchain.ledger.core.LedgerRepository; +import com.jd.blockchain.ledger.core.LedgerService; +import com.jd.blockchain.ledger.core.TransactionSet; +import com.jd.blockchain.ledger.core.UserAccountSet; +import com.jd.blockchain.transaction.BlockchainQueryService; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.QueryUtil; -import com.jd.blockchain.utils.ValueType; public class LedgerQueryService implements BlockchainQueryService { @@ -255,11 +271,11 @@ public class LedgerQueryService implements BlockchainQueryService { for (int i = 0; i < entries.length; i++) { ver = dataAccount.getDataVersion(Bytes.fromString(keys[i])); if (ver < 0) { - entries[i] = new KVDataObject(keys[i], -1, ValueType.NIL, null); + entries[i] = new KVDataObject(keys[i], -1, PrimitiveType.NIL, null); }else { byte[] value = dataAccount.getBytes(Bytes.fromString(keys[i]), ver); - BytesValue decodeData = BinaryEncodingUtils.decode(value); - entries[i] = new KVDataObject(keys[i], ver, ValueType.valueOf(decodeData.getType().CODE), decodeData.getValue().toBytes()); + BytesValue decodeData = BinaryProtocol.decode(value); + entries[i] = new KVDataObject(keys[i], ver, PrimitiveType.valueOf(decodeData.getType().CODE), decodeData.getValue().toBytes()); } } diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerRepositoryImpl.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerRepositoryImpl.java index 4f6fe856..865f18d0 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerRepositoryImpl.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerRepositoryImpl.java @@ -1,6 +1,6 @@ package com.jd.blockchain.ledger.core.impl; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.HashFunction; @@ -225,11 +225,11 @@ public class LedgerRepositoryImpl implements LedgerRepository { if (block.getHeight() == 0) { // 计算创世区块的 hash 时,不包括 ledgerHash 字段; block.setLedgerHash(null); - blockBodyBytes = BinaryEncodingUtils.encode(block, BlockBody.class); + blockBodyBytes = BinaryProtocol.encode(block, BlockBody.class); // 恢复; block.setLedgerHash(block.getHash()); } else { - blockBodyBytes = BinaryEncodingUtils.encode(block, BlockBody.class); + blockBodyBytes = BinaryProtocol.encode(block, BlockBody.class); } HashFunction hashFunc = Crypto.getHashFunction(blockHash.getAlgorithm()); boolean pass = hashFunc.verify(blockHash, blockBodyBytes); @@ -256,7 +256,7 @@ public class LedgerRepositoryImpl implements LedgerRepository { } private LedgerBlock deserialize(byte[] blockBytes) { - return BinaryEncodingUtils.decode(blockBytes); + return BinaryProtocol.decode(blockBytes); } @Override diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerTransactionalEditor.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerTransactionalEditor.java index 7fe5dd51..4277434d 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerTransactionalEditor.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/LedgerTransactionalEditor.java @@ -2,7 +2,7 @@ package com.jd.blockchain.ledger.core.impl; import java.util.Stack; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.BlockBody; @@ -188,7 +188,7 @@ public class LedgerTransactionalEditor implements LedgerEditor { newlyBlock.setTransactionSetHash(lastTxCtx.txset.getRootHash()); // compute block hash; - byte[] blockBodyBytes = BinaryEncodingUtils.encode(newlyBlock, BlockBody.class); + byte[] blockBodyBytes = BinaryProtocol.encode(newlyBlock, BlockBody.class); HashDigest blockHash = Crypto.getHashFunction(cryptoSetting.getHashAlgorithm()) .hash(blockBodyBytes); newlyBlock.setHash(blockHash); @@ -199,7 +199,7 @@ public class LedgerTransactionalEditor implements LedgerEditor { // persist block bytes; // only one version per block; - byte[] blockBytes = BinaryEncodingUtils.encode(newlyBlock, LedgerBlock.class); + byte[] blockBytes = BinaryProtocol.encode(newlyBlock, LedgerBlock.class); Bytes blockStorageKey = LedgerRepositoryImpl.encodeBlockStorageKey(newlyBlock.getHash()); long v = bufferedStorage.set(blockStorageKey, blockBytes, -1); if (v < 0) { diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/TransactionBatchProcessor.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/TransactionBatchProcessor.java index 1001230f..7a0670b8 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/TransactionBatchProcessor.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/TransactionBatchProcessor.java @@ -20,9 +20,9 @@ import com.jd.blockchain.ledger.core.LedgerService; import com.jd.blockchain.ledger.core.LedgerTransactionContext; import com.jd.blockchain.ledger.core.OperationHandle; import com.jd.blockchain.ledger.core.TransactionRequestContext; -import com.jd.blockchain.ledger.service.TransactionBatchProcess; -import com.jd.blockchain.ledger.service.TransactionBatchResult; -import com.jd.blockchain.ledger.service.TransactionBatchResultHandle; +import com.jd.blockchain.service.TransactionBatchProcess; +import com.jd.blockchain.service.TransactionBatchResult; +import com.jd.blockchain.service.TransactionBatchResultHandle; import com.jd.blockchain.utils.Bytes; public class TransactionBatchProcessor implements TransactionBatchProcess { diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/TransactionEngineImpl.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/TransactionEngineImpl.java index 73053188..bf2470e4 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/TransactionEngineImpl.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/TransactionEngineImpl.java @@ -11,8 +11,8 @@ import com.jd.blockchain.ledger.core.LedgerDataSet; import com.jd.blockchain.ledger.core.LedgerEditor; import com.jd.blockchain.ledger.core.LedgerRepository; import com.jd.blockchain.ledger.core.LedgerService; -import com.jd.blockchain.ledger.service.TransactionBatchProcess; -import com.jd.blockchain.ledger.service.TransactionEngine; +import com.jd.blockchain.service.TransactionBatchProcess; +import com.jd.blockchain.service.TransactionEngine; public class TransactionEngineImpl implements TransactionEngine { diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/ContractEventSendOperationHandle.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/ContractEventSendOperationHandle.java index 498457af..e1930a35 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/ContractEventSendOperationHandle.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/ContractEventSendOperationHandle.java @@ -1,49 +1,72 @@ package com.jd.blockchain.ledger.core.impl.handles; -import com.jd.blockchain.contract.ContractServiceProviders; -import com.jd.blockchain.contract.model.LocalContractEventContext; +import static com.jd.blockchain.utils.BaseConstant.CONTRACT_SERVICE_PROVIDER; + +import org.springframework.stereotype.Service; + +import com.jd.blockchain.contract.LocalContractEventContext; +import com.jd.blockchain.contract.engine.ContractCode; +import com.jd.blockchain.contract.engine.ContractEngine; +import com.jd.blockchain.contract.engine.ContractServiceProviders; import com.jd.blockchain.ledger.ContractEventSendOperation; import com.jd.blockchain.ledger.Operation; -import com.jd.blockchain.ledger.core.*; +import com.jd.blockchain.ledger.core.ContractAccount; +import com.jd.blockchain.ledger.core.ContractAccountSet; +import com.jd.blockchain.ledger.core.LedgerDataSet; +import com.jd.blockchain.ledger.core.LedgerException; +import com.jd.blockchain.ledger.core.LedgerService; +import com.jd.blockchain.ledger.core.OperationHandle; +import com.jd.blockchain.ledger.core.TransactionRequestContext; import com.jd.blockchain.ledger.core.impl.LedgerQueryService; import com.jd.blockchain.ledger.core.impl.OperationHandleContext; -import org.springframework.stereotype.Service; - -import static com.jd.blockchain.utils.BaseConstant.CONTRACT_SERVICE_PROVIDER; @Service public class ContractEventSendOperationHandle implements OperationHandle { + + private static final ContractEngine JVM_ENGINE; + + static { + JVM_ENGINE = ContractServiceProviders.getProvider(CONTRACT_SERVICE_PROVIDER).getEngine(); + } + @Override public void process(Operation op, LedgerDataSet dataset, TransactionRequestContext requestContext, LedgerDataSet previousBlockDataset, OperationHandleContext opHandleContext, LedgerService ledgerService) { ContractEventSendOperation contractOP = (ContractEventSendOperation) op; // 先从账本校验合约的有效性; // 注意:必须在前一个区块的数据集中进行校验,因为那是经过共识的数据;从当前新区块链数据集校验则会带来攻击风险:未经共识的合约得到执行; - if (!previousBlockDataset.getContractAccountSet().contains(contractOP.getContractAddress())) { - throw new LedgerException( - String.format("Target contract of ContractEvent was not registered! --[ContractAddress=%s]", - contractOP.getContractAddress())); + ContractAccountSet contractSet = previousBlockDataset.getContractAccountSet(); + if (!contractSet.contains(contractOP.getContractAddress())) { + throw new LedgerException(String.format("Contract was not registered! --[ContractAddress=%s]", + contractOP.getContractAddress())); } - - //创建合约的账本上下文实例; - LedgerQueryService queryService = new LedgerQueryService(ledgerService) ; + + // 创建合约的账本上下文实例; + LedgerQueryService queryService = new LedgerQueryService(ledgerService); ContractLedgerContext ledgerContext = new ContractLedgerContext(queryService, opHandleContext); - // TODO:从合约引擎加载合约,执行合约代码; - ContractAccount contract = previousBlockDataset.getContractAccountSet() - .getContract(contractOP.getContractAddress()); - try { - // 在调用方法前,需要加载上下文信息; - LocalContractEventContext localContractEventContext = new LocalContractEventContext( - requestContext.getRequest().getTransactionContent().getLedgerHash(),contract.getChainCode(), contractOP.getEvent()); - localContractEventContext.setArgs(contractOP.getArgs()).setTransactionRequest(requestContext.getRequest()). - setLedgerContext(ledgerContext); - ContractServiceProviders.getProvider(CONTRACT_SERVICE_PROVIDER).getEngine().setupContract( - contract.getAddress().toBase58(),contract.getChaincodeVersion(),contract.getChainCode()). - processEvent(localContractEventContext); - } catch (Exception e) { - e.printStackTrace(); + // 先检查合约引擎是否已经加载合约;如果未加载,再从账本中读取合约代码并装载到引擎中执行; + ContractAccount contract = contractSet.getContract(contractOP.getContractAddress()); + if (contract == null) { + throw new LedgerException(String.format("Contract was not registered! --[ContractAddress=%s]", + contractOP.getContractAddress())); } + + // 创建合约上下文; + LocalContractEventContext localContractEventContext = new LocalContractEventContext( + requestContext.getRequest().getTransactionContent().getLedgerHash(), contractOP.getEvent()); + localContractEventContext.setArgs(contractOP.getArgs()).setTransactionRequest(requestContext.getRequest()) + .setLedgerContext(ledgerContext); + + ContractCode contractCode = JVM_ENGINE.getContract(contract.getAddress(), contract.getChaincodeVersion()); + if (contractCode == null) { + // 装载合约; + contractCode = JVM_ENGINE.setupContract(contract.getAddress(), contract.getChaincodeVersion(), + contract.getChainCode()); + } + + // 处理合约事件; + contractCode.processEvent(localContractEventContext); } @Override diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/ContractLedgerContext.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/ContractLedgerContext.java index d8cbb571..75d81904 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/ContractLedgerContext.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/ContractLedgerContext.java @@ -4,17 +4,32 @@ import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSON; -import com.jd.blockchain.contract.model.LedgerContext; +import com.jd.blockchain.contract.LedgerContext; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.ledger.*; +import com.jd.blockchain.ledger.AccountHeader; +import com.jd.blockchain.ledger.BlockchainIdentity; +import com.jd.blockchain.ledger.BytesValue; +import com.jd.blockchain.ledger.BytesValueEntry; +import com.jd.blockchain.ledger.DataAccountKVSetOperation; +import com.jd.blockchain.ledger.DataAccountRegisterOperation; +import com.jd.blockchain.ledger.BytesValueType; +import com.jd.blockchain.ledger.KVDataEntry; +import com.jd.blockchain.ledger.LedgerBlock; +import com.jd.blockchain.ledger.LedgerInfo; +import com.jd.blockchain.ledger.LedgerTransaction; +import com.jd.blockchain.ledger.Operation; +import com.jd.blockchain.ledger.ParticipantNode; +import com.jd.blockchain.ledger.TransactionState; +import com.jd.blockchain.ledger.UserInfo; +import com.jd.blockchain.ledger.UserRegisterOperation; import com.jd.blockchain.ledger.core.impl.OperationHandleContext; -import com.jd.blockchain.ledger.data.DataAccountKVSetOperationBuilder; -import com.jd.blockchain.ledger.data.DataAccountRegisterOperationBuilder; -import com.jd.blockchain.ledger.data.DataAccountRegisterOperationBuilderImpl; -import com.jd.blockchain.ledger.data.KVData; -import com.jd.blockchain.ledger.data.UserRegisterOperationBuilder; -import com.jd.blockchain.ledger.data.UserRegisterOperationBuilderImpl; -import com.jd.blockchain.sdk.BlockchainQueryService; +import com.jd.blockchain.transaction.BlockchainQueryService; +import com.jd.blockchain.transaction.DataAccountKVSetOperationBuilder; +import com.jd.blockchain.transaction.DataAccountRegisterOperationBuilder; +import com.jd.blockchain.transaction.DataAccountRegisterOperationBuilderImpl; +import com.jd.blockchain.transaction.KVData; +import com.jd.blockchain.transaction.UserRegisterOperationBuilder; +import com.jd.blockchain.transaction.UserRegisterOperationBuilderImpl; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.io.BytesUtils; @@ -258,7 +273,7 @@ public class ContractLedgerContext implements LedgerContext { @Override public DataAccountKVSetOperationBuilder set(String key, byte[] value, long expVersion) { - BytesValue bytesValue = new BytesValueImpl(DataType.BYTES, value); + BytesValue bytesValue = new BytesValueEntry(BytesValueType.BYTES, value); this.op = new SingleKVSetOpTemplate(key, bytesValue, expVersion); generatedOpList.add(op); opHandleContext.handle(op); @@ -268,10 +283,10 @@ public class ContractLedgerContext implements LedgerContext { public DataAccountKVSetOperationBuilder set(String key, String value, long expVersion) { BytesValue bytesValue; if (isJson(value)) { - bytesValue = new BytesValueImpl(DataType.JSON, value.getBytes()); + bytesValue = new BytesValueEntry(BytesValueType.JSON, value.getBytes()); } else { - bytesValue = new BytesValueImpl(DataType.TEXT, value.getBytes()); + bytesValue = new BytesValueEntry(BytesValueType.TEXT, value.getBytes()); } this.op = new SingleKVSetOpTemplate(key, bytesValue, expVersion); generatedOpList.add(op); @@ -280,7 +295,7 @@ public class ContractLedgerContext implements LedgerContext { } @Override public DataAccountKVSetOperationBuilder set(String key, Bytes value, long expVersion) { - BytesValue bytesValue = new BytesValueImpl(DataType.BYTES, value.toBytes()); + BytesValue bytesValue = new BytesValueEntry(BytesValueType.BYTES, value.toBytes()); this.op = new SingleKVSetOpTemplate(key, bytesValue, expVersion); generatedOpList.add(op); opHandleContext.handle(op); @@ -288,7 +303,7 @@ public class ContractLedgerContext implements LedgerContext { } @Override public DataAccountKVSetOperationBuilder set(String key, long value, long expVersion) { - BytesValue bytesValue = new BytesValueImpl(DataType.INT64, BytesUtils.toBytes(value)); + BytesValue bytesValue = new BytesValueEntry(BytesValueType.INT64, BytesUtils.toBytes(value)); this.op = new SingleKVSetOpTemplate(key, bytesValue, expVersion); generatedOpList.add(op); opHandleContext.handle(op); diff --git a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/DataAccountKVSetOperationHandle.java b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/DataAccountKVSetOperationHandle.java index 6e45999c..2d7735d4 100644 --- a/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/DataAccountKVSetOperationHandle.java +++ b/source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/impl/handles/DataAccountKVSetOperationHandle.java @@ -1,6 +1,6 @@ package com.jd.blockchain.ledger.core.impl.handles; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.ledger.BytesValue; import com.jd.blockchain.ledger.DataAccountKVSetOperation; @@ -24,7 +24,7 @@ public class DataAccountKVSetOperationHandle implements OperationHandle{ DataAccount account = dataset.getDataAccountSet().getDataAccount(kvWriteOp.getAccountAddress()); KVWriteEntry[] writeset = kvWriteOp.getWriteSet(); for (KVWriteEntry kvw : writeset) { - byte[] value = BinaryEncodingUtils.encode(kvw.getValue(), BytesValue.class); + byte[] value = BinaryProtocol.encode(kvw.getValue(), BytesValue.class); account.setBytes(Bytes.fromString(kvw.getKey()), value, kvw.getExpectedVersion()); } } diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerAccountTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerAccountTest.java index 6b17b903..18566ca6 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerAccountTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerAccountTest.java @@ -7,7 +7,7 @@ import java.util.Random; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.PubKey; @@ -48,8 +48,8 @@ public class LedgerAccountTest { pubKey, hashDigest); // encode and decode - byte[] encodeBytes = BinaryEncodingUtils.encode(accountHeaderData, AccountHeader.class); - AccountHeader deAccountHeaderData = BinaryEncodingUtils.decode(encodeBytes); + byte[] encodeBytes = BinaryProtocol.encode(accountHeaderData, AccountHeader.class); + AccountHeader deAccountHeaderData = BinaryProtocol.decode(encodeBytes); // verify start assertEquals(accountHeaderData.getAddress(), deAccountHeaderData.getAddress()); diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerAdminAccountTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerAdminAccountTest.java index 54999130..af06d0b1 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerAdminAccountTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerAdminAccountTest.java @@ -21,9 +21,9 @@ import com.jd.blockchain.ledger.core.CryptoConfig; import com.jd.blockchain.ledger.core.LedgerAdminAccount; import com.jd.blockchain.ledger.core.LedgerConfiguration; import com.jd.blockchain.ledger.core.LedgerMetadata; -import com.jd.blockchain.ledger.data.ConsensusParticipantData; -import com.jd.blockchain.ledger.data.LedgerInitSettingData; import com.jd.blockchain.storage.service.utils.MemoryKVStorage; +import com.jd.blockchain.transaction.ConsensusParticipantData; +import com.jd.blockchain.transaction.LedgerInitSettingData; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.io.BytesUtils; import com.jd.blockchain.utils.net.NetworkAddress; diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerBlockImplTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerBlockImplTest.java index 623c89eb..ce29e1a5 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerBlockImplTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerBlockImplTest.java @@ -13,7 +13,7 @@ import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.service.classic.ClassicAlgorithm; @@ -54,8 +54,8 @@ public class LedgerBlockImplTest { @Test public void testSerialize_LedgerBlock() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, LedgerBlock.class); - LedgerBlock resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, LedgerBlock.class); + LedgerBlock resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getHash(), data.getHash()); assertEquals(resolvedData.getHeight(), data.getHeight()); @@ -105,8 +105,8 @@ public class LedgerBlockImplTest { transactionStagedSnapshot.setDataAccountSetHash(data); transactionStagedSnapshot.setUserAccountSetHash(user); - byte[] serialBytes = BinaryEncodingUtils.encode(transactionStagedSnapshot, LedgerDataSnapshot.class); - LedgerDataSnapshot resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(transactionStagedSnapshot, LedgerDataSnapshot.class); + LedgerDataSnapshot resolvedData = BinaryProtocol.decode(serialBytes); // verify start assertEquals(resolvedData.getAdminAccountHash(), transactionStagedSnapshot.getAdminAccountHash()); diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerEditerTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerEditerTest.java index 047e4066..621aa6fc 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerEditerTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerEditerTest.java @@ -26,9 +26,9 @@ import com.jd.blockchain.ledger.core.LedgerEditor; import com.jd.blockchain.ledger.core.LedgerTransactionContext; import com.jd.blockchain.ledger.core.UserAccount; import com.jd.blockchain.ledger.core.impl.LedgerTransactionalEditor; -import com.jd.blockchain.ledger.data.ConsensusParticipantData; -import com.jd.blockchain.ledger.data.LedgerInitSettingData; import com.jd.blockchain.storage.service.utils.MemoryKVStorage; +import com.jd.blockchain.transaction.ConsensusParticipantData; +import com.jd.blockchain.transaction.LedgerInitSettingData; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.io.BytesUtils; import com.jd.blockchain.utils.net.NetworkAddress; diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerInitOperationTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerInitOperationTest.java index a6a56143..e9ae7693 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerInitOperationTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerInitOperationTest.java @@ -9,7 +9,7 @@ import java.util.Random; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.AddressEncoding; import com.jd.blockchain.crypto.service.classic.ClassicAlgorithm; @@ -19,9 +19,9 @@ import com.jd.blockchain.ledger.LedgerInitOperation; import com.jd.blockchain.ledger.LedgerInitSetting; import com.jd.blockchain.ledger.core.CryptoConfig; import com.jd.blockchain.ledger.core.ParticipantCertData; -import com.jd.blockchain.ledger.data.ConsensusParticipantData; -import com.jd.blockchain.ledger.data.LedgerInitOpTemplate; -import com.jd.blockchain.ledger.data.LedgerInitSettingData; +import com.jd.blockchain.transaction.ConsensusParticipantData; +import com.jd.blockchain.transaction.LedgerInitOpTemplate; +import com.jd.blockchain.transaction.LedgerInitSettingData; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.net.NetworkAddress; @@ -75,8 +75,8 @@ public class LedgerInitOperationTest { LedgerInitOpTemplate template = new LedgerInitOpTemplate(ledgerInitSettingData); - byte[] encode = BinaryEncodingUtils.encode(template, LedgerInitOperation.class); - LedgerInitOperation decode = BinaryEncodingUtils.decode(encode); + byte[] encode = BinaryProtocol.encode(template, LedgerInitOperation.class); + LedgerInitOperation decode = BinaryProtocol.decode(encode); for (int i = 0; i < template.getInitSetting().getConsensusParticipants().length; i++) { assertEquals(template.getInitSetting().getConsensusParticipants()[i].getAddress(), @@ -115,8 +115,8 @@ public class LedgerInitOperationTest { LedgerInitOpTemplate template = new LedgerInitOpTemplate(ledgerInitSettingData); - byte[] encode = BinaryEncodingUtils.encode(template, LedgerInitOperation.class); - LedgerInitOperation decode = BinaryEncodingUtils.decode(encode); + byte[] encode = BinaryProtocol.encode(template, LedgerInitOperation.class); + LedgerInitOperation decode = BinaryProtocol.decode(encode); for (int i = 0; i < template.getInitSetting().getConsensusParticipants().length; i++) { assertEquals(template.getInitSetting().getConsensusParticipants()[i].getAddress(), diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerInitSettingTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerInitSettingTest.java index 8055ff5b..7f9a4e7c 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerInitSettingTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerInitSettingTest.java @@ -9,7 +9,7 @@ import java.util.Random; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.AddressEncoding; import com.jd.blockchain.crypto.service.classic.ClassicAlgorithm; @@ -18,9 +18,9 @@ import com.jd.blockchain.ledger.BlockchainKeypair; import com.jd.blockchain.ledger.LedgerInitSetting; import com.jd.blockchain.ledger.core.CryptoConfig; import com.jd.blockchain.ledger.core.ParticipantCertData; -import com.jd.blockchain.ledger.data.ConsensusParticipantData; -import com.jd.blockchain.ledger.data.LedgerInitOpTemplate; -import com.jd.blockchain.ledger.data.LedgerInitSettingData; +import com.jd.blockchain.transaction.ConsensusParticipantData; +import com.jd.blockchain.transaction.LedgerInitOpTemplate; +import com.jd.blockchain.transaction.LedgerInitSettingData; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.net.NetworkAddress; @@ -72,9 +72,9 @@ public class LedgerInitSettingTest { ledgerInitSettingData.setConsensusParticipants(parties1); - byte[] encode = BinaryEncodingUtils.encode(ledgerInitSettingData, LedgerInitSetting.class); + byte[] encode = BinaryProtocol.encode(ledgerInitSettingData, LedgerInitSetting.class); - LedgerInitSetting decode = BinaryEncodingUtils.decode(encode); + LedgerInitSetting decode = BinaryProtocol.decode(encode); for (int i = 0; i < ledgerInitSettingData.getConsensusParticipants().length; i++) { assertEquals(ledgerInitSettingData.getConsensusParticipants()[i].getAddress(), @@ -116,9 +116,9 @@ public class LedgerInitSettingTest { ledgerInitSettingData.setConsensusParticipants(parties1); - byte[] encode = BinaryEncodingUtils.encode(ledgerInitSettingData, LedgerInitSetting.class); + byte[] encode = BinaryProtocol.encode(ledgerInitSettingData, LedgerInitSetting.class); - LedgerInitSetting decode = BinaryEncodingUtils.decode(encode); + LedgerInitSetting decode = BinaryProtocol.decode(encode); for (int i = 0; i < ledgerInitSettingData.getConsensusParticipants().length; i++) { assertEquals(ledgerInitSettingData.getConsensusParticipants()[i].getAddress(), diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerManagerTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerManagerTest.java index 637828f8..9974d5d8 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerManagerTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerManagerTest.java @@ -39,10 +39,10 @@ import com.jd.blockchain.ledger.core.LedgerTransactionContext; import com.jd.blockchain.ledger.core.UserAccount; import com.jd.blockchain.ledger.core.UserAccountSet; import com.jd.blockchain.ledger.core.impl.LedgerManager; -import com.jd.blockchain.ledger.data.ConsensusParticipantData; -import com.jd.blockchain.ledger.data.LedgerInitSettingData; -import com.jd.blockchain.ledger.data.TxBuilder; import com.jd.blockchain.storage.service.utils.MemoryKVStorage; +import com.jd.blockchain.transaction.ConsensusParticipantData; +import com.jd.blockchain.transaction.LedgerInitSettingData; +import com.jd.blockchain.transaction.TxBuilder; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.io.BytesUtils; import com.jd.blockchain.utils.net.NetworkAddress; diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerMetaDataTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerMetaDataTest.java index 4d29c908..19886d4b 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerMetaDataTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerMetaDataTest.java @@ -10,7 +10,7 @@ import java.util.Random; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.AddressEncoding; import com.jd.blockchain.crypto.HashDigest; @@ -71,8 +71,8 @@ public class LedgerMetaDataTest { ledgerMetadata.setParticipantsHash(hashDigest); // encode and decode - byte[] encodeBytes = BinaryEncodingUtils.encode(ledgerMetadata, LedgerMetadata.class); - LedgerMetadata deLedgerMetaData = BinaryEncodingUtils.decode(encodeBytes); + byte[] encodeBytes = BinaryProtocol.encode(ledgerMetadata, LedgerMetadata.class); + LedgerMetadata deLedgerMetaData = BinaryProtocol.decode(encodeBytes); // verify start assertArrayEquals(ledgerMetadata.getSeed(), deLedgerMetaData.getSeed()); @@ -99,8 +99,8 @@ public class LedgerMetaDataTest { LedgerConfiguration ledgerConfiguration = new LedgerConfiguration(consensusProvider, new Bytes(csSettingsBytes), cryptoConfig); - byte[] encodeBytes = BinaryEncodingUtils.encode(ledgerConfiguration, LedgerSetting.class); - LedgerSetting deLedgerConfiguration = BinaryEncodingUtils.decode(encodeBytes); + byte[] encodeBytes = BinaryProtocol.encode(ledgerConfiguration, LedgerSetting.class); + LedgerSetting deLedgerConfiguration = BinaryProtocol.decode(encodeBytes); // verify start assertTrue(ledgerConfiguration.getConsensusSetting().equals(deLedgerConfiguration.getConsensusSetting())); assertEquals(ledgerConfiguration.getCryptoSetting().getAutoVerifyHash(), @@ -136,8 +136,8 @@ public class LedgerMetaDataTest { CryptoConfig cryptoConfig = new CryptoConfig(); cryptoConfig.setAutoVerifyHash(true); cryptoConfig.setHashAlgorithm(ClassicAlgorithm.SHA256); - byte[] encodeBytes = BinaryEncodingUtils.encode(cryptoConfig, CryptoSetting.class); - CryptoSetting deCryptoConfig = BinaryEncodingUtils.decode(encodeBytes); + byte[] encodeBytes = BinaryProtocol.encode(cryptoConfig, CryptoSetting.class); + CryptoSetting deCryptoConfig = BinaryProtocol.decode(encodeBytes); // verify start assertEquals(cryptoConfig.getHashAlgorithm(), deCryptoConfig.getHashAlgorithm()); @@ -162,8 +162,8 @@ public class LedgerMetaDataTest { ParticipantCertData participantCertData = new ParticipantCertData(address, name, pubKey); // encode and decode - byte[] encodeBytes = BinaryEncodingUtils.encode(participantCertData, ParticipantNode.class); - ParticipantNode deParticipantInfoData = BinaryEncodingUtils.decode(encodeBytes); + byte[] encodeBytes = BinaryProtocol.encode(participantCertData, ParticipantNode.class); + ParticipantNode deParticipantInfoData = BinaryProtocol.decode(encodeBytes); // verify start assertEquals(participantCertData.getAddress(), deParticipantInfoData.getAddress()); diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerTestUtils.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerTestUtils.java index 28a01823..d6f6ae43 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerTestUtils.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerTestUtils.java @@ -15,8 +15,8 @@ import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.core.CryptoConfig; import com.jd.blockchain.ledger.core.impl.TransactionStagedSnapshot; -import com.jd.blockchain.ledger.data.TransactionService; -import com.jd.blockchain.ledger.data.TxTemplate; +import com.jd.blockchain.transaction.TransactionService; +import com.jd.blockchain.transaction.TxTemplate; public class LedgerTestUtils { diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerTransactionDataTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerTransactionDataTest.java index bfff2a7c..ba533a4a 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerTransactionDataTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/LedgerTransactionDataTest.java @@ -15,7 +15,7 @@ import java.util.UUID; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; @@ -37,10 +37,10 @@ import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionState; import com.jd.blockchain.ledger.core.impl.LedgerTransactionData; import com.jd.blockchain.ledger.core.impl.TransactionStagedSnapshot; -import com.jd.blockchain.ledger.data.BlockchainOperationFactory; -import com.jd.blockchain.ledger.data.DigitalSignatureBlob; -import com.jd.blockchain.ledger.data.TxContentBlob; -import com.jd.blockchain.ledger.data.TxRequestMessage; +import com.jd.blockchain.transaction.BlockchainOperationFactory; +import com.jd.blockchain.transaction.DigitalSignatureBlob; +import com.jd.blockchain.transaction.TxContentBlob; +import com.jd.blockchain.transaction.TxRequestMessage; import com.jd.blockchain.utils.io.ByteArray; /** @@ -86,8 +86,8 @@ public class LedgerTransactionDataTest { @Test public void testSerialize_LedgerTransaction() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, LedgerTransaction.class); - LedgerTransaction resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, LedgerTransaction.class); + LedgerTransaction resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getAdminAccountHash(), data.getAdminAccountHash()); @@ -120,8 +120,8 @@ public class LedgerTransactionDataTest { @Test public void testSerialize_Transaction() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, Transaction.class); - Transaction resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, Transaction.class); + Transaction resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getExecutionState(), data.getExecutionState()); @@ -150,8 +150,8 @@ public class LedgerTransactionDataTest { @Test public void testSerialize_LedgerDataSnapshot() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, LedgerDataSnapshot.class); - LedgerDataSnapshot resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, LedgerDataSnapshot.class); + LedgerDataSnapshot resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getAdminAccountHash(), data.getAdminAccountHash()); @@ -163,8 +163,8 @@ public class LedgerTransactionDataTest { @Test public void testSerialize_NodeRequest() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, NodeRequest.class); - NodeRequest resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, NodeRequest.class); + NodeRequest resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); // EndpointSignatures 验证 @@ -189,8 +189,8 @@ public class LedgerTransactionDataTest { @Test public void testSerialize_EndpointRequest() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, EndpointRequest.class); - EndpointRequest resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, EndpointRequest.class); + EndpointRequest resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); // EndpointSignatures 验证 diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/TransactionSetTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/TransactionSetTest.java index 6214d090..60b48975 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/TransactionSetTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/TransactionSetTest.java @@ -33,8 +33,8 @@ import com.jd.blockchain.ledger.UserRegisterOperation; import com.jd.blockchain.ledger.core.TransactionSet; import com.jd.blockchain.ledger.core.impl.LedgerTransactionData; import com.jd.blockchain.ledger.core.impl.TransactionStagedSnapshot; -import com.jd.blockchain.ledger.data.TxBuilder; import com.jd.blockchain.storage.service.utils.MemoryKVStorage; +import com.jd.blockchain.transaction.TxBuilder; import com.jd.blockchain.utils.io.BytesUtils; public class TransactionSetTest { diff --git a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/TransactionStagedSnapshotTest.java b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/TransactionStagedSnapshotTest.java index b49767f0..3693f60d 100644 --- a/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/TransactionStagedSnapshotTest.java +++ b/source/ledger/ledger-core/src/test/java/test/com/jd/blockchain/ledger/TransactionStagedSnapshotTest.java @@ -13,7 +13,7 @@ import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.service.classic.ClassicAlgorithm; @@ -43,8 +43,8 @@ public class TransactionStagedSnapshotTest { @Test public void testSerialize_LedgerDataSnapshot() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, LedgerDataSnapshot.class); - LedgerDataSnapshot resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, LedgerDataSnapshot.class); + LedgerDataSnapshot resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getAdminAccountHash(), data.getAdminAccountHash()); assertEquals(resolvedData.getContractAccountSetHash(), data.getContractAccountSetHash()); diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/Contract.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/Contract.java similarity index 83% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/Contract.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/Contract.java index 3e79827c..e1b7ea4e 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/Contract.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/Contract.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain.contract; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractAppLifecycleAwire.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractAppLifecycleAwire.java similarity index 85% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractAppLifecycleAwire.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractAppLifecycleAwire.java index cb9869c4..c8f4f8a9 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractAppLifecycleAwire.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractAppLifecycleAwire.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain.contract; /** * 合约实现此接口可以监听合约应用的生命周期事件; diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractEvent.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractEvent.java similarity index 84% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractEvent.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractEvent.java index 00f24e76..6249945e 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractEvent.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractEvent.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain.contract; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractEventContext.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractEventContext.java similarity index 95% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractEventContext.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractEventContext.java index d2c16761..a24ba26d 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractEventContext.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractEventContext.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain.contract; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.BlockchainIdentity; diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractException.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractException.java similarity index 89% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractException.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractException.java index 0e13d2c5..61ba347a 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractException.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractException.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain.contract; public class ContractException extends RuntimeException { diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractRuntimeAwire.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractRuntimeAwire.java similarity index 81% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractRuntimeAwire.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractRuntimeAwire.java index d5627985..eab96a41 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ContractRuntimeAwire.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ContractRuntimeAwire.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain.contract; /** * 合约实现 {@link ContractRuntimeAwire} 的子接口可以监听运行时的生命周期事件; diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ErrorCodeEnum.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ErrorCodeEnum.java similarity index 96% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ErrorCodeEnum.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ErrorCodeEnum.java index 5e2bcb05..f978cb2f 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/ErrorCodeEnum.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/ErrorCodeEnum.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain.contract; /** * 给每个错误编码,编译快速定位; diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/EventHandle.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/EventHandle.java similarity index 84% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/EventHandle.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/EventHandle.java index 35af3fe0..9b301460 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/EventHandle.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/EventHandle.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain.contract; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/EventProcessingAwire.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/EventProcessingAwire.java similarity index 95% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/EventProcessingAwire.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/EventProcessingAwire.java index 9098dda3..36080be1 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/EventProcessingAwire.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/EventProcessingAwire.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain.contract; /** * @author huanghaiquan diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/LedgerContext.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/LedgerContext.java new file mode 100644 index 00000000..196949ab --- /dev/null +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/LedgerContext.java @@ -0,0 +1,11 @@ +package com.jd.blockchain.contract; + +import com.jd.blockchain.transaction.BlockchainQueryService; +import com.jd.blockchain.transaction.DataAccountOperator; +import com.jd.blockchain.transaction.UserOperator; + +public interface LedgerContext extends BlockchainQueryService, UserOperator, DataAccountOperator{ + + + +} diff --git a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/LocalContractEventContext.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/LocalContractEventContext.java similarity index 84% rename from source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/LocalContractEventContext.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/LocalContractEventContext.java index 2b1261b8..e18d7714 100644 --- a/source/contract/contract-model/src/main/java/com/jd/blockchain/contract/model/LocalContractEventContext.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/contract/LocalContractEventContext.java @@ -1,11 +1,10 @@ -package com.jd.blockchain.contract.model; +package com.jd.blockchain.contract; + +import java.util.Set; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.TransactionRequest; -import com.jd.blockchain.utils.io.ByteArray; - -import java.util.Set; /** * @Author zhaogw @@ -21,10 +20,10 @@ public class LocalContractEventContext implements ContractEventContext,Cloneable private Set contractOwners; private LedgerContext ledgerContext; - public LocalContractEventContext(HashDigest ledgeHash, byte[] chainCode, String event){ + public LocalContractEventContext(HashDigest ledgeHash, String event){ this.ledgeHash = ledgeHash; this.event = event; - this.chainCode = chainCode; +// this.chainCode = chainCode; } @Override @@ -92,14 +91,14 @@ public class LocalContractEventContext implements ContractEventContext,Cloneable return this; } - public byte[] getChainCode() { - return chainCode; - } - - public LocalContractEventContext setChainCode(byte[] chainCode) { - this.chainCode = chainCode; - return this; - } +// public byte[] getChainCode() { +// return chainCode; +// } +// +// public LocalContractEventContext setChainCode(byte[] chainCode) { +// this.chainCode = chainCode; +// return this; +// } public LocalContractEventContext setArgs(byte[] args) { this.args = args; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/AccountHeader.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/AccountHeader.java index 4252446f..42dc25a0 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/AccountHeader.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/AccountHeader.java @@ -2,22 +2,22 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.PubKey; import com.jd.blockchain.utils.Bytes; -import com.jd.blockchain.utils.ValueType; -@DataContract(code= TypeCodes.ACCOUNT_HEADER) +@DataContract(code= DataCodes.ACCOUNT_HEADER) public interface AccountHeader { - @DataField(order=1, primitiveType = ValueType.BYTES) + @DataField(order=1, primitiveType = PrimitiveType.BYTES) Bytes getAddress(); - @DataField(order=2, primitiveType = ValueType.BYTES) + @DataField(order=2, primitiveType = PrimitiveType.BYTES) PubKey getPubKey(); - @DataField(order=3, primitiveType = ValueType.BYTES) + @DataField(order=3, primitiveType = PrimitiveType.BYTES) HashDigest getRootHash(); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/AccountImpl.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/AccountImpl.java deleted file mode 100644 index 64e3c97e..00000000 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/AccountImpl.java +++ /dev/null @@ -1,406 +0,0 @@ -//package com.jd.blockchain.ledger; -// -//import java.io.ByteArrayOutputStream; -//import java.io.IOException; -//import java.io.InputStream; -//import java.io.OutputStream; -// -//import com.jd.blockchain.ledger.data.HashEncoding; -// -//import my.utils.io.ByteArray; -//import my.utils.io.BytesEncoding; -//import my.utils.io.BytesReader; -//import my.utils.io.BytesUtils; -//import my.utils.io.BytesWriter; -//import my.utils.io.NumberMask; -// -//public class AccountImpl implements BlockchainAccount, BytesWriter, BytesReader { -// public static final long INIT_TX_SEQUENCE_NUMBER = 0; // 初始交易流水号 -// public static final long INIT_MODEL_VERSION = 0; // 初始模型版本号 -// public static final long INIT_VERSION = 0; // 初始版本号 -// public static final long INIT_PRIVILLEGE_VERSION = 0; // 初始权限版本号 -// public static final long INIT_STATE_VERSION = 0; // 初始状态版本号 -// public static final long INIT_CODE_VERSION = 0; // 初始合约版本号 -// -// private BlockchainIdentity identity; -// private ByteArray ledgerHash; // 账本hash -// private long blockHeight; // 账户注册的区块高度 -// private long txSequenceNumber; // 交易流水号 -// private long modelVersion; // 账户模型版本 -// private long version; // 账户版本 -// private ByteArray privilegeHash; // 权限树根hash -// private long privilegeVersion; // 权限版本 -// private AccountStateType stateType; // 状态类型 -// private ByteArray stateHash; // 状态数根hash -// private long stateVersion; // 状态版本 -// private ByteArray code; // 合约代码 -// private long codeVersion; // 合约版本 -// private HashAlgorithm codeHashAlgorithm = HashAlgorithm.SHA256; -// private ByteArray codeHash; -// -// public AccountImpl() { -// } -// -// public AccountImpl(BlockchainIdentity identity, ByteArray ledgerHash, long blockHeight, long txSequenceNumber, -// long modelVersion, long version, ByteArray privilegeHash, long privilegeVersion, AccountStateType stateType, -// ByteArray stateHash, long stateVersion, ByteArray code, long codeVersion) { -// this.identity = identity; -// this.ledgerHash = ledgerHash; -// this.blockHeight = blockHeight; -// this.txSequenceNumber = txSequenceNumber; -// this.modelVersion = modelVersion; -// this.version = version; -// this.privilegeHash = privilegeHash; -// this.privilegeVersion = privilegeVersion; -// this.stateType = stateType; -// this.stateHash = stateHash; -// this.stateVersion = stateVersion; -// this.code = code; -// this.codeVersion = codeVersion; -// } -// -// public AccountImpl(BlockchainIdentity identity, ByteArray ledgerHash, long blockHeight, ByteArray privilegeHash, -// AccountStateType stateType, ByteArray stateHash, ByteArray code) { -// this.identity = identity; -// this.ledgerHash = ledgerHash; -// this.blockHeight = blockHeight; -// this.txSequenceNumber = INIT_TX_SEQUENCE_NUMBER; -// this.modelVersion = INIT_MODEL_VERSION; -// this.version = INIT_VERSION; -// this.privilegeHash = privilegeHash; -// this.privilegeVersion = INIT_PRIVILLEGE_VERSION; -// this.stateType = stateType; -// this.stateHash = stateHash; -// this.stateVersion = INIT_STATE_VERSION; -// this.code = code; -// this.codeVersion = INIT_CODE_VERSION; -// } -// -// @Override -// public void resolvFrom(InputStream in) throws IOException { -// BlockchainIdentity identity = new BlockchainIdentity(); -// identity.resolvFrom(in); -// ByteArray ledgerHash = HashEncoding.read(in); -// long blockHeight = BytesUtils.readLong(in); -// long txSeqNum = BytesUtils.readLong(in); -// long modelVersion = BytesUtils.readLong(in); -// long version = BytesUtils.readLong(in); -// ByteArray privilegeHash = HashEncoding.read(in); -// long privilegeVersion = BytesUtils.readLong(in); -// AccountStateType stateType = AccountStateType.valueOf(BytesUtils.readByte(in)); -// ByteArray stateHash = HashEncoding.read(in); -// long stateVersion = BytesUtils.readLong(in); -// -// ByteArray code = BytesEncoding.readAsByteArray(NumberMask.NORMAL, in); -// long codeVersion = BytesUtils.readLong(in); -// HashAlgorithm codeHashAlgorithm = HashAlgorithm.valueOf(BytesUtils.readByte(in)); -// ByteArray codeHash = HashEncoding.read(in); -// -// this.identity = identity; -// this.ledgerHash = ledgerHash; -// this.blockHeight = blockHeight; -// this.txSequenceNumber = txSeqNum; -// this.modelVersion = modelVersion; -// this.version = version; -// this.privilegeHash = privilegeHash; -// this.privilegeVersion = privilegeVersion; -// this.stateType = stateType; -// this.stateHash = stateHash; -// this.stateVersion = stateVersion; -// this.code = code; -// this.codeVersion = codeVersion; -// this.codeHashAlgorithm = codeHashAlgorithm; -// this.codeHash = codeHash; -// } -// -// @Override -// public void writeTo(OutputStream out) throws IOException { -// identity.writeTo(out); -// HashEncoding.write(ledgerHash, out); -// BytesUtils.writeLong(blockHeight, out); -// BytesUtils.writeLong(txSequenceNumber, out); -// BytesUtils.writeLong(modelVersion, out); -// BytesUtils.writeLong(version, out); -// HashEncoding.write(privilegeHash, out); -// BytesUtils.writeLong(privilegeVersion, out); -// BytesUtils.writeByte(stateType.getCODE(), out); -// HashEncoding.write(stateHash, out); -// BytesUtils.writeLong(stateVersion, out); -// -// BytesEncoding.write(code, NumberMask.NORMAL, out); -// BytesUtils.writeLong(codeVersion, out); -// BytesUtils.writeByte(codeHashAlgorithm.getAlgorithm(), out); -// HashEncoding.write(getCodeHash(), out); -// } -// -// /** -// * 地址; -// * -// * @return -// */ -// @Override -// public BlockchainIdentity getAddress() { -// return identity; -// } -// -// /** -// * 账户所属的账本的 hash;
-// *

-// * 注:账本的hash 等同于该账本的创世区块的 hash; -// * -// * @return -// */ -// @Override -// public ByteArray getLedgerHash() { -// return ledgerHash; -// } -// -// /** -// * 注册账户的区块高度;
-// *

-// * 注册此账户的区块高度; -// * -// * @return -// */ -// @Override -// public long getRegisteredHeight() { -// return blockHeight; -// } -// -// /** -// * 交易流水号;
-// *

-// * 账户的交易流水号初始为 0,当账户作为交易的科目账户(SubjectAccount )发起一个交易并被成功执行之后,账户的交易流水号增加1; -// * -// * @return -// */ -// @Override -// public long getTxSquenceNumber() { -// return txSequenceNumber; -// } -// -// /** -// * 账户模型版本;
-// *

-// * 表示构成一个账户结构的属性模型的程序版本号; -// * -// * @return -// */ -// @Override -// public long getModelVersion() { -// return modelVersion; -// } -// -// /** -// * 账户版本;
-// *

-// * 初始为 0,对账户的每一次变更(包括对权限设置、状态和合约代码的变更)都会使账户状态版本增加 1 ;注:交易序号的改变不会导致账户版本的增加; -// * -// * @return -// */ -// @Override -// public long getVersion() { -// return version; -// } -// -// /** -// * 权限 hash;
-// *

-// * 权限树的根hash; -// * -// * @return -// */ -// @Override -// public ByteArray getPrivilegeHash() { -// return privilegeHash; -// } -// -// /** -// * 权限版本;
-// *

-// * 初始为 0, 每次对权限的变更都导致版本号加 1; -// * -// * @return -// */ -// @Override -// public long getPrivilegeVersion() { -// return privilegeVersion; -// } -// -// /** -// * 状态类型;
-// *

-// * 账户的状态类型有3种:空类型(NIL);键值类型;对象类型;参考 {@link AccountStateType} -// * -// * @return -// */ -// @Override -// public AccountStateType getStateType() { -// return stateType; -// } -// -// /** -// * 状态版本;
-// *

-// * 初始为 0,每次对状态的更改都使得状态版本增加1; -// * -// * @return -// */ -// @Override -// public long getStateVersion() { -// return stateVersion; -// } -// -// /** -// * 状态哈希;
-// *

-// * 数据状态的 merkle tree 的根hash; -// * -// * @return -// */ -// @Override -// public ByteArray getStateHash() { -// return stateHash; -// } -// -// /** -// * 合约代码哈希;
-// *

-// * 由“账户地址+合约代码版本号+合约代码内容”生成的哈希; -// * -// * @return -// */ -// @Override -// public ByteArray getCodeHash() { -// if (codeHash == null || codeHash == ByteArray.EMPTY) { -// ByteArrayOutputStream out = new ByteArrayOutputStream(); -// BytesEncoding.write(getAddress().getAddress().getBytes(), NumberMask.SHORT, out); -// BytesUtils.writeLong(codeVersion, out); -// BytesEncoding.write(code, NumberMask.NORMAL, out); -// -// codeHash = HashEncoding.computeHash(out.toByteArray(), codeHashAlgorithm); -// } -// -// return codeHash; -// } -// -// public ByteArray getCode() { -// return code; -// } -// -// /** -// * 代码版本;
-// *

-// * 初始为 0,每次对代码的变更都使版本加 1 ; -// * -// * @return -// */ -// @Override -// public long getCodeVersion() { -// return codeVersion; -// } -// -// public BlockchainIdentity getIdentity() { -// return identity; -// } -// -// public void setIdentity(BlockchainIdentity identity) { -// this.identity = identity; -// } -// -// public void setLedgerHash(ByteArray ledgerHash) { -// this.ledgerHash = ledgerHash; -// } -// -// public long getBlockHeight() { -// return blockHeight; -// } -// -// public void setBlockHeight(long blockHeight) { -// this.blockHeight = blockHeight; -// } -// -// public long getTxSequenceNumber() { -// return txSequenceNumber; -// } -// -// public void setTxSequenceNumber(long txSequenceNumber) { -// this.txSequenceNumber = txSequenceNumber; -// } -// -// public void setModelVersion(long modelVersion) { -// this.modelVersion = modelVersion; -// } -// -// public void setVersion(long version) { -// this.version = version; -// } -// -// public void setPrivilegeHash(ByteArray privilegeHash) { -// this.privilegeHash = privilegeHash; -// } -// -// public void setPrivilegeVersion(long privilegeVersion) { -// this.privilegeVersion = privilegeVersion; -// } -// -// public void setStateType(AccountStateType stateType) { -// this.stateType = stateType; -// } -// -// public void setStateHash(ByteArray stateHash) { -// this.stateHash = stateHash; -// } -// -// public void setStateVersion(long stateVersion) { -// this.stateVersion = stateVersion; -// } -// -// public void setCodeHash(ByteArray codeHash) { -// this.codeHash = codeHash; -// } -// -// public void setCodeVersion(long codeVersion) { -// this.codeVersion = codeVersion; -// } -// -// @Override -// public boolean equals(Object o) { -// if (this == o) -// return true; -// if (!(o instanceof AccountImpl)) -// return false; -// -// AccountImpl account = (AccountImpl) o; -// -// if (getBlockHeight() != account.getBlockHeight()) -// return false; -// if (getTxSequenceNumber() != account.getTxSequenceNumber()) -// return false; -// if (getModelVersion() != account.getModelVersion()) -// return false; -// if (getVersion() != account.getVersion()) -// return false; -// if (getPrivilegeVersion() != account.getPrivilegeVersion()) -// return false; -// if (getStateVersion() != account.getStateVersion()) -// return false; -// if (getCodeVersion() != account.getCodeVersion()) -// return false; -// if (!getIdentity().equals(account.getIdentity())) -// return false; -// if (!getLedgerHash().equals(account.getLedgerHash())) -// return false; -// if (!getPrivilegeHash().equals(account.getPrivilegeHash())) -// return false; -// if (getStateType() != account.getStateType()) -// return false; -// if (!getStateHash().equals(account.getStateHash())) -// return false; -// if (!code.equals(account.code)) -// return false; -// if (codeHashAlgorithm != account.codeHashAlgorithm) -// return false; -// return getCodeHash().equals(account.getCodeHash()); -// } -//} diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/AccountRegisterOperation.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/AccountRegisterOperation.java deleted file mode 100644 index 1983349a..00000000 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/AccountRegisterOperation.java +++ /dev/null @@ -1,38 +0,0 @@ -//package com.jd.blockchain.ledger; -// -//import my.utils.io.ByteArray; -// -///** -// * @author huanghaiquan -// * -// */ -//public interface AccountRegisterOperation extends BlockchainOperation { -// -// /** -// * 要注册的身份;
-// * -// * 必选; -// * -// * @return -// */ -// BlockchainIdentity getId(); -// -// /** -// * 数据状态的存储类型;
-// * -// * 必选; -// * -// * @return -// */ -// AccountStateType getStateType(); -// -//// /** -//// * 账户的合约代码;
-//// * -//// * 可选; -//// * -//// * @return -//// */ -//// ByteArray getContractCode(); -// -//} diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockBody.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockBody.java index 7ab8411d..ff8f3705 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockBody.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockBody.java @@ -2,22 +2,22 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.utils.ValueType; -@DataContract(code= TypeCodes.BLOCK_BODY) +@DataContract(code= DataCodes.BLOCK_BODY) public interface BlockBody extends LedgerDataSnapshot{ - @DataField(order=2, primitiveType = ValueType.BYTES) + @DataField(order=2, primitiveType = PrimitiveType.BYTES) HashDigest getPreviousHash(); - @DataField(order=3, primitiveType = ValueType.BYTES) + @DataField(order=3, primitiveType = PrimitiveType.BYTES) HashDigest getLedgerHash(); - @DataField(order=4, primitiveType= ValueType.INT64) + @DataField(order=4, primitiveType= PrimitiveType.INT64) long getHeight(); - @DataField(order=5, primitiveType = ValueType.BYTES) + @DataField(order=5, primitiveType = PrimitiveType.BYTES) HashDigest getTransactionSetHash(); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainAccount.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainAccount.java deleted file mode 100644 index cd9f40c5..00000000 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainAccount.java +++ /dev/null @@ -1,146 +0,0 @@ -//package com.jd.blockchain.ledger; -// -//import my.utils.io.ByteArray; -// -//import java.io.Serializable; -// -///** -// * 区块链账户; -// * -// * @author huanghaiquan -// * -// */ -//public interface BlockchainAccount extends Serializable { -// -// /** -// * 地址; -// * -// * @return -// */ -// BlockchainIdentity getAddress(); -// -// /** -// * 账户所属的账本的 hash;
-// * -// * 注:账本的hash 等同于该账本的创世区块的 hash; -// * -// * @return -// */ -// ByteArray getLedgerHash(); -// -// /** -// * 注册账户的区块高度;
-// * -// * 注册此账户的区块高度; -// * -// * @return -// */ -// long getRegisteredHeight(); -// -// /** -// * 交易流水号;
-// * -// * 账户的交易流水号初始为 0,当账户作为交易的科目账户(SubjectAccount )发起一个交易并被成功执行之后,账户的交易流水号增加1; -// * -// * @return -// */ -// long getTxSquenceNumber(); -// -// /** -// * 账户模型版本;
-// * -// * 表示构成一个账户结构的属性模型的程序版本号; -// * -// * @return -// */ -// long getModelVersion(); -// -// /** -// * 账户版本;
-// * -// * 初始为 0,对账户的每一次变更(包括对权限设置、状态和合约代码的变更)都会使账户状态版本增加 1 ;注:交易序号的改变不会导致账户版本的增加; -// * -// * @return -// */ -// long getVersion(); -// -// // /** -// // * 权限设置; -// // * -// // * @return -// // */ -// // PrivilegeSetting getPrivilegeSetting(); -// -// /** -// * 权限 hash;
-// * -// * 权限树的根hash; -// * -// * @return -// */ -// ByteArray getPrivilegeHash(); -// -// /** -// * 权限版本;
-// * -// * 初始为 0, 每次对权限的变更都导致版本号加 1; -// * -// * @return -// */ -// long getPrivilegeVersion(); -// -//// /** -//// * 状态类型;
-//// * -//// * 账户的状态类型有3种:空类型(NIL);键值类型;对象类型;参考 {@link AccountStateType} -//// * -//// * @return -//// */ -//// AccountStateType getStateType(); -// -// /** -// * 状态版本;
-// * -// * 初始为 0,每次对状态的更改都使得状态版本增加1; -// * -// * @return -// */ -// long getStateVersion(); -// -// /** -// * 状态哈希;
-// * -// * 数据状态的 merkle tree 的根hash; -// * -// * @return -// */ -// ByteArray getStateHash(); -// -// // /** -// // * 合约代码;
-// // * -// // * 合约代码是一段代码片段; -// // * -// // * @return -// // */ -// // String getCode(); -// -// /** -// * 合约代码哈希;
-// * -// * 由“账户地址+合约代码版本号+合约代码内容”生成的哈希; -// * -// * @return -// */ -// ByteArray getCodeHash(); -// -// /** -// * 代码版本;
-// * -// * 初始为 0,每次对代码的变更都使版本加 1 ; -// * -// * @return -// */ -// long getCodeVersion(); -// -//} diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainIdentity.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainIdentity.java index ea061bcf..6dce8004 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainIdentity.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainIdentity.java @@ -2,18 +2,18 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.PubKey; import com.jd.blockchain.utils.Bytes; -import com.jd.blockchain.utils.ValueType; -@DataContract(code= TypeCodes.BLOCK_CHAIN_IDENTITY) +@DataContract(code= DataCodes.BLOCK_CHAIN_IDENTITY) public interface BlockchainIdentity { - @DataField(order = 1, primitiveType = ValueType.BYTES) + @DataField(order = 1, primitiveType = PrimitiveType.BYTES) Bytes getAddress(); - @DataField(order = 2, primitiveType=ValueType.BYTES) + @DataField(order = 2, primitiveType=PrimitiveType.BYTES) PubKey getPubKey(); } \ No newline at end of file diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainOperation.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainOperation.java deleted file mode 100644 index e17f9b0a..00000000 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BlockchainOperation.java +++ /dev/null @@ -1,11 +0,0 @@ -//package com.jd.blockchain.ledger; -// -//import java.io.Serializable; -// -//public interface BlockchainOperation extends Serializable { -// -// OperationType getOperationType(); -// -//// Operation getOperation(); -// -//} diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValue.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValue.java index d54b29b0..864484f3 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValue.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValue.java @@ -2,11 +2,17 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.utils.io.BytesSlice; -@DataContract(code = TypeCodes.BYTES_VALUE) +/** + * BytesValue is the base structure of Value in Blockchain Account; + * + * @author huanghaiquan + * + */ +@DataContract(code = DataCodes.BYTES_VALUE) public interface BytesValue { /** @@ -15,14 +21,14 @@ public interface BytesValue { * @return */ @DataField(order = 0, refEnum = true) - DataType getType(); + BytesValueType getType(); /** * 数据值的二进制序列; * * @return */ - @DataField(order = 1, primitiveType = ValueType.BYTES) + @DataField(order = 1, primitiveType = PrimitiveType.BYTES) BytesSlice getValue(); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueImpl.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueEntry.java similarity index 63% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueImpl.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueEntry.java index 99278adb..753f5f3d 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueImpl.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueEntry.java @@ -5,21 +5,21 @@ import com.jd.blockchain.utils.io.BytesSlice; /** * Created by zhangshuang3 on 2018/12/3. */ -public class BytesValueImpl implements BytesValue{ - DataType type; +public class BytesValueEntry implements BytesValue{ + BytesValueType type; BytesSlice slice; - public BytesValueImpl(DataType type, byte[] bytes) { + public BytesValueEntry(BytesValueType type, byte[] bytes) { this.type = type; this.slice = new BytesSlice(bytes); } @Override - public DataType getType() { + public BytesValueType getType() { return this.type; } - public void setType(DataType type) { + public void setType(BytesValueType type) { this.type = type; } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueType.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueType.java new file mode 100644 index 00000000..306b2b89 --- /dev/null +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueType.java @@ -0,0 +1,101 @@ +package com.jd.blockchain.ledger; + +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.binaryproto.EnumContract; +import com.jd.blockchain.binaryproto.EnumField; +import com.jd.blockchain.consts.DataCodes; + +/** + * 键值操作的数据类型; + * + * @author huanghaiquan + * + */ +@EnumContract(code = DataCodes.ENUM_TYPE_BYTES_VALUE_TYPE, name = "BytesValueType", decription = "") +public enum BytesValueType { + + /** + * 空; + */ + NIL(PrimitiveType.NIL.CODE), + + /** + * 布尔型; + */ + BOOLEAN(PrimitiveType.BOOLEAN.CODE), + + /** + * 数值型: + */ + + INT8(PrimitiveType.INT8.CODE), + + INT16(PrimitiveType.INT16.CODE), + + INT32(PrimitiveType.INT32.CODE), + + INT64(PrimitiveType.INT64.CODE), + + /** + * 日期时间; + */ + DATETIME(PrimitiveType.DATETIME.CODE), + + /** + * 文本数据; + */ + TEXT(PrimitiveType.TEXT.CODE), + + /** + * 文本数据; + */ + JSON(PrimitiveType.JSON.CODE), + + /** + * 文本数据; + */ + XML(PrimitiveType.XML.CODE), + + /** + * 二进制数据; + */ + BYTES(PrimitiveType.BYTES.CODE), + + /** + * 大整数; + */ + BIG_INT(PrimitiveType.BIG_INT.CODE), + + /** + * 图片; + */ + IMG(PrimitiveType.IMG.CODE), + + /** + * 视频; + */ + VIDEO(PrimitiveType.VIDEO.CODE), + + /** + * 位置; + */ + LOCATION(PrimitiveType.LOCATION.CODE); + + + @EnumField(type = PrimitiveType.INT8) + public final byte CODE; + + private BytesValueType(byte code) { + this.CODE = code; + } + + public static BytesValueType valueOf(byte code) { + for (BytesValueType dataType : BytesValueType.values()) { + if (dataType.CODE == code) { + return dataType; + } + } + throw new IllegalArgumentException("Code [" + code + "] not supported by BytesValueType enum!"); + } + +} diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractCodeDeployOperation.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractCodeDeployOperation.java index 7d82a7c8..48190979 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractCodeDeployOperation.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractCodeDeployOperation.java @@ -2,16 +2,16 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; -@DataContract(code= TypeCodes.TX_OP_CONTRACT_DEPLOY) +@DataContract(code= DataCodes.TX_OP_CONTRACT_DEPLOY) public interface ContractCodeDeployOperation extends Operation { @DataField(order=2, refContract = true) BlockchainIdentity getContractID(); - @DataField(order=3, primitiveType=ValueType.BYTES) + @DataField(order=3, primitiveType=PrimitiveType.BYTES) byte[] getChainCode(); diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractEventSendOperation.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractEventSendOperation.java index 38c6b90d..a9bd77e8 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractEventSendOperation.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ContractEventSendOperation.java @@ -2,31 +2,25 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.utils.Bytes; -import com.jd.blockchain.utils.ValueType; /** * @author huanghaiquan * */ -@DataContract(code= TypeCodes.TX_OP_CONTRACT_EVENT_SEND) +@DataContract(code= DataCodes.TX_OP_CONTRACT_EVENT_SEND) public interface ContractEventSendOperation extends Operation { -// @DataField(order=1, refEnum=true) -// @Override -// default OperationType getType() { -// return OperationType.SEND_CONTRACT_EVENT; -// } - - @DataField(order=2, primitiveType=ValueType.BYTES) + @DataField(order=2, primitiveType=PrimitiveType.BYTES) Bytes getContractAddress(); - @DataField(order=3, primitiveType=ValueType.TEXT) + @DataField(order=3, primitiveType=PrimitiveType.TEXT) String getEvent(); - @DataField(order=4, primitiveType=ValueType.BYTES) + @DataField(order=4, primitiveType=PrimitiveType.BYTES) byte[] getArgs(); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/CryptoSetting.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/CryptoSetting.java index 71c25416..cb41c645 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/CryptoSetting.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/CryptoSetting.java @@ -2,8 +2,8 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; /** * 默克尔树算法相关的配置; @@ -11,7 +11,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code = TypeCodes.METADATA_CRYPTO_SETTING) +@DataContract(code = DataCodes.METADATA_CRYPTO_SETTING) public interface CryptoSetting { /** @@ -23,7 +23,7 @@ public interface CryptoSetting { * * @return */ - @DataField(order = 1, primitiveType = ValueType.INT16) + @DataField(order = 1, primitiveType = PrimitiveType.INT16) public short getHashAlgorithm(); /** @@ -35,7 +35,7 @@ public interface CryptoSetting { * * @return */ - @DataField(order = 2, primitiveType = ValueType.BOOLEAN) + @DataField(order = 2, primitiveType = PrimitiveType.BOOLEAN) public boolean getAutoVerifyHash(); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataAccountKVSetOperation.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataAccountKVSetOperation.java index a892aba9..5bedb8bc 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataAccountKVSetOperation.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataAccountKVSetOperation.java @@ -2,30 +2,30 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.utils.Bytes; -import com.jd.blockchain.utils.ValueType; -@DataContract(code= TypeCodes.TX_OP_DATA_ACC_SET) +@DataContract(code= DataCodes.TX_OP_DATA_ACC_SET) public interface DataAccountKVSetOperation extends Operation{ - @DataField(order=2, primitiveType=ValueType.BYTES) + @DataField(order=2, primitiveType=PrimitiveType.BYTES) Bytes getAccountAddress(); @DataField(order=3, list=true, refContract=true) KVWriteEntry[] getWriteSet(); - @DataContract(code=TypeCodes.TX_OP_DATA_ACC_SET_KV) + @DataContract(code=DataCodes.TX_OP_DATA_ACC_SET_KV) public static interface KVWriteEntry{ - @DataField(order=1, primitiveType=ValueType.TEXT) + @DataField(order=1, primitiveType=PrimitiveType.TEXT) String getKey(); @DataField(order=2, refContract = true) BytesValue getValue(); - @DataField(order=3, primitiveType=ValueType.INT64) + @DataField(order=3, primitiveType=PrimitiveType.INT64) long getExpectedVersion(); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataAccountRegisterOperation.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataAccountRegisterOperation.java index c938d352..f75621f7 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataAccountRegisterOperation.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataAccountRegisterOperation.java @@ -2,9 +2,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; -@DataContract(code= TypeCodes.TX_OP_DATA_ACC_REG) +@DataContract(code= DataCodes.TX_OP_DATA_ACC_REG) public interface DataAccountRegisterOperation extends Operation { @DataField(order=1, refContract = true) diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataType.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataType.java deleted file mode 100644 index 278937d0..00000000 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DataType.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.jd.blockchain.ledger; - -import com.jd.blockchain.binaryproto.EnumContract; -import com.jd.blockchain.binaryproto.EnumField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; - -/** - * 键值操作的数据类型; - * - * @author huanghaiquan - * - */ -@EnumContract(code= TypeCodes.ENUM_TYPE_DATA_TYPE, name = "DataType", decription = "") -public enum DataType { - - /** - * 空; - */ - NIL((byte) 0x00), - - /** - * 布尔型; - */ - BOOLEAN((byte) 0x10), - - /** - * 数值型: - */ - - INT8((byte) 0x11), - - INT16((byte) 0x12), - - INT32((byte) 0x13), - - INT64((byte) 0x14), - - /** - * 日期时间; - */ - DATETIME((byte) 0x15), - - /** - * 文本数据; - */ - TEXT((byte) 0x20), - - /** - * 文本数据; - */ - JSON((byte) 0x21), - - /** - * 文本数据; - */ - XML((byte) 0x22), - - /** - * 二进制数据; - */ - BYTES((byte) 0x40), - - /** - * 大整数; - */ - BIG_INT((byte) 0x41), - - /** - * 图片; - */ - IMG((byte) 0x42), - - /** - * 视频; - */ - VIDEO((byte) 0x43), - - /** - * 位置; - */ - LOCATION((byte) 0x44); - -// /** -// * 引用;
-// * -// * 表示引用区块链系统中的某一个特定的对象,用以下形式的 URI 表示; -// * -// * state://ledger/account/key/version
-// * 或
-// * proof:state://account_merkle_path/key_merkle_path -// * -// * proof:tx:// -// * -// */ -// REFERENCE((byte) 0x80); - @EnumField(type= ValueType.INT8) - public final byte CODE; - - private DataType(byte code) { - this.CODE = code; - } - - public static DataType valueOf(byte code) { - for (DataType dataType : DataType.values()) { - if (dataType.CODE == code) { - return dataType; - } - } - throw new IllegalArgumentException("Unsupported code[" + code + "] of DataType!"); - } - -} diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DigitalSignature.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DigitalSignature.java index 1a4ce413..f5acef07 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DigitalSignature.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DigitalSignature.java @@ -1,7 +1,7 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; /** * 数字签名; @@ -9,7 +9,7 @@ import com.jd.blockchain.consts.TypeCodes; * @author huanghaiquan * */ -@DataContract(code= TypeCodes.DIGITALSIGNATURE) +@DataContract(code= DataCodes.DIGITALSIGNATURE) public interface DigitalSignature extends DigitalSignatureBody { } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DigitalSignatureBody.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DigitalSignatureBody.java index 276f4ba9..de54970b 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DigitalSignatureBody.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/DigitalSignatureBody.java @@ -2,10 +2,10 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.PubKey; import com.jd.blockchain.crypto.SignatureDigest; -import com.jd.blockchain.utils.ValueType; /** * 数字签名; @@ -13,7 +13,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code= TypeCodes.DIGITALSIGNATURE_BODY) +@DataContract(code= DataCodes.DIGITALSIGNATURE_BODY) public interface DigitalSignatureBody { /** @@ -23,7 +23,7 @@ public interface DigitalSignatureBody { * * @return */ - @DataField(order=1, primitiveType = ValueType.BYTES) + @DataField(order=1, primitiveType = PrimitiveType.BYTES) PubKey getPubKey(); /** @@ -31,7 +31,7 @@ public interface DigitalSignatureBody { * * @return */ - @DataField(order=2, primitiveType = ValueType.BYTES ) + @DataField(order=2, primitiveType = PrimitiveType.BYTES ) SignatureDigest getDigest(); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/EndpointRequest.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/EndpointRequest.java index 2c0acba0..00253b85 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/EndpointRequest.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/EndpointRequest.java @@ -2,14 +2,14 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.utils.ValueType; -@DataContract(code= TypeCodes.REQUEST_ENDPOINT) +@DataContract(code= DataCodes.REQUEST_ENDPOINT) public interface EndpointRequest { - @DataField(order=1, primitiveType = ValueType.BYTES) + @DataField(order=1, primitiveType = PrimitiveType.BYTES) HashDigest getHash(); /** * 交易内容; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/HashObject.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/HashObject.java index 293c9394..ccba57aa 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/HashObject.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/HashObject.java @@ -1,7 +1,7 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; /** @@ -10,7 +10,7 @@ import com.jd.blockchain.crypto.HashDigest; * @author huanghaiquan * */ -@DataContract(code= TypeCodes.HASH_OBJECT) +@DataContract(code= DataCodes.HASH_OBJECT) public interface HashObject { /** diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/KVDataEntry.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/KVDataEntry.java index f4875b9c..efce0703 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/KVDataEntry.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/KVDataEntry.java @@ -1,6 +1,6 @@ package com.jd.blockchain.ledger; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; public interface KVDataEntry { @@ -27,7 +27,7 @@ public interface KVDataEntry { * * @return */ - ValueType getType(); + PrimitiveType getType(); /** * 值; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/KVDataObject.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/KVDataObject.java index b3e1157a..26467e85 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/KVDataObject.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/KVDataObject.java @@ -5,7 +5,7 @@ import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.util.Date; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.utils.io.ByteArray; import com.jd.blockchain.utils.io.BytesUtils; @@ -25,11 +25,11 @@ public class KVDataObject implements KVDataEntry { private long version; - private ValueType type; + private PrimitiveType type; private byte[] bytesValue; - public KVDataObject(String key, long version, ValueType type, byte[] bytesValue) { + public KVDataObject(String key, long version, PrimitiveType type, byte[] bytesValue) { this.key = key; this.type = type; this.version = version < 0 ? -1 : version; @@ -62,7 +62,7 @@ public class KVDataObject implements KVDataEntry { * @see com.jd.blockchain.ledger.KVDataEntry#getType() */ @Override - public ValueType getType() { + public PrimitiveType getType() { return type; } @@ -97,13 +97,13 @@ public class KVDataObject implements KVDataEntry { * 是否为空值; *

* - * 仅当数据类型 {@link #getType()} 为 {@link ValueType#NIL} 时返回 true,其它情况返回 false; + * 仅当数据类型 {@link #getType()} 为 {@link PrimitiveType#NIL} 时返回 true,其它情况返回 false; *

* * @return */ public boolean isNil() { - return ValueType.NIL == type; + return PrimitiveType.NIL == type; } /** @@ -119,7 +119,7 @@ public class KVDataObject implements KVDataEntry { * 返回 8 位整数值; *

* - * 仅当数据类型 {@link #getType()} 为 {@link ValueType#INT8} 有效; + * 仅当数据类型 {@link #getType()} 为 {@link PrimitiveType#INT8} 有效; *

* * 无效类型将引发 {@link IllegalStateException} 异常; @@ -127,17 +127,17 @@ public class KVDataObject implements KVDataEntry { * @return */ public byte tinyValue() { - if (ValueType.INT8 == type) { + if (PrimitiveType.INT8 == type) { return bytesValue[0]; } - throw new IllegalStateException(String.format("Expected type [%s], but [%s]", ValueType.INT8, type)); + throw new IllegalStateException(String.format("Expected type [%s], but [%s]", PrimitiveType.INT8, type)); } /** * 返回 16 位整数值; *

* - * 仅当数据类型 {@link #getType()} 为 {@link ValueType#INT16} 有效; + * 仅当数据类型 {@link #getType()} 为 {@link PrimitiveType#INT16} 有效; *

* * 无效类型将引发 {@link IllegalStateException} 异常; @@ -145,17 +145,17 @@ public class KVDataObject implements KVDataEntry { * @return */ public short shortValue() { - if (ValueType.INT16 == type) { + if (PrimitiveType.INT16 == type) { return BytesUtils.toShort(bytesValue, 0); } - throw new IllegalStateException(String.format("Expected type [%s], but [%s]", ValueType.INT16, type)); + throw new IllegalStateException(String.format("Expected type [%s], but [%s]", PrimitiveType.INT16, type)); } /** * 返回 32 位整数值; *

* - * 仅当数据类型 {@link #getType()} 为 {@link ValueType#INT32} 有效; + * 仅当数据类型 {@link #getType()} 为 {@link PrimitiveType#INT32} 有效; *

* * 无效类型将引发 {@link IllegalStateException} 异常; @@ -163,17 +163,17 @@ public class KVDataObject implements KVDataEntry { * @return */ public int intValue() { - if (ValueType.INT32 == type) { + if (PrimitiveType.INT32 == type) { return BytesUtils.toInt(bytesValue, 0); } - throw new IllegalStateException(String.format("Expected type [%s], but [%s]", ValueType.INT32, type)); + throw new IllegalStateException(String.format("Expected type [%s], but [%s]", PrimitiveType.INT32, type)); } /** * 返回 64 位整数值; *

* - * 仅当数据类型 {@link #getType()} 为 {@link ValueType#INT64} 有效; + * 仅当数据类型 {@link #getType()} 为 {@link PrimitiveType#INT64} 有效; *

* * 无效类型将引发 {@link IllegalStateException} 异常; @@ -181,10 +181,10 @@ public class KVDataObject implements KVDataEntry { * @return */ public long longValue() { - if (ValueType.INT64 == type) { + if (PrimitiveType.INT64 == type) { return BytesUtils.toLong(bytesValue, 0); } - throw new IllegalStateException(String.format("Expected type [%s], but [%s]", ValueType.INT64, type)); + throw new IllegalStateException(String.format("Expected type [%s], but [%s]", PrimitiveType.INT64, type)); } @@ -192,7 +192,7 @@ public class KVDataObject implements KVDataEntry { * 返回大整数值; *

* - * 仅当数据类型 {@link #getType()} 为 {@link ValueType#BIG_INT} 有效; + * 仅当数据类型 {@link #getType()} 为 {@link PrimitiveType#BIG_INT} 有效; *

* * 无效类型将引发 {@link IllegalStateException} 异常; @@ -200,17 +200,17 @@ public class KVDataObject implements KVDataEntry { * @return */ public BigInteger bigIntValue() { - if (ValueType.BIG_INT == type) { + if (PrimitiveType.BIG_INT == type) { return new BigInteger(bytesValue); } - throw new IllegalStateException(String.format("Expected type [%s], but [%s]", ValueType.BIG_INT, type)); + throw new IllegalStateException(String.format("Expected type [%s], but [%s]", PrimitiveType.BIG_INT, type)); } /** * 返回布尔值; *

* - * 仅当数据类型 {@link #getType()} 为 {@link ValueType#BIG_INT} 有效; + * 仅当数据类型 {@link #getType()} 为 {@link PrimitiveType#BIG_INT} 有效; *

* * 无效类型将引发 {@link IllegalStateException} 异常; @@ -218,17 +218,17 @@ public class KVDataObject implements KVDataEntry { * @return */ public boolean boolValue() { - if (ValueType.BOOLEAN == type) { + if (PrimitiveType.BOOLEAN == type) { return bytesValue[0] != 0; } - throw new IllegalStateException(String.format("Expected type [%s], but [%s]", ValueType.BOOLEAN, type)); + throw new IllegalStateException(String.format("Expected type [%s], but [%s]", PrimitiveType.BOOLEAN, type)); } /** * 返回日期时间值; *

* - * 仅当数据类型 {@link #getType()} 为 {@link ValueType#DATETIME} 有效; + * 仅当数据类型 {@link #getType()} 为 {@link PrimitiveType#DATETIME} 有效; *

* * 无效类型将引发 {@link IllegalStateException} 异常; @@ -236,19 +236,19 @@ public class KVDataObject implements KVDataEntry { * @return */ public Date datetimeValue() { - if (ValueType.DATETIME == type) { + if (PrimitiveType.DATETIME == type) { long ts = BytesUtils.toLong(bytesValue); return new Date(ts); } - throw new IllegalStateException(String.format("Expected type [%s], but [%s]", ValueType.DATETIME, type)); + throw new IllegalStateException(String.format("Expected type [%s], but [%s]", PrimitiveType.DATETIME, type)); } /** * 返回大整数值; *

* - * 仅当数据类型 {@link #getType()} 为 {@link ValueType#TEXT} / {@link ValueType#JSON} / - * {@link ValueType#XML} 有效; + * 仅当数据类型 {@link #getType()} 为 {@link PrimitiveType#TEXT} / {@link PrimitiveType#JSON} / + * {@link PrimitiveType#XML} 有效; *

* * 无效类型将引发 {@link IllegalStateException} 异常; @@ -256,15 +256,15 @@ public class KVDataObject implements KVDataEntry { * @return */ public String stringValue() { - if (ValueType.TEXT == type || ValueType.JSON == type || ValueType.XML == type) { + if (PrimitiveType.TEXT == type || PrimitiveType.JSON == type || PrimitiveType.XML == type) { try { return new String(bytesValue, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new IllegalStateException(e.getMessage(), e); } } - throw new IllegalStateException(String.format("Expected type [%s] or [%s] or [%s] , but [%s]", ValueType.TEXT, - ValueType.JSON, ValueType.XML, type)); + throw new IllegalStateException(String.format("Expected type [%s] or [%s] or [%s] , but [%s]", PrimitiveType.TEXT, + PrimitiveType.JSON, PrimitiveType.XML, type)); } // // ---------------- diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerBlock.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerBlock.java index d002ed2d..1b58c8a7 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerBlock.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerBlock.java @@ -2,11 +2,11 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.utils.ValueType; -@DataContract(code = TypeCodes.BLOCK) +@DataContract(code = DataCodes.BLOCK) public interface LedgerBlock extends BlockBody { /** @@ -19,7 +19,7 @@ public interface LedgerBlock extends BlockBody { * * @return */ - @DataField(order = 1, primitiveType = ValueType.BYTES) + @DataField(order = 1, primitiveType = PrimitiveType.BYTES) HashDigest getHash(); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerDataSnapshot.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerDataSnapshot.java index 83d0e78c..d6c9ecff 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerDataSnapshot.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerDataSnapshot.java @@ -2,23 +2,23 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.utils.ValueType; -@DataContract(code=TypeCodes.DATA_SNAPSHOT) +@DataContract(code=DataCodes.DATA_SNAPSHOT) public interface LedgerDataSnapshot { - @DataField(order=1, primitiveType = ValueType.BYTES) + @DataField(order=1, primitiveType = PrimitiveType.BYTES) HashDigest getAdminAccountHash(); - @DataField(order=2, primitiveType = ValueType.BYTES) + @DataField(order=2, primitiveType = PrimitiveType.BYTES) HashDigest getUserAccountSetHash(); - @DataField(order=3, primitiveType = ValueType.BYTES) + @DataField(order=3, primitiveType = PrimitiveType.BYTES) HashDigest getDataAccountSetHash(); - @DataField(order=4, primitiveType = ValueType.BYTES) + @DataField(order=4, primitiveType = PrimitiveType.BYTES) HashDigest getContractAccountSetHash(); // HashDigest getUserPrivilegeHash(); diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitOperation.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitOperation.java index c14e79c1..08b02e07 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitOperation.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitOperation.java @@ -2,9 +2,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; -@DataContract(code= TypeCodes.TX_OP_LEDGER_INIT) +@DataContract(code= DataCodes.TX_OP_LEDGER_INIT) public interface LedgerInitOperation extends Operation{ @DataField(order=1, refContract=true) diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitSetting.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitSetting.java index 7d36dd30..90e2d44d 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitSetting.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerInitSetting.java @@ -2,9 +2,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.utils.Bytes; -import com.jd.blockchain.utils.ValueType; /** * 账本初始化配置; @@ -12,14 +12,14 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code = TypeCodes.METADATA_INIT_SETTING) +@DataContract(code = DataCodes.METADATA_INIT_SETTING) public interface LedgerInitSetting { /** * 账本的种子; * @return */ - @DataField(order = 1, primitiveType = ValueType.BYTES) + @DataField(order = 1, primitiveType = PrimitiveType.BYTES) byte[] getLedgerSeed(); /** @@ -39,7 +39,7 @@ public interface LedgerInitSetting { CryptoSetting getCryptoSetting(); - @DataField(order = 4, primitiveType=ValueType.TEXT) + @DataField(order = 4, primitiveType=PrimitiveType.TEXT) String getConsensusProvider(); /** @@ -47,7 +47,7 @@ public interface LedgerInitSetting { * * @return */ - @DataField(order = 5, primitiveType=ValueType.BYTES) + @DataField(order = 5, primitiveType=PrimitiveType.BYTES) Bytes getConsensusSettings(); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerTransaction.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerTransaction.java index ef7cb4d3..6514193e 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerTransaction.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/LedgerTransaction.java @@ -1,7 +1,7 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; /** * 账本的事务; @@ -11,7 +11,7 @@ import com.jd.blockchain.consts.TypeCodes; * @author huanghaiquan * */ -@DataContract(code=TypeCodes.TX_LEDGER) +@DataContract(code=DataCodes.TX_LEDGER) public interface LedgerTransaction extends Transaction, LedgerDataSnapshot { } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/NodeRequest.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/NodeRequest.java index c141de6f..4ccd8051 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/NodeRequest.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/NodeRequest.java @@ -2,9 +2,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; -@DataContract(code = TypeCodes.REQUEST_NODE) +@DataContract(code = DataCodes.REQUEST_NODE) public interface NodeRequest extends EndpointRequest { diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/Operation.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/Operation.java index cbc7ffcb..ce78fa11 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/Operation.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/Operation.java @@ -1,9 +1,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; -@DataContract(code= TypeCodes.TX_OP) +@DataContract(code= DataCodes.TX_OP) public interface Operation { } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ParticipantNode.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ParticipantNode.java index 91b63af1..c8974d1c 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ParticipantNode.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/ParticipantNode.java @@ -2,9 +2,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.PubKey; -import com.jd.blockchain.utils.ValueType; /** * 参与方节点; @@ -12,7 +12,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code = TypeCodes.METADATA_CONSENSUS_PARTICIPANT) +@DataContract(code = DataCodes.METADATA_CONSENSUS_PARTICIPANT) public interface ParticipantNode {// extends ConsensusNode, ParticipantInfo { /** @@ -29,7 +29,7 @@ public interface ParticipantNode {// extends ConsensusNode, ParticipantInfo { * * @return */ - @DataField(order = 1, primitiveType = ValueType.TEXT) + @DataField(order = 1, primitiveType = PrimitiveType.TEXT) String getAddress(); /** @@ -37,7 +37,7 @@ public interface ParticipantNode {// extends ConsensusNode, ParticipantInfo { * * @return */ - @DataField(order = 2, primitiveType = ValueType.TEXT) + @DataField(order = 2, primitiveType = PrimitiveType.TEXT) String getName(); /** @@ -45,6 +45,6 @@ public interface ParticipantNode {// extends ConsensusNode, ParticipantInfo { * * @return */ - @DataField(order = 3, primitiveType = ValueType.BYTES) + @DataField(order = 3, primitiveType = PrimitiveType.BYTES) PubKey getPubKey(); } \ No newline at end of file diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/Transaction.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/Transaction.java index 76c98880..a2442521 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/Transaction.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/Transaction.java @@ -2,9 +2,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.utils.ValueType; import com.jd.blockchain.utils.io.ByteArray; /** @@ -13,7 +13,7 @@ import com.jd.blockchain.utils.io.ByteArray; * @author huanghaiquan * */ -@DataContract(code= TypeCodes.TX) +@DataContract(code= DataCodes.TX) public interface Transaction extends NodeRequest, HashObject { /** @@ -23,7 +23,7 @@ public interface Transaction extends NodeRequest, HashObject { * * @return */ - @DataField(order=1, primitiveType = ValueType.BYTES) + @DataField(order=1, primitiveType = PrimitiveType.BYTES) @Override HashDigest getHash(); @@ -32,7 +32,7 @@ public interface Transaction extends NodeRequest, HashObject { * * @return */ - @DataField(order=2, primitiveType=ValueType.INT64) + @DataField(order=2, primitiveType=PrimitiveType.INT64) long getBlockHeight(); /** diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionBuilder.java index 65eca630..26c5cfc5 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionBuilder.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionBuilder.java @@ -1,8 +1,8 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.ledger.data.ClientOperator; -import com.jd.blockchain.ledger.data.LedgerInitOperator; +import com.jd.blockchain.transaction.ClientOperator; +import com.jd.blockchain.transaction.LedgerInitOperator; /** * 区块链交易模板; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionContent.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionContent.java index 936c2a21..5203835a 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionContent.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionContent.java @@ -2,9 +2,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.utils.ValueType; /** * 交易内容; @@ -12,10 +12,10 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code= TypeCodes.TX_CONTENT) +@DataContract(code= DataCodes.TX_CONTENT) public interface TransactionContent extends TransactionContentBody, HashObject { @Override - @DataField(order=1, primitiveType = ValueType.BYTES) + @DataField(order=1, primitiveType = PrimitiveType.BYTES) HashDigest getHash(); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionContentBody.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionContentBody.java index 41663044..14ce61ac 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionContentBody.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionContentBody.java @@ -2,9 +2,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.utils.ValueType; /** * 交易内容; @@ -12,7 +12,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code = TypeCodes.TX_CONTENT_BODY) +@DataContract(code = DataCodes.TX_CONTENT_BODY) public interface TransactionContentBody { /** @@ -22,7 +22,7 @@ public interface TransactionContentBody { * * @return */ - @DataField(order = 1, primitiveType = ValueType.BYTES) + @DataField(order = 1, primitiveType = PrimitiveType.BYTES) HashDigest getLedgerHash(); /** diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionRequest.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionRequest.java index 557d1141..c2fc42e1 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionRequest.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionRequest.java @@ -2,9 +2,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.utils.ValueType; /** * 交易请求; @@ -12,7 +12,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code= TypeCodes.REQUEST) +@DataContract(code= DataCodes.REQUEST) public interface TransactionRequest extends NodeRequest, HashObject { /** @@ -21,6 +21,6 @@ public interface TransactionRequest extends NodeRequest, HashObject { * @return */ @Override - @DataField(order=1, primitiveType = ValueType.BYTES) + @DataField(order=1, primitiveType = PrimitiveType.BYTES) HashDigest getHash(); } \ No newline at end of file diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionResponse.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionResponse.java index b6168dcb..f83a8961 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionResponse.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionResponse.java @@ -2,9 +2,9 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.binaryproto.PrimitiveType; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.utils.ValueType; /** * 交易请求 {@link TransactionRequest} 的回复; @@ -12,7 +12,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@DataContract(code= TypeCodes.TX_RESPONSE) +@DataContract(code= DataCodes.TX_RESPONSE) public interface TransactionResponse { /** @@ -20,7 +20,7 @@ public interface TransactionResponse { * * @return */ - @DataField(order=1, primitiveType = ValueType.BYTES) + @DataField(order=1, primitiveType = PrimitiveType.BYTES) HashDigest getContentHash(); /** @@ -36,7 +36,7 @@ public interface TransactionResponse { * * @return */ - @DataField(order=3, primitiveType = ValueType.BYTES) + @DataField(order=3, primitiveType = PrimitiveType.BYTES) HashDigest getBlockHash(); /** @@ -47,10 +47,10 @@ public interface TransactionResponse { * * @return */ - @DataField(order=4, primitiveType=ValueType.INT64) + @DataField(order=4, primitiveType=PrimitiveType.INT64) long getBlockHeight(); - @DataField(order=5, primitiveType=ValueType.BOOLEAN) + @DataField(order=5, primitiveType=PrimitiveType.BOOLEAN) boolean isSuccess(); } \ No newline at end of file diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java index ed756109..f32f2cc1 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionState.java @@ -1,9 +1,9 @@ package com.jd.blockchain.ledger; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.binaryproto.EnumContract; import com.jd.blockchain.binaryproto.EnumField; -import com.jd.blockchain.consts.TypeCodes; -import com.jd.blockchain.utils.ValueType; +import com.jd.blockchain.consts.DataCodes; /** * 交易(事务)执行状态; @@ -11,7 +11,7 @@ import com.jd.blockchain.utils.ValueType; * @author huanghaiquan * */ -@EnumContract(code= TypeCodes.ENUM_TYPE_TRANSACTION_STATE) +@EnumContract(code= DataCodes.ENUM_TYPE_TRANSACTION_STATE) public enum TransactionState { /** @@ -39,7 +39,7 @@ public enum TransactionState { */ TIMEOUT((byte) 0x81); - @EnumField(type= ValueType.INT8) + @EnumField(type= PrimitiveType.INT8) public final byte CODE; private TransactionState(byte code) { diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionTemplate.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionTemplate.java index afc1eb95..3c5acdcf 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionTemplate.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/TransactionTemplate.java @@ -1,7 +1,7 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.ledger.data.ClientOperator; +import com.jd.blockchain.transaction.ClientOperator; /** * 区块链交易模板; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserInfo.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserInfo.java index eea581ff..48759b9f 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserInfo.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserInfo.java @@ -1,10 +1,10 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; import com.jd.blockchain.crypto.PubKey; -@DataContract(code= TypeCodes.USER) +@DataContract(code= DataCodes.USER) public interface UserInfo extends AccountHeader { PubKey getDataPubKey(); diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserRegisterOperation.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserRegisterOperation.java index f565b190..f325085e 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserRegisterOperation.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/UserRegisterOperation.java @@ -2,17 +2,11 @@ package com.jd.blockchain.ledger; import com.jd.blockchain.binaryproto.DataContract; import com.jd.blockchain.binaryproto.DataField; -import com.jd.blockchain.consts.TypeCodes; +import com.jd.blockchain.consts.DataCodes; -@DataContract(code= TypeCodes.TX_OP_USER_REG) +@DataContract(code= DataCodes.TX_OP_USER_REG) public interface UserRegisterOperation extends Operation { -// @Override -// @DataField(order=1, refEnum = true) -// default OperationType getType() { -// return OperationType.REGISTER_DATA_ACCOUNT; -// } - @DataField(order=2, refContract = true) BlockchainIdentity getUserID(); diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/EventOperator.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/EventOperator.java deleted file mode 100644 index 551dc06b..00000000 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/EventOperator.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.jd.blockchain.ledger.data; - -public interface EventOperator { - - /** - * 部署合约; - * @return - */ - ContractEventSendOperationBuilder contractEvents(); - -} \ No newline at end of file diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionBatchProcess.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionBatchProcess.java similarity index 95% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionBatchProcess.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionBatchProcess.java index 083b5215..9ac5c78e 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionBatchProcess.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionBatchProcess.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.service; +package com.jd.blockchain.service; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionBatchResult.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionBatchResult.java similarity index 85% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionBatchResult.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionBatchResult.java index b1363325..3b7038a5 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionBatchResult.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionBatchResult.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.service; +package com.jd.blockchain.service; import java.util.Iterator; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionBatchResultHandle.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionBatchResultHandle.java similarity index 82% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionBatchResultHandle.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionBatchResultHandle.java index 2af06531..03caed25 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionBatchResultHandle.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionBatchResultHandle.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.service; +package com.jd.blockchain.service; import com.jd.blockchain.ledger.TransactionState; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionEngine.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionEngine.java similarity index 83% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionEngine.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionEngine.java index bfcde37b..aad92209 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/service/TransactionEngine.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/service/TransactionEngine.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.service; +package com.jd.blockchain.service; import com.jd.blockchain.crypto.HashDigest; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/manage/GatewayIncomingSetting.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/setting/GatewayIncomingSetting.java similarity index 86% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/manage/GatewayIncomingSetting.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/setting/GatewayIncomingSetting.java index abd25b4d..d6212fd7 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/manage/GatewayIncomingSetting.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/setting/GatewayIncomingSetting.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.manage; +package com.jd.blockchain.setting; /** * 网关接入设置; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/manage/LedgerIncomingSetting.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/setting/LedgerIncomingSetting.java similarity index 98% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/manage/LedgerIncomingSetting.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/setting/LedgerIncomingSetting.java index 15dbbf77..0e110f12 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/manage/LedgerIncomingSetting.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/setting/LedgerIncomingSetting.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.manage; +package com.jd.blockchain.setting; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.CryptoSetting; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/BlockchainOperationFactory.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/BlockchainOperationFactory.java similarity index 93% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/BlockchainOperationFactory.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/BlockchainOperationFactory.java index 08d9d45a..bd1bfd5b 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/BlockchainOperationFactory.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/BlockchainOperationFactory.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import java.util.ArrayList; import java.util.Collection; @@ -15,6 +15,10 @@ import com.jd.blockchain.ledger.Operation; import com.jd.blockchain.ledger.UserRegisterOperation; import com.jd.blockchain.utils.Bytes; +/** + * @author huanghaiquan + * + */ public class BlockchainOperationFactory implements ClientOperator, LedgerInitOperator { private static final LedgerInitOperationBuilderImpl LEDGER_INIT_OP_BUILDER = new LedgerInitOperationBuilderImpl(); @@ -27,6 +31,7 @@ public class BlockchainOperationFactory implements ClientOperator, LedgerInitOpe private static final ContractEventSendOperationBuilderImpl CONTRACT_EVENT_SEND_OP_BUILDER = new ContractEventSendOperationBuilderImpl(); + private LedgerInitOperationBuilder ledgerInitOpBuilder = new LedgerInitOperationBuilderFilter(); private UserRegisterOperationBuilder userRegOpBuilder = new UserRegisterOperationBuilderFilter(); @@ -73,6 +78,12 @@ public class BlockchainOperationFactory implements ClientOperator, LedgerInitOpe public ContractEventSendOperationBuilder contractEvents() { return contractEventSendOpBuilder; } + + @Override + public T contract(String address, Class contractIntf) { + // TODO Auto-generated method stub + return null; + } public Collection getOperations() { // TODO: 合并操作列表中可能的重复操作; diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainQueryService.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/BlockchainQueryService.java similarity index 95% rename from source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainQueryService.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/BlockchainQueryService.java index 942019a5..3b33a720 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainQueryService.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/BlockchainQueryService.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.sdk; +package com.jd.blockchain.transaction; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.*; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ClientOperator.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ClientOperator.java similarity index 81% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ClientOperator.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ClientOperator.java index 9fe9ff4f..5e47ef89 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ClientOperator.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ClientOperator.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; /** * 面向客户端的操作; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ConsensusParticipantData.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ConsensusParticipantData.java similarity index 95% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ConsensusParticipantData.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ConsensusParticipantData.java index e31d6447..b4e64744 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ConsensusParticipantData.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ConsensusParticipantData.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.crypto.PubKey; import com.jd.blockchain.ledger.ParticipantNode; 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/transaction/ContractCodeDeployOpTemplate.java similarity index 92% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOpTemplate.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractCodeDeployOpTemplate.java index 704d0cde..4da74638 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/transaction/ContractCodeDeployOpTemplate.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.ledger.BlockchainIdentity; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOperationBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractCodeDeployOperationBuilder.java similarity index 87% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOperationBuilder.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractCodeDeployOperationBuilder.java index ee48739c..ff2c18fb 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOperationBuilder.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractCodeDeployOperationBuilder.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.ContractCodeDeployOperation; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOperationBuilderImpl.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractCodeDeployOperationBuilderImpl.java similarity index 88% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOperationBuilderImpl.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractCodeDeployOperationBuilderImpl.java index 67921caf..a0c2bba4 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractCodeDeployOperationBuilderImpl.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractCodeDeployOperationBuilderImpl.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.ContractCodeDeployOperation; 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/transaction/ContractEventSendOpTemplate.java similarity index 91% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOpTemplate.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOpTemplate.java index 23b15d02..29777b96 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/transaction/ContractEventSendOpTemplate.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.ledger.ContractEventSendOperation; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOperationBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOperationBuilder.java similarity index 85% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOperationBuilder.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOperationBuilder.java index 1c3f7721..66f1ec22 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOperationBuilder.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOperationBuilder.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.ContractEventSendOperation; import com.jd.blockchain.utils.Bytes; @@ -11,6 +11,7 @@ public interface ContractEventSendOperationBuilder { * @param args 事件参数; * @return */ + @Deprecated ContractEventSendOperation send(String address, String event, byte[] args); /** @@ -19,6 +20,7 @@ public interface ContractEventSendOperationBuilder { * @param args 事件参数; * @return */ + @Deprecated ContractEventSendOperation send(Bytes address, String event, byte[] args); } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOperationBuilderImpl.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOperationBuilderImpl.java similarity index 76% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOperationBuilderImpl.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOperationBuilderImpl.java index fdef8106..7c54e4e8 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractEventSendOperationBuilderImpl.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractEventSendOperationBuilderImpl.java @@ -1,9 +1,10 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.ContractEventSendOperation; import com.jd.blockchain.utils.Bytes; -public class ContractEventSendOperationBuilderImpl implements ContractEventSendOperationBuilder{ +@Deprecated +class ContractEventSendOperationBuilderImpl implements ContractEventSendOperationBuilder{ @Override diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractInvocationProxy.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractInvocationProxy.java new file mode 100644 index 00000000..c9b97e4d --- /dev/null +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractInvocationProxy.java @@ -0,0 +1,22 @@ +package com.jd.blockchain.transaction; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; + +public class ContractInvocationProxy implements InvocationHandler { + + + private String contractMessage; + + + private ContractEventSendOperationBuilder sendOpBuilder; + + + + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractInvocationProxyBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractInvocationProxyBuilder.java new file mode 100644 index 00000000..2bc6c9ea --- /dev/null +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractInvocationProxyBuilder.java @@ -0,0 +1,6 @@ +package com.jd.blockchain.transaction; + +class ContractInvocationProxyBuilder { + + +} diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractOperator.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractOperator.java similarity index 76% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractOperator.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractOperator.java index dada75c1..cc0f7da4 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/ContractOperator.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractOperator.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; public interface ContractOperator { diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractType.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractType.java new file mode 100644 index 00000000..27d75e25 --- /dev/null +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/ContractType.java @@ -0,0 +1,56 @@ +package com.jd.blockchain.transaction; + +import java.lang.reflect.Method; +import java.util.Set; +import java.util.SortedMap; + +class ContractType { + + private String name; + + private SortedMap events; + + private SortedMap handleMethods; + + /** + * 返回声明的所有事件; + * + * @return + */ + Set getEvents() { + return events.keySet(); + } + + /** + * 返回指定方法声明的事件;
+ * + * 如果不存在,则返回 null; + * + * @param method + * @return + */ + String getEvent(Method method) { + return handleMethods.get(method); + } + + /** + * 返回事件的处理方法;
+ * + * 如果不存在,则返回 null; + * + * @param event + * @return + */ + Method getHandleMethod(String event) { + return events.get(event); + } + + private ContractType() { + } + + +// public static ContractType resolve(Class contractIntf) { +// +// } + +} 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/transaction/DataAccountKVSetOpTemplate.java similarity index 94% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOpTemplate.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountKVSetOpTemplate.java index 0fc6d2e3..5a1b48ab 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/transaction/DataAccountKVSetOpTemplate.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import java.util.LinkedHashMap; import java.util.Map; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOperationBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountKVSetOperationBuilder.java similarity index 93% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOperationBuilder.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountKVSetOperationBuilder.java index 9f0ae566..4e0a903c 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOperationBuilder.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountKVSetOperationBuilder.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.DataAccountKVSetOperation; import com.jd.blockchain.utils.Bytes; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOperationBuilderImpl.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountKVSetOperationBuilderImpl.java similarity index 69% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOperationBuilderImpl.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountKVSetOperationBuilderImpl.java index 58d94a2c..c0511e55 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountKVSetOperationBuilderImpl.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountKVSetOperationBuilderImpl.java @@ -1,9 +1,9 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.BytesValue; -import com.jd.blockchain.ledger.BytesValueImpl; +import com.jd.blockchain.ledger.BytesValueEntry; import com.jd.blockchain.ledger.DataAccountKVSetOperation; -import com.jd.blockchain.ledger.DataType; +import com.jd.blockchain.ledger.BytesValueType; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.io.BytesUtils; import com.jd.blockchain.utils.serialize.json.JSONSerializeUtils; @@ -23,7 +23,7 @@ public class DataAccountKVSetOperationBuilderImpl implements DataAccountKVSetOpe @Override public DataAccountKVSetOperationBuilder set(String key, byte[] value, long expVersion) { - BytesValue bytesValue = new BytesValueImpl(DataType.BYTES, value); + BytesValue bytesValue = new BytesValueEntry(BytesValueType.BYTES, value); operation.set(key, bytesValue, expVersion); return this; } @@ -32,10 +32,10 @@ public class DataAccountKVSetOperationBuilderImpl implements DataAccountKVSetOpe public DataAccountKVSetOperationBuilder set(String key, String value, long expVersion) { BytesValue bytesValue; if (JSONSerializeUtils.isJSON(value)) { - bytesValue = new BytesValueImpl(DataType.JSON, value.getBytes()); + bytesValue = new BytesValueEntry(BytesValueType.JSON, value.getBytes()); } else { - bytesValue = new BytesValueImpl(DataType.TEXT, value.getBytes()); + bytesValue = new BytesValueEntry(BytesValueType.TEXT, value.getBytes()); } operation.set(key, bytesValue, expVersion); return this; @@ -43,13 +43,13 @@ public class DataAccountKVSetOperationBuilderImpl implements DataAccountKVSetOpe @Override public DataAccountKVSetOperationBuilder set(String key, Bytes value, long expVersion) { - BytesValue bytesValue = new BytesValueImpl(DataType.BYTES, value.toBytes()); + BytesValue bytesValue = new BytesValueEntry(BytesValueType.BYTES, value.toBytes()); operation.set(key, bytesValue, expVersion); return this; } @Override public DataAccountKVSetOperationBuilder set(String key, long value, long expVersion) { - BytesValue bytesValue = new BytesValueImpl(DataType.INT64, BytesUtils.toBytes(value)); + BytesValue bytesValue = new BytesValueEntry(BytesValueType.INT64, BytesUtils.toBytes(value)); operation.set(key, bytesValue, expVersion); return this; } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountOperator.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountOperator.java similarity index 91% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountOperator.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountOperator.java index ff08d6cf..7964e7ef 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountOperator.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountOperator.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.utils.Bytes; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountRegisterOpTemplate.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOpTemplate.java similarity index 91% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountRegisterOpTemplate.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOpTemplate.java index 63ad84d9..ffcbd455 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountRegisterOpTemplate.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOpTemplate.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.ledger.BlockchainIdentity; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountRegisterOperationBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOperationBuilder.java similarity index 83% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountRegisterOperationBuilder.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOperationBuilder.java index c6bd23f0..ca248fc4 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountRegisterOperationBuilder.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOperationBuilder.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.DataAccountRegisterOperation; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountRegisterOperationBuilderImpl.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOperationBuilderImpl.java similarity index 87% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountRegisterOperationBuilderImpl.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOperationBuilderImpl.java index afff51a2..eba6b97d 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DataAccountRegisterOperationBuilderImpl.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DataAccountRegisterOperationBuilderImpl.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.DataAccountRegisterOperation; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DigitalSignatureBlob.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DigitalSignatureBlob.java similarity index 95% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DigitalSignatureBlob.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DigitalSignatureBlob.java index 18cc78fa..a2125490 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/DigitalSignatureBlob.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/DigitalSignatureBlob.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.crypto.PubKey; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/EventOperator.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/EventOperator.java new file mode 100644 index 00000000..687c204d --- /dev/null +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/EventOperator.java @@ -0,0 +1,22 @@ +package com.jd.blockchain.transaction; + +public interface EventOperator { + + /** + * 部署合约; + * + * @return + */ + @Deprecated + ContractEventSendOperationBuilder contractEvents(); + + /** + * 创建调用合约的代理实例; + * + * @param address + * @param contractIntf + * @return + */ + T contract(String address, Class contractIntf); + +} \ No newline at end of file diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/KVData.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/KVData.java similarity index 93% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/KVData.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/KVData.java index 29ed209f..de93fcc8 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/KVData.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/KVData.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.BytesValue; import com.jd.blockchain.ledger.DataAccountKVSetOperation.KVWriteEntry; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOpTemplate.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOpTemplate.java similarity index 89% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOpTemplate.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOpTemplate.java index ccfdecaa..4259c98c 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOpTemplate.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOpTemplate.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.ledger.LedgerInitOperation; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOperationBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperationBuilder.java similarity index 85% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOperationBuilder.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperationBuilder.java index 6b7ff42b..9416d73d 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOperationBuilder.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperationBuilder.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.LedgerInitOperation; import com.jd.blockchain.ledger.LedgerInitSetting; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOperationBuilderImpl.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperationBuilderImpl.java similarity index 86% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOperationBuilderImpl.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperationBuilderImpl.java index 5cb11dc2..9562ae64 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOperationBuilderImpl.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperationBuilderImpl.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.LedgerInitOperation; import com.jd.blockchain.ledger.LedgerInitSetting; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOperator.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperator.java similarity index 77% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOperator.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperator.java index 43ee3fbb..62c4f293 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitOperator.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitOperator.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; public interface LedgerInitOperator { diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitSettingData.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitSettingData.java similarity index 97% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitSettingData.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitSettingData.java index ae40966b..e4fe8171 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/LedgerInitSettingData.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/LedgerInitSettingData.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.ParticipantNode; import com.jd.blockchain.utils.Bytes; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/NewLedgerOpBlob.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/NewLedgerOpBlob.java similarity index 92% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/NewLedgerOpBlob.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/NewLedgerOpBlob.java index cd68cd30..ee496969 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/NewLedgerOpBlob.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/NewLedgerOpBlob.java @@ -1,3 +1,4 @@ +package com.jd.blockchain.transaction; //package com.jd.blockchain.ledger.data; // //import com.jd.blockchain.ledger.OperationType; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/PreparedTx.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PreparedTx.java similarity index 90% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/PreparedTx.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PreparedTx.java index 02c74a84..2b0422c0 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/PreparedTx.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PreparedTx.java @@ -1,6 +1,6 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.crypto.AsymmetricKeypair; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; @@ -39,7 +39,7 @@ public class PreparedTx implements PreparedTransaction { public DigitalSignature sign(AsymmetricKeypair keyPair) { SignatureFunction signatureFunction = Crypto.getSignatureFunction(keyPair.getAlgorithm()); PrivKey privKey = keyPair.getPrivKey(); - byte[] content = BinaryEncodingUtils.encode(getTransactionContent(), TransactionContent.class); + byte[] content = BinaryProtocol.encode(getTransactionContent(), TransactionContent.class); SignatureDigest signatureDigest = signatureFunction.sign(privKey, content); DigitalSignature signature = new DigitalSignatureBlob(keyPair.getPubKey(), signatureDigest); addSignature(signature); diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/PrivilegeSettingOperationBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PrivilegeSettingOperationBuilder.java similarity index 92% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/PrivilegeSettingOperationBuilder.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PrivilegeSettingOperationBuilder.java index f65b3cde..f2cbab74 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/PrivilegeSettingOperationBuilder.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PrivilegeSettingOperationBuilder.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.PrivilegeType; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/PubKeyData.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PubKeyData.java similarity index 88% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/PubKeyData.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PubKeyData.java index e7350873..a31864e6 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/PubKeyData.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/PubKeyData.java @@ -1,3 +1,4 @@ +package com.jd.blockchain.transaction; //package com.jd.blockchain.ledger.data; // //import com.jd.blockchain.ledger.KeyType; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/SignatureEncoding.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/SignatureEncoding.java similarity index 71% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/SignatureEncoding.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/SignatureEncoding.java index 78031fb3..d28c829e 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/SignatureEncoding.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/SignatureEncoding.java @@ -1,18 +1,18 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import org.springframework.util.Base64Utils; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.ledger.DigitalSignature; public class SignatureEncoding { public static byte[] encode(DigitalSignature signature) { - return BinaryEncodingUtils.encode(signature, DigitalSignature.class); + return BinaryProtocol.encode(signature, DigitalSignature.class); } public static DigitalSignature decode(byte[] bytesSignature) { - return BinaryEncodingUtils.decode(bytesSignature); + return BinaryProtocol.decode(bytesSignature); } public static DigitalSignature decodeFromBase64(String base64Signature) { diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TransactionService.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TransactionService.java similarity index 81% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TransactionService.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TransactionService.java index aa56dbe7..9d9a9ab8 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TransactionService.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TransactionService.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxBuilder.java similarity index 82% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxBuilder.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxBuilder.java index 0b6bfa48..1f315482 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxBuilder.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxBuilder.java @@ -1,6 +1,6 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; @@ -42,7 +42,7 @@ public class TxBuilder implements TransactionBuilder { TxContentBlob txContent = new TxContentBlob(ledgerHash); txContent.addOperations(opFactory.getOperations()); - byte[] contentBodyBytes = BinaryEncodingUtils.encode(txContent, TransactionContentBody.class); + byte[] contentBodyBytes = BinaryProtocol.encode(txContent, TransactionContentBody.class); HashDigest contentHash = Crypto.getHashFunction(DEFAULT_HASH_ALGORITHM).hash(contentBodyBytes); txContent.setHash(contentHash); @@ -83,5 +83,11 @@ public class TxBuilder implements TransactionBuilder { public ContractEventSendOperationBuilder contractEvents() { return opFactory.contractEvents(); } + + @Override + public T contract(String address, Class contractIntf) { + // TODO Auto-generated method stub + throw new IllegalStateException("Not implemented."); + } } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxContentBlob.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxContentBlob.java similarity index 93% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxContentBlob.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxContentBlob.java index 5be77cf0..f1cb2993 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxContentBlob.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxContentBlob.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import java.util.ArrayList; import java.util.Collection; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxRequestBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestBuilder.java similarity index 91% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxRequestBuilder.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestBuilder.java index 848f1e3d..5265b4be 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxRequestBuilder.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestBuilder.java @@ -1,9 +1,9 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import java.util.ArrayList; import java.util.List; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.crypto.AsymmetricKeypair; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; @@ -86,7 +86,7 @@ public class TxRequestBuilder implements TransactionRequestBuilder { txMessage.addEndpointSignatures(endpointSignatures); txMessage.addNodeSignatures(nodeSignatures); - byte[] reqBytes = BinaryEncodingUtils.encode(txMessage, NodeRequest.class); + byte[] reqBytes = BinaryProtocol.encode(txMessage, NodeRequest.class); HashDigest reqHash = Crypto.getHashFunction(DEFAULT_HASH_ALGORITHM).hash(reqBytes); txMessage.setHash(reqHash); diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxRequestMessage.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestMessage.java similarity index 96% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxRequestMessage.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestMessage.java index 06c29cbf..50037ee4 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxRequestMessage.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxRequestMessage.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import java.util.LinkedHashMap; import java.util.List; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxResponseMessage.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxResponseMessage.java similarity index 92% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxResponseMessage.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxResponseMessage.java index 144a7762..8a912d21 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxResponseMessage.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxResponseMessage.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.TransactionState; import com.jd.blockchain.crypto.HashDigest; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxTemplate.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxTemplate.java similarity index 86% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxTemplate.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxTemplate.java index 3f8523bc..f19906db 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/TxTemplate.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/TxTemplate.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.PreparedTransaction; @@ -57,5 +57,10 @@ public class TxTemplate implements TransactionTemplate { public ContractEventSendOperationBuilder contractEvents() { return txBuilder.contractEvents(); } + + @Override + public T contract(String address, Class contractIntf) { + return txBuilder.contract(address, contractIntf); + } } diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserOperator.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserOperator.java similarity index 76% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserOperator.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserOperator.java index 9053b9fb..fdd82668 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserOperator.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserOperator.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; public interface UserOperator { 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/transaction/UserRegisterOpTemplate.java similarity index 89% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOpTemplate.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserRegisterOpTemplate.java index f1c9940d..91ea541a 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/transaction/UserRegisterOpTemplate.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.ledger.BlockchainIdentity; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOperationBuilder.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserRegisterOperationBuilder.java similarity index 86% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOperationBuilder.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserRegisterOperationBuilder.java index 8977ce3d..76f0e956 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOperationBuilder.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserRegisterOperationBuilder.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.UserRegisterOperation; diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOperationBuilderImpl.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserRegisterOperationBuilderImpl.java similarity index 85% rename from source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOperationBuilderImpl.java rename to source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserRegisterOperationBuilderImpl.java index ae7301b9..39a84725 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/data/UserRegisterOperationBuilderImpl.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/transaction/UserRegisterOperationBuilderImpl.java @@ -1,4 +1,4 @@ -package com.jd.blockchain.ledger.data; +package com.jd.blockchain.transaction; import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.UserRegisterOperation; diff --git a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/ContractCodeDeployOpTemplateTest.java b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/ContractCodeDeployOpTemplateTest.java index cbdbe67f..a54ce94f 100644 --- a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/ContractCodeDeployOpTemplateTest.java +++ b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/ContractCodeDeployOpTemplateTest.java @@ -15,7 +15,7 @@ import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.PubKey; @@ -24,7 +24,7 @@ import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.BlockchainIdentityData; import com.jd.blockchain.ledger.ContractCodeDeployOperation; import com.jd.blockchain.ledger.Operation; -import com.jd.blockchain.ledger.data.ContractCodeDeployOpTemplate; +import com.jd.blockchain.transaction.ContractCodeDeployOpTemplate; import com.jd.blockchain.utils.io.BytesUtils; /** @@ -51,8 +51,8 @@ public class ContractCodeDeployOpTemplateTest { @Test public void testSerialize_ContractCodeDeployOperation() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, ContractCodeDeployOperation.class); - ContractCodeDeployOperation resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, ContractCodeDeployOperation.class); + ContractCodeDeployOperation resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertArrayEquals(resolvedData.getChainCode(), data.getChainCode()); assertEquals(resolvedData.getContractID().getAddress(), data.getContractID().getAddress()); @@ -62,8 +62,8 @@ public class ContractCodeDeployOpTemplateTest { @Test public void testSerialize_Operation() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, ContractCodeDeployOperation.class); - ContractCodeDeployOperation resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, ContractCodeDeployOperation.class); + ContractCodeDeployOperation resolvedData = BinaryProtocol.decode(serialBytes); BlockchainIdentity expCodeId = data.getContractID(); BlockchainIdentity actualCodeId = resolvedData.getContractID(); diff --git a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/ContractEventSendOpTemplateTest.java b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/ContractEventSendOpTemplateTest.java index ead7b0e5..fb197953 100644 --- a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/ContractEventSendOpTemplateTest.java +++ b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/ContractEventSendOpTemplateTest.java @@ -8,13 +8,13 @@ */ package test.com.jd.blockchain.ledger.data; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.ledger.ContractEventSendOperation; import com.jd.blockchain.ledger.DataAccountKVSetOperation; import com.jd.blockchain.ledger.Operation; -import com.jd.blockchain.ledger.data.ContractEventSendOpTemplate; -import com.jd.blockchain.ledger.data.DataAccountKVSetOpTemplate; +import com.jd.blockchain.transaction.ContractEventSendOpTemplate; +import com.jd.blockchain.transaction.DataAccountKVSetOpTemplate; import com.jd.blockchain.utils.Bytes; import org.junit.Before; @@ -45,8 +45,8 @@ public class ContractEventSendOpTemplateTest { @Test public void testSerialize_ContractEventSendOperation() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, ContractEventSendOperation.class); - ContractEventSendOperation resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, ContractEventSendOperation.class); + ContractEventSendOperation resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getContractAddress(), data.getContractAddress()); assertEquals(resolvedData.getEvent(), data.getEvent()); @@ -56,8 +56,8 @@ public class ContractEventSendOpTemplateTest { @Test public void testSerialize_Operation() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, Operation.class); - Operation resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, Operation.class); + Operation resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); System.out.println(resolvedData); System.out.println("------Assert OK ------"); diff --git a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DataAccountKVSetOpTemplateTest.java b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DataAccountKVSetOpTemplateTest.java index 2ad55386..c5ccd7f6 100644 --- a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DataAccountKVSetOpTemplateTest.java +++ b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DataAccountKVSetOpTemplateTest.java @@ -8,14 +8,14 @@ */ package test.com.jd.blockchain.ledger.data; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; -import com.jd.blockchain.ledger.BytesValueImpl; +import com.jd.blockchain.ledger.BytesValueEntry; import com.jd.blockchain.ledger.DataAccountKVSetOperation; -import com.jd.blockchain.ledger.DataType; +import com.jd.blockchain.ledger.BytesValueType; import com.jd.blockchain.ledger.Operation; -import com.jd.blockchain.ledger.data.DataAccountKVSetOpTemplate; -import com.jd.blockchain.ledger.data.KVData; +import com.jd.blockchain.transaction.DataAccountKVSetOpTemplate; +import com.jd.blockchain.transaction.KVData; import com.jd.blockchain.utils.Bytes; import org.junit.Before; @@ -43,11 +43,11 @@ public class DataAccountKVSetOpTemplateTest { String accountAddress = "zhangsandhakhdkah"; data = new DataAccountKVSetOpTemplate(Bytes.fromString(accountAddress)); KVData kvData1 = - new KVData("test1", new BytesValueImpl(DataType.TEXT, "zhangsan".getBytes()), 9999L); + new KVData("test1", new BytesValueEntry(BytesValueType.TEXT, "zhangsan".getBytes()), 9999L); KVData kvData2 = - new KVData("test2", new BytesValueImpl(DataType.TEXT, "lisi".getBytes()), 9990L); + new KVData("test2", new BytesValueEntry(BytesValueType.TEXT, "lisi".getBytes()), 9990L); KVData kvData3 = - new KVData("test3", new BytesValueImpl(DataType.TEXT, "wangwu".getBytes()), 1990L); + new KVData("test3", new BytesValueEntry(BytesValueType.TEXT, "wangwu".getBytes()), 1990L); data.set(kvData1); data.set(kvData2); data.set(kvData3); @@ -56,8 +56,8 @@ public class DataAccountKVSetOpTemplateTest { @Test public void testSerialize_DataAccountKVSetOperation() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, DataAccountKVSetOperation.class); - DataAccountKVSetOperation resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, DataAccountKVSetOperation.class); + DataAccountKVSetOperation resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getAccountAddress(), data.getAccountAddress()); DataAccountKVSetOperation.KVWriteEntry[] resolvedKv = resolvedData.getWriteSet(); @@ -75,8 +75,8 @@ public class DataAccountKVSetOpTemplateTest { @Test public void testSerialize_Operation() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, Operation.class); - Operation resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, Operation.class); + Operation resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); System.out.println(resolvedData); System.out.println("serialBytesLength=" + serialBytes.length); diff --git a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DataAccountRegisterOpTemplateTest.java b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DataAccountRegisterOpTemplateTest.java index 207f5e42..fcca954f 100644 --- a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DataAccountRegisterOpTemplateTest.java +++ b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DataAccountRegisterOpTemplateTest.java @@ -13,7 +13,7 @@ import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.PubKey; @@ -22,7 +22,7 @@ import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.BlockchainIdentityData; import com.jd.blockchain.ledger.DataAccountRegisterOperation; import com.jd.blockchain.ledger.Operation; -import com.jd.blockchain.ledger.data.DataAccountRegisterOpTemplate; +import com.jd.blockchain.transaction.DataAccountRegisterOpTemplate; /** * @@ -48,8 +48,8 @@ public class DataAccountRegisterOpTemplateTest { @Test public void testSerialize_DataAccountRegisterOperation() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, DataAccountRegisterOperation.class); - DataAccountRegisterOperation resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, DataAccountRegisterOperation.class); + DataAccountRegisterOperation resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getAccountID().getAddress(), data.getAccountID().getAddress()); assertEquals(resolvedData.getAccountID().getPubKey(), data.getAccountID().getPubKey()); @@ -59,8 +59,8 @@ public class DataAccountRegisterOpTemplateTest { @Test public void testSerialize_Operation() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, Operation.class); - Operation resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, Operation.class); + Operation resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); System.out.println("serialBytesLength=" + serialBytes.length); System.out.println(resolvedData); diff --git a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DigitalSignatureBlobTest.java b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DigitalSignatureBlobTest.java index ac0bc568..b3e73a0a 100644 --- a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DigitalSignatureBlobTest.java +++ b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/DigitalSignatureBlobTest.java @@ -13,7 +13,7 @@ import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.CryptoAlgorithm; import com.jd.blockchain.crypto.AsymmetricKeypair; @@ -23,7 +23,7 @@ import com.jd.blockchain.crypto.SignatureDigest; import com.jd.blockchain.crypto.SignatureFunction; import com.jd.blockchain.ledger.DigitalSignature; import com.jd.blockchain.ledger.DigitalSignatureBody; -import com.jd.blockchain.ledger.data.DigitalSignatureBlob; +import com.jd.blockchain.transaction.DigitalSignatureBlob; /** * @@ -50,8 +50,8 @@ public class DigitalSignatureBlobTest { @Test public void testSerialize_DigitalSignature() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, DigitalSignature.class); - DigitalSignature resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, DigitalSignature.class); + DigitalSignature resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getDigest(), data.getDigest()); assertEquals(resolvedData.getPubKey(), data.getPubKey()); @@ -60,8 +60,8 @@ public class DigitalSignatureBlobTest { @Test public void testSerialize_DigitalSignatureBody() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, DigitalSignatureBody.class); - DigitalSignatureBody resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, DigitalSignatureBody.class); + DigitalSignatureBody resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getDigest(), data.getDigest()); assertEquals(resolvedData.getPubKey(), data.getPubKey()); diff --git a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/KVDataTest.java b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/KVDataTest.java index 1ee20e8a..86314a6f 100644 --- a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/KVDataTest.java +++ b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/KVDataTest.java @@ -8,13 +8,14 @@ */ package test.com.jd.blockchain.ledger.data; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; -import com.jd.blockchain.ledger.BytesValueImpl; +import com.jd.blockchain.ledger.BytesValueEntry; import com.jd.blockchain.ledger.DataAccountKVSetOperation; -import com.jd.blockchain.ledger.DataType; -import com.jd.blockchain.ledger.data.DataAccountKVSetOpTemplate; -import com.jd.blockchain.ledger.data.KVData; +import com.jd.blockchain.ledger.BytesValueType; +import com.jd.blockchain.transaction.DataAccountKVSetOpTemplate; +import com.jd.blockchain.transaction.KVData; + import org.junit.Before; import org.junit.Test; @@ -38,13 +39,13 @@ public class KVDataTest { byte[] value = "test-value".getBytes(); long expectedVersion = 9999L; - kvData = new KVData(key, new BytesValueImpl(DataType.BYTES, value), expectedVersion); + kvData = new KVData(key, new BytesValueEntry(BytesValueType.BYTES, value), expectedVersion); } @Test public void testSerialize_KVEntry() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(kvData, DataAccountKVSetOperation.KVWriteEntry.class); - DataAccountKVSetOpTemplate.KVWriteEntry resolvedKvData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(kvData, DataAccountKVSetOperation.KVWriteEntry.class); + DataAccountKVSetOpTemplate.KVWriteEntry resolvedKvData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedKvData.getKey(), kvData.getKey()); assertEquals(resolvedKvData.getExpectedVersion(), kvData.getExpectedVersion()); diff --git a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxContentBlobTest.java b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxContentBlobTest.java index 20f0e8d0..a76e4e93 100644 --- a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxContentBlobTest.java +++ b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxContentBlobTest.java @@ -9,7 +9,7 @@ import java.util.UUID; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; @@ -20,8 +20,8 @@ import com.jd.blockchain.ledger.HashObject; import com.jd.blockchain.ledger.Operation; import com.jd.blockchain.ledger.TransactionContent; import com.jd.blockchain.ledger.TransactionContentBody; -import com.jd.blockchain.ledger.data.BlockchainOperationFactory; -import com.jd.blockchain.ledger.data.TxContentBlob; +import com.jd.blockchain.transaction.BlockchainOperationFactory; +import com.jd.blockchain.transaction.TxContentBlob; import com.jd.blockchain.utils.io.ByteArray; public class TxContentBlobTest { @@ -56,8 +56,8 @@ public class TxContentBlobTest { public void testSerialize_TransactionContentBody() throws IOException, InstantiationException, IllegalAccessException { - byte[] bytesContent = BinaryEncodingUtils.encode(contentBlob, TransactionContentBody.class); - TransactionContentBody resolvedContentBlob = BinaryEncodingUtils.decode(bytesContent); + byte[] bytesContent = BinaryProtocol.encode(contentBlob, TransactionContentBody.class); + TransactionContentBody resolvedContentBlob = BinaryProtocol.decode(bytesContent); assertEquals(contentBlob.getLedgerHash(), resolvedContentBlob.getLedgerHash()); // assertEquals(contentBlob.getSubjectAccount(), @@ -87,8 +87,8 @@ public class TxContentBlobTest { @Test public void testSerialize_TransactionContent() throws IOException, InstantiationException, IllegalAccessException { - byte[] bytesContent = BinaryEncodingUtils.encode(contentBlob, TransactionContent.class); - TransactionContentBody resolvedContentBlob = BinaryEncodingUtils.decode(bytesContent); + byte[] bytesContent = BinaryProtocol.encode(contentBlob, TransactionContent.class); + TransactionContentBody resolvedContentBlob = BinaryProtocol.decode(bytesContent); assertEquals(contentBlob.getLedgerHash(), resolvedContentBlob.getLedgerHash()); // assertEquals(contentBlob.getSubjectAccount(), diff --git a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxRequestMessageTest.java b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxRequestMessageTest.java index 7434ec66..dd7366f9 100644 --- a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxRequestMessageTest.java +++ b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxRequestMessageTest.java @@ -15,7 +15,7 @@ import java.util.UUID; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.AsymmetricKeypair; import com.jd.blockchain.crypto.Crypto; @@ -33,10 +33,10 @@ import com.jd.blockchain.ledger.NodeRequest; import com.jd.blockchain.ledger.Operation; import com.jd.blockchain.ledger.TransactionContent; import com.jd.blockchain.ledger.TransactionRequest; -import com.jd.blockchain.ledger.data.BlockchainOperationFactory; -import com.jd.blockchain.ledger.data.DigitalSignatureBlob; -import com.jd.blockchain.ledger.data.TxContentBlob; -import com.jd.blockchain.ledger.data.TxRequestMessage; +import com.jd.blockchain.transaction.BlockchainOperationFactory; +import com.jd.blockchain.transaction.DigitalSignatureBlob; +import com.jd.blockchain.transaction.TxContentBlob; +import com.jd.blockchain.transaction.TxRequestMessage; import com.jd.blockchain.utils.io.ByteArray; /** @@ -85,8 +85,8 @@ public class TxRequestMessageTest { @Test public void testSerialize_TransactionRequest() { - byte[] serialBytes = BinaryEncodingUtils.encode(data, TransactionRequest.class); - TransactionRequest resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, TransactionRequest.class); + TransactionRequest resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getEndpointSignatures().length, data.getEndpointSignatures().length); assertEquals(resolvedData.getNodeSignatures().length, data.getNodeSignatures().length); @@ -124,8 +124,8 @@ public class TxRequestMessageTest { @Test public void testSerialize_NodeRequest() { - byte[] serialBytes = BinaryEncodingUtils.encode(data, NodeRequest.class); - NodeRequest resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, NodeRequest.class); + NodeRequest resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getEndpointSignatures().length, data.getEndpointSignatures().length); assertEquals(resolvedData.getNodeSignatures().length, data.getNodeSignatures().length); @@ -161,8 +161,8 @@ public class TxRequestMessageTest { @Test public void testSerialize_EndpointRequest() { - byte[] serialBytes = BinaryEncodingUtils.encode(data, EndpointRequest.class); - EndpointRequest resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, EndpointRequest.class); + EndpointRequest resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getEndpointSignatures().length, data.getEndpointSignatures().length); DigitalSignature[] dataEndpointSignatures = data.getEndpointSignatures(); diff --git a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxResponseMessageTest.java b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxResponseMessageTest.java index 69f0dea0..c0a944de 100644 --- a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxResponseMessageTest.java +++ b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/TxResponseMessageTest.java @@ -13,14 +13,14 @@ import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.HashFunction; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; -import com.jd.blockchain.ledger.data.TxResponseMessage; +import com.jd.blockchain.transaction.TxResponseMessage; /** * @@ -50,8 +50,8 @@ public class TxResponseMessageTest { @Test public void testSerialize_TransactionResponse() { - byte[] serialBytes = BinaryEncodingUtils.encode(data, TransactionResponse.class); - TransactionResponse resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, TransactionResponse.class); + TransactionResponse resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(resolvedData.getBlockHash(), data.getBlockHash()); assertEquals(resolvedData.getBlockHeight(), data.getBlockHeight()); diff --git a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/UserRegisterOpTemplateTest.java b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/UserRegisterOpTemplateTest.java index 2d79c03d..27b455f3 100644 --- a/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/UserRegisterOpTemplateTest.java +++ b/source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/data/UserRegisterOpTemplateTest.java @@ -13,7 +13,7 @@ import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.AsymmetricKeypair; import com.jd.blockchain.crypto.Crypto; @@ -22,7 +22,7 @@ import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.BlockchainIdentityData; import com.jd.blockchain.ledger.Operation; import com.jd.blockchain.ledger.UserRegisterOperation; -import com.jd.blockchain.ledger.data.UserRegisterOpTemplate; +import com.jd.blockchain.transaction.UserRegisterOpTemplate; /** * @@ -47,8 +47,8 @@ public class UserRegisterOpTemplateTest { @Test public void testSerialize_UserRegisterOperation() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, UserRegisterOperation.class); - UserRegisterOperation resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, UserRegisterOperation.class); + UserRegisterOperation resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); assertEquals(data.getUserID().getAddress(), resolvedData.getUserID().getAddress()); assertEquals(data.getUserID().getPubKey(), resolvedData.getUserID().getPubKey()); @@ -57,8 +57,8 @@ public class UserRegisterOpTemplateTest { @Test public void testSerialize_Operation() throws Exception { - byte[] serialBytes = BinaryEncodingUtils.encode(data, Operation.class); - Operation resolvedData = BinaryEncodingUtils.decode(serialBytes); + byte[] serialBytes = BinaryProtocol.encode(data, Operation.class); + Operation resolvedData = BinaryProtocol.decode(serialBytes); System.out.println("------Assert start ------"); System.out.println("serialBytesLength=" + serialBytes.length); System.out.println(resolvedData); diff --git a/source/ledger/ledger-rpc/src/main/java/com/jd/blockchain/web/converters/BinaryMessageConverter.java b/source/ledger/ledger-rpc/src/main/java/com/jd/blockchain/web/converters/BinaryMessageConverter.java index affc2dde..124b85cd 100644 --- a/source/ledger/ledger-rpc/src/main/java/com/jd/blockchain/web/converters/BinaryMessageConverter.java +++ b/source/ledger/ledger-rpc/src/main/java/com/jd/blockchain/web/converters/BinaryMessageConverter.java @@ -19,7 +19,7 @@ import org.springframework.http.converter.AbstractHttpMessageConverter; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotWritableException; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; /** * 针对二进制对象的序列化和反序列化的 HTTP 消息转换器; @@ -95,7 +95,7 @@ public class BinaryMessageConverter extends AbstractHttpMessageConverter throws IOException, HttpMessageNotReadableException { InputStream in = inputMessage.getBody(); byte[] serializeBytes = BytesUtils.readBytes(in); - Object resolvedObj = BinaryEncodingUtils.decode(serializeBytes); + Object resolvedObj = BinaryProtocol.decode(serializeBytes); return resolvedObj; } @@ -104,7 +104,7 @@ public class BinaryMessageConverter extends AbstractHttpMessageConverter throws IOException, HttpMessageNotWritableException { OutputStream out = outputMessage.getBody(); if (t instanceof TransactionResponse) { - byte[] serializeBytes = BinaryEncodingUtils.encode(t, TransactionResponse.class); + byte[] serializeBytes = BinaryProtocol.encode(t, TransactionResponse.class); out.write(serializeBytes); out.flush(); } diff --git a/source/peer/src/main/java/com/jd/blockchain/peer/consensus/ConsensusMessageDispatcher.java b/source/peer/src/main/java/com/jd/blockchain/peer/consensus/ConsensusMessageDispatcher.java index 80e48bcc..41cf14c6 100644 --- a/source/peer/src/main/java/com/jd/blockchain/peer/consensus/ConsensusMessageDispatcher.java +++ b/source/peer/src/main/java/com/jd/blockchain/peer/consensus/ConsensusMessageDispatcher.java @@ -1,14 +1,13 @@ package com.jd.blockchain.peer.consensus; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.ledger.LedgerBlock; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; -import com.jd.blockchain.ledger.service.TransactionBatchProcess; -import com.jd.blockchain.ledger.service.TransactionBatchResultHandle; -import com.jd.blockchain.ledger.service.TransactionEngine; - +import com.jd.blockchain.service.TransactionBatchProcess; +import com.jd.blockchain.service.TransactionBatchResultHandle; +import com.jd.blockchain.service.TransactionEngine; import com.jd.blockchain.utils.codec.Base58Utils; import com.jd.blockchain.utils.concurrent.AsyncFuture; import com.jd.blockchain.utils.concurrent.CompletableAsyncFuture; @@ -71,7 +70,7 @@ public class ConsensusMessageDispatcher implements MessageHandle { if (!realmProcessor.getCurrBatchId().equalsIgnoreCase(batchId)) { throw new IllegalArgumentException("BatchId is not begin!"); } - TransactionRequest txRequest = BinaryEncodingUtils.decode(message); + TransactionRequest txRequest = BinaryProtocol.decode(message); return realmProcessor.schedule(txRequest); } @@ -259,7 +258,7 @@ public class ConsensusMessageDispatcher implements MessageHandle { TxResponse txResponse = new TxResponse(entry.getKey()); txResponse.setBlockHeight(blockHeight); txResponse.setBlockHash(blockHash); - asyncResult.complete(BinaryEncodingUtils.encode(txResponse, TransactionResponse.class)); + asyncResult.complete(BinaryProtocol.encode(txResponse, TransactionResponse.class)); } }); } diff --git a/source/peer/src/main/java/com/jd/blockchain/peer/ledger/LedgerConfigurer.java b/source/peer/src/main/java/com/jd/blockchain/peer/ledger/LedgerConfigurer.java index 289e16cf..5a2bc247 100644 --- a/source/peer/src/main/java/com/jd/blockchain/peer/ledger/LedgerConfigurer.java +++ b/source/peer/src/main/java/com/jd/blockchain/peer/ledger/LedgerConfigurer.java @@ -7,7 +7,7 @@ import com.jd.blockchain.ledger.core.impl.DefaultOperationHandleRegisteration; import com.jd.blockchain.ledger.core.impl.LedgerManager; import com.jd.blockchain.ledger.core.impl.OperationHandleRegisteration; import com.jd.blockchain.ledger.core.impl.TransactionEngineImpl; -import com.jd.blockchain.ledger.service.TransactionEngine; +import com.jd.blockchain.service.TransactionEngine; @Configuration public class LedgerConfigurer { diff --git a/source/peer/src/main/java/com/jd/blockchain/peer/web/LedgerQueryController.java b/source/peer/src/main/java/com/jd/blockchain/peer/web/LedgerQueryController.java index c061956a..e221ba98 100644 --- a/source/peer/src/main/java/com/jd/blockchain/peer/web/LedgerQueryController.java +++ b/source/peer/src/main/java/com/jd/blockchain/peer/web/LedgerQueryController.java @@ -1,16 +1,37 @@ package com.jd.blockchain.peer.web; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.jd.blockchain.binaryproto.BinaryProtocol; +import com.jd.blockchain.binaryproto.PrimitiveType; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.ledger.*; -import com.jd.blockchain.ledger.core.*; -import com.jd.blockchain.ledger.core.impl.LedgerQueryService; -import com.jd.blockchain.sdk.BlockchainQueryService; +import com.jd.blockchain.ledger.AccountHeader; +import com.jd.blockchain.ledger.BytesValue; +import com.jd.blockchain.ledger.KVDataEntry; +import com.jd.blockchain.ledger.KVDataObject; +import com.jd.blockchain.ledger.LedgerBlock; +import com.jd.blockchain.ledger.LedgerInfo; +import com.jd.blockchain.ledger.LedgerTransaction; +import com.jd.blockchain.ledger.ParticipantNode; +import com.jd.blockchain.ledger.TransactionState; +import com.jd.blockchain.ledger.UserInfo; +import com.jd.blockchain.ledger.core.ContractAccountSet; +import com.jd.blockchain.ledger.core.DataAccount; +import com.jd.blockchain.ledger.core.DataAccountSet; +import com.jd.blockchain.ledger.core.LedgerAdministration; +import com.jd.blockchain.ledger.core.LedgerRepository; +import com.jd.blockchain.ledger.core.LedgerService; +import com.jd.blockchain.ledger.core.ParticipantCertData; +import com.jd.blockchain.ledger.core.TransactionSet; +import com.jd.blockchain.ledger.core.UserAccountSet; +import com.jd.blockchain.transaction.BlockchainQueryService; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.QueryUtil; -import com.jd.blockchain.utils.ValueType; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; @RestController @RequestMapping(path = "/") @@ -318,11 +339,11 @@ public class LedgerQueryController implements BlockchainQueryService { for (int i = 0; i < entries.length; i++) { ver = dataAccount.getDataVersion(Bytes.fromString(keys[i])); if (ver < 0) { - entries[i] = new KVDataObject(keys[i], -1, ValueType.NIL, null); + entries[i] = new KVDataObject(keys[i], -1, PrimitiveType.NIL, null); }else { byte[] value = dataAccount.getBytes(Bytes.fromString(keys[i]), ver); - BytesValue decodeData = BinaryEncodingUtils.decode(value); - entries[i] = new KVDataObject(keys[i], ver, ValueType.valueOf(decodeData.getType().CODE), decodeData.getValue().toBytes()); + BytesValue decodeData = BinaryProtocol.decode(value); + entries[i] = new KVDataObject(keys[i], ver, PrimitiveType.valueOf(decodeData.getType().CODE), decodeData.getValue().toBytes()); } } diff --git a/source/peer/src/main/java/com/jd/blockchain/peer/web/ManagementController.java b/source/peer/src/main/java/com/jd/blockchain/peer/web/ManagementController.java index 0f0c3127..0e8c863e 100644 --- a/source/peer/src/main/java/com/jd/blockchain/peer/web/ManagementController.java +++ b/source/peer/src/main/java/com/jd/blockchain/peer/web/ManagementController.java @@ -38,11 +38,11 @@ import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.core.LedgerAdminAccount; import com.jd.blockchain.ledger.core.LedgerManage; import com.jd.blockchain.ledger.core.LedgerRepository; -import com.jd.blockchain.manage.GatewayIncomingSetting; -import com.jd.blockchain.manage.LedgerIncomingSetting; import com.jd.blockchain.peer.ConsensusRealm; import com.jd.blockchain.peer.LedgerBindingConfigAware; import com.jd.blockchain.peer.PeerManage; +import com.jd.blockchain.setting.GatewayIncomingSetting; +import com.jd.blockchain.setting.LedgerIncomingSetting; import com.jd.blockchain.storage.service.DbConnection; import com.jd.blockchain.storage.service.DbConnectionFactory; import com.jd.blockchain.tools.initializer.LedgerBindingConfig; diff --git a/source/pom.xml b/source/pom.xml index 2f1a1d74..3b9b2efa 100644 --- a/source/pom.xml +++ b/source/pom.xml @@ -41,7 +41,7 @@ 0.8.1-SNAPSHOT 0.0.8.RELEASE - 0.6.4.RELEASE + 0.6.6.RELEASE @@ -66,7 +66,7 @@ 1.10.19 4.5.1 - 9.4.12.v20180830 + 9.4.17.v20190418 1.2.3 3.3.6 diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainExtendQueryService.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainExtendQueryService.java index c05a0ab7..66c8b604 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainExtendQueryService.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainExtendQueryService.java @@ -10,6 +10,8 @@ package com.jd.blockchain.sdk; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.LedgerBlock; +import com.jd.blockchain.transaction.BlockchainQueryService; + import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainService.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainService.java index 13f78855..e24f8a80 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainService.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/BlockchainService.java @@ -1,5 +1,7 @@ package com.jd.blockchain.sdk; +import com.jd.blockchain.transaction.BlockchainQueryService; + /** * 区块链服务; * diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/LedgerAccessContext.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/LedgerAccessContext.java index a8e8b74f..df1d2689 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/LedgerAccessContext.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/LedgerAccessContext.java @@ -2,7 +2,8 @@ package com.jd.blockchain.sdk; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.CryptoSetting; -import com.jd.blockchain.ledger.data.TransactionService; +import com.jd.blockchain.transaction.BlockchainQueryService; +import com.jd.blockchain.transaction.TransactionService; public interface LedgerAccessContext { diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/ManagementHttpService.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/ManagementHttpService.java index 5d35623f..f4bd68be 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/ManagementHttpService.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/ManagementHttpService.java @@ -1,10 +1,9 @@ package com.jd.blockchain.sdk; import com.jd.blockchain.consensus.ClientIdentifications; -import com.jd.blockchain.manage.GatewayIncomingSetting; - import com.jd.blockchain.sdk.converters.BinarySerializeRequestConverter; import com.jd.blockchain.sdk.converters.BinarySerializeResponseConverter; +import com.jd.blockchain.setting.GatewayIncomingSetting; import com.jd.blockchain.utils.http.HttpAction; import com.jd.blockchain.utils.http.HttpMethod; import com.jd.blockchain.utils.http.HttpService; diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/BinarySerializeRequestConverter.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/BinarySerializeRequestConverter.java index 92168134..317bd6e6 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/BinarySerializeRequestConverter.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/BinarySerializeRequestConverter.java @@ -8,10 +8,10 @@ */ package com.jd.blockchain.sdk.converters; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.consensus.ClientIdentifications; import com.jd.blockchain.ledger.TransactionRequest; -import com.jd.blockchain.ledger.data.TxRequestMessage; +import com.jd.blockchain.transaction.TxRequestMessage; import com.jd.blockchain.utils.http.RequestBodyConverter; import java.io.IOException; @@ -32,11 +32,11 @@ public class BinarySerializeRequestConverter implements RequestBodyConverter { public void write(Object param, OutputStream out) throws IOException { // 使用自定义的序列化方式 if (param instanceof TransactionRequest) { - byte[] serializeBytes = BinaryEncodingUtils.encode(param, TransactionRequest.class); + byte[] serializeBytes = BinaryProtocol.encode(param, TransactionRequest.class); out.write(serializeBytes); out.flush(); } else if (param instanceof ClientIdentifications) { - byte[] serializeBytes = BinaryEncodingUtils.encode(param, ClientIdentifications.class); + byte[] serializeBytes = BinaryProtocol.encode(param, ClientIdentifications.class); out.write(serializeBytes); out.flush(); } diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/BinarySerializeResponseConverter.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/BinarySerializeResponseConverter.java index 163bc33e..32664abc 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/BinarySerializeResponseConverter.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/BinarySerializeResponseConverter.java @@ -8,8 +8,8 @@ */ package com.jd.blockchain.sdk.converters; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; -import com.jd.blockchain.ledger.data.TxResponseMessage; +import com.jd.blockchain.binaryproto.BinaryProtocol; +import com.jd.blockchain.transaction.TxResponseMessage; import com.jd.blockchain.utils.http.HttpServiceContext; import com.jd.blockchain.utils.http.ResponseConverter; import com.jd.blockchain.utils.http.agent.ServiceRequest; @@ -30,7 +30,7 @@ public class BinarySerializeResponseConverter implements ResponseConverter { public Object getResponse(ServiceRequest request, InputStream responseStream, HttpServiceContext serviceContext) throws Exception { byte[] serializeBytes = BytesUtils.readBytes(responseStream); - Object resolvedObj = BinaryEncodingUtils.decode(serializeBytes); + Object resolvedObj = BinaryProtocol.decode(serializeBytes); return resolvedObj; } diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/HashDigestsResponseConverter.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/HashDigestsResponseConverter.java index ec30787a..c19e3bbb 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/HashDigestsResponseConverter.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/converters/HashDigestsResponseConverter.java @@ -3,11 +3,11 @@ package com.jd.blockchain.sdk.converters; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.crypto.PubKey; import com.jd.blockchain.crypto.SignatureDigest; -import com.jd.blockchain.ledger.data.TxResponseMessage; +import com.jd.blockchain.transaction.TxResponseMessage; import com.jd.blockchain.utils.codec.Base58Utils; import com.jd.blockchain.utils.http.HttpServiceContext; import com.jd.blockchain.utils.http.ResponseConverter; diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/BlockchainServiceProxy.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/BlockchainServiceProxy.java index 081f5be8..da602b9b 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/BlockchainServiceProxy.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/BlockchainServiceProxy.java @@ -2,12 +2,12 @@ package com.jd.blockchain.sdk.proxy; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.*; -import com.jd.blockchain.ledger.data.TransactionService; -import com.jd.blockchain.ledger.data.TxTemplate; import com.jd.blockchain.sdk.BlockchainEventHandle; import com.jd.blockchain.sdk.BlockchainEventListener; -import com.jd.blockchain.sdk.BlockchainQueryService; import com.jd.blockchain.sdk.BlockchainService; +import com.jd.blockchain.transaction.BlockchainQueryService; +import com.jd.blockchain.transaction.TransactionService; +import com.jd.blockchain.transaction.TxTemplate; public abstract class BlockchainServiceProxy implements BlockchainService { diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/HttpBlockchainQueryService.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/HttpBlockchainQueryService.java index aa7188c6..19df6c9a 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/HttpBlockchainQueryService.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/proxy/HttpBlockchainQueryService.java @@ -3,9 +3,8 @@ package com.jd.blockchain.sdk.proxy; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.*; import com.jd.blockchain.sdk.BlockchainExtendQueryService; -import com.jd.blockchain.sdk.BlockchainQueryService; - import com.jd.blockchain.sdk.converters.HashDigestsResponseConverter; +import com.jd.blockchain.transaction.BlockchainQueryService; import com.jd.blockchain.utils.http.*; import com.jd.blockchain.utils.web.client.WebResponseConverterFactory; import com.jd.blockchain.sdk.converters.HashDigestToStringConverter; diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/ConsensusTransactionService.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/ConsensusTransactionService.java index 9ae5db3b..3fbc3a2d 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/ConsensusTransactionService.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/ConsensusTransactionService.java @@ -4,7 +4,7 @@ import com.jd.blockchain.consensus.ActionMessage; import com.jd.blockchain.consensus.OrderedAction; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; -import com.jd.blockchain.ledger.data.TransactionService; +import com.jd.blockchain.transaction.TransactionService; /** * 带共识的交易服务; diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/NodeSigningAppender.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/NodeSigningAppender.java index 8b4c3aad..52f289a8 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/NodeSigningAppender.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/NodeSigningAppender.java @@ -1,6 +1,6 @@ package com.jd.blockchain.sdk.service; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.consensus.MessageService; import com.jd.blockchain.consensus.client.ConsensusClient; @@ -13,9 +13,9 @@ import com.jd.blockchain.crypto.SignatureFunction; import com.jd.blockchain.ledger.NodeRequest; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; -import com.jd.blockchain.ledger.data.DigitalSignatureBlob; -import com.jd.blockchain.ledger.data.TransactionService; -import com.jd.blockchain.ledger.data.TxRequestMessage; +import com.jd.blockchain.transaction.DigitalSignatureBlob; +import com.jd.blockchain.transaction.TransactionService; +import com.jd.blockchain.transaction.TxRequestMessage; import com.jd.blockchain.utils.concurrent.AsyncFuture; /** @@ -63,7 +63,7 @@ public class NodeSigningAppender implements TransactionService { TxRequestMessage txMessage = new TxRequestMessage(txRequest); // 生成网关签名; - byte[] endpointRequestBytes = BinaryEncodingUtils.encode(txMessage, TransactionRequest.class); + byte[] endpointRequestBytes = BinaryProtocol.encode(txMessage, TransactionRequest.class); short signAlgorithm = nodeKeyPair.getAlgorithm(); SignatureFunction signFunc = Crypto.getSignatureFunction(signAlgorithm); @@ -71,13 +71,13 @@ public class NodeSigningAppender implements TransactionService { txMessage.addNodeSignatures(new DigitalSignatureBlob(nodeKeyPair.getPubKey(), signDigest)); // 计算交易哈希; - byte[] nodeRequestBytes = BinaryEncodingUtils.encode(txMessage, TransactionRequest.class); + byte[] nodeRequestBytes = BinaryProtocol.encode(txMessage, TransactionRequest.class); HashFunction hashFunc = Crypto.getHashFunction(signAlgorithm); HashDigest txHash = hashFunc.hash(nodeRequestBytes); txMessage.setHash(txHash); - AsyncFuture result = messageService.sendOrdered(BinaryEncodingUtils.encode(txMessage, TransactionRequest.class)); + AsyncFuture result = messageService.sendOrdered(BinaryProtocol.encode(txMessage, TransactionRequest.class)); - return BinaryEncodingUtils.decode(result.get()); + return BinaryProtocol.decode(result.get()); } } diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerBlockchainServiceFactory.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerBlockchainServiceFactory.java index 56f0b12a..c3504185 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerBlockchainServiceFactory.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerBlockchainServiceFactory.java @@ -7,11 +7,12 @@ import com.jd.blockchain.consensus.client.ConsensusClient; import com.jd.blockchain.crypto.AsymmetricKeypair; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.CryptoSetting; -import com.jd.blockchain.ledger.data.TransactionService; -import com.jd.blockchain.manage.GatewayIncomingSetting; -import com.jd.blockchain.manage.LedgerIncomingSetting; import com.jd.blockchain.sdk.*; import com.jd.blockchain.sdk.proxy.HttpBlockchainQueryService; +import com.jd.blockchain.setting.GatewayIncomingSetting; +import com.jd.blockchain.setting.LedgerIncomingSetting; +import com.jd.blockchain.transaction.BlockchainQueryService; +import com.jd.blockchain.transaction.TransactionService; import com.jd.blockchain.utils.http.agent.HttpServiceAgent; import com.jd.blockchain.utils.http.agent.ServiceConnection; import com.jd.blockchain.utils.http.agent.ServiceConnectionManager; diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerServiceProxy.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerServiceProxy.java index 4324ea79..535b45f5 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerServiceProxy.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/PeerServiceProxy.java @@ -3,11 +3,11 @@ package com.jd.blockchain.sdk.service; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; -import com.jd.blockchain.ledger.data.TransactionService; import com.jd.blockchain.sdk.BlockchainException; -import com.jd.blockchain.sdk.BlockchainQueryService; import com.jd.blockchain.sdk.LedgerAccessContext; import com.jd.blockchain.sdk.proxy.BlockchainServiceProxy; +import com.jd.blockchain.transaction.BlockchainQueryService; +import com.jd.blockchain.transaction.TransactionService; import java.util.HashMap; import java.util.List; diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/TransactionRequestMessageConverter.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/TransactionRequestMessageConverter.java index f150cf91..9a192577 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/TransactionRequestMessageConverter.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/TransactionRequestMessageConverter.java @@ -1,6 +1,6 @@ package com.jd.blockchain.sdk.service; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.consensus.BinaryMessageConverter; import com.jd.blockchain.ledger.TransactionRequest; @@ -8,12 +8,12 @@ public class TransactionRequestMessageConverter implements BinaryMessageConverte @Override public byte[] encode(Object message) { - return BinaryEncodingUtils.encode(message, TransactionRequest.class); + return BinaryProtocol.encode(message, TransactionRequest.class); } @Override public Object decode(byte[] messageBytes) { - return BinaryEncodingUtils.decode(messageBytes); + return BinaryProtocol.decode(messageBytes); } } diff --git a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/TransactionResponseMessageConverter.java b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/TransactionResponseMessageConverter.java index 3748c865..01a36973 100644 --- a/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/TransactionResponseMessageConverter.java +++ b/source/sdk/sdk-base/src/main/java/com/jd/blockchain/sdk/service/TransactionResponseMessageConverter.java @@ -1,6 +1,6 @@ package com.jd.blockchain.sdk.service; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.consensus.BinaryMessageConverter; import com.jd.blockchain.ledger.TransactionResponse; @@ -8,12 +8,12 @@ public class TransactionResponseMessageConverter implements BinaryMessageConvert @Override public byte[] encode(Object message) { - return BinaryEncodingUtils.encode(message, TransactionResponse.class); + return BinaryProtocol.encode(message, TransactionResponse.class); } @Override public Object decode(byte[] messageBytes) { - return BinaryEncodingUtils.decode(messageBytes); + return BinaryProtocol.decode(messageBytes); } } diff --git a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/client/Command.java b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/client/Command.java deleted file mode 100644 index 8b07376e..00000000 --- a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/client/Command.java +++ /dev/null @@ -1,100 +0,0 @@ -//package com.jd.blockchain.client; -// -//import java.util.HashMap; -//import java.util.Map; -// -//public class Command { -// -// private PeerClient peerClient; -// -// private Map executors; -// -// public Command(PeerClient peerClient) { -// this.peerClient = peerClient; -// this.executors = new HashMap<>(); -// executors.put("set", new SetCmd()); -// executors.put("get", new GetCmd()); -// executors.put("remove", new RemoveCmd()); -// executors.put("keys", new KeysCmd()); -// executors.put("contain", new ContainCmd()); -// } -// -// public void execute(String cmd) { -// String[] cmdArgs = cmd.split(" "); -// if (cmdArgs.length == 0) { -// System.out.println("Illegal input!!"); -// return; -// } -// -// String command = cmdArgs[0].trim(); -// String[] args = new String[cmdArgs.length - 1]; -// for (int i = 1; i < cmdArgs.length; i++) { -// args[i - 1] = cmdArgs[i].trim(); -// } -// -// CmdExecutor executor = executors.get(command); -// executor.execute(args); -// } -// -// private static interface CmdExecutor { -// -// public void execute(String[] args); -// -// } -// -// private class SetCmd implements CmdExecutor { -// @Override -// public void execute(String[] args) { -// if (args.length < 2) { -// System.out.println("SET command require 2 args!"); -// return; -// } -// String result = peerClient.set(args[0], args[1]); -// System.out.println("ok. --[" + result + "]"); -// } -// } -// -// private class GetCmd implements CmdExecutor { -// @Override -// public void execute(String[] args) { -// if (args.length < 1) { -// System.out.println("GET command require 1 args!"); -// return; -// } -// String result = peerClient.get(args[0]); -// System.out.println("ok. --[" + result + "]"); -// } -// } -// -// private class RemoveCmd implements CmdExecutor { -// @Override -// public void execute(String[] args) { -// if (args.length < 1) { -// System.out.println("REMOVE command require 1 args!"); -// return; -// } -// String result = peerClient.remove(args[0]); -// System.out.println("ok. --[" + result + "]"); -// } -// } -// -// private class KeysCmd implements CmdExecutor { -// @Override -// public void execute(String[] args) { -// String[] result = peerClient.getKeys(); -// System.out.println("ok. --[" + result + "]"); -// } -// } -// -// private class ContainCmd implements CmdExecutor { -// @Override -// public void execute(String[] args) { -// if (args.length < 1) { -// System.out.println("CONTAIN command require 1 args!"); -// return; -// } -// boolean result = peerClient.contain(args[0]); -// System.out.println("ok. --[" + result + "]"); -// } -// } -//} diff --git a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/client/PeerClient.java b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/client/PeerClient.java deleted file mode 100644 index bcc762e7..00000000 --- a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/client/PeerClient.java +++ /dev/null @@ -1,75 +0,0 @@ -//package com.jd.blockchain.client; -// -//import java.io.ByteArrayInputStream; -//import java.io.IOException; -//import java.io.ObjectInputStream; -// -//import com.jd.blockchain.ledger.Operation; -// -//import bftsmart.tom.AsynchServiceProxy; -// -//public class PeerClient { -// -// private AsynchServiceProxy peerProxy; -// -// public PeerClient(int clientId) { -// this.peerProxy = new AsynchServiceProxy(clientId); -// } -// -// public void close(){ -// peerProxy.close(); -// } -// -// public String set(String key, String value){ -// Operation.SetOP setOP = new Operation.SetOP(key, value); -// byte[] reply = peerProxy.invokeOrdered(setOP.toBytes()); -// -// return resolveResult(reply, String.class); -// } -// -// -// public String remove(String key){ -// Operation.RemoveOP removeOP = new Operation.RemoveOP(key); -// byte[] reply = peerProxy.invokeOrdered(removeOP.toBytes()); -// -// return resolveResult(reply, String.class); -// } -// -// public String get(String key){ -// Operation.GetOP getOP = new Operation.GetOP(key); -// byte[] reply = peerProxy.invokeUnordered(getOP.toBytes()); -// -// return resolveResult(reply, String.class); -// } -// -// public String[] getKeys(){ -// Operation.KeysOP keysOP = new Operation.KeysOP(); -// byte[] reply = peerProxy.invokeUnordered(keysOP.toBytes()); -// -// return resolveResult(reply, String[].class); -// } -// -// public boolean contain(String key){ -// Operation.ContainOP containOP = new Operation.ContainOP(key); -// byte[] reply = peerProxy.invokeUnordered(containOP.toBytes()); -// -// return resolveResult(reply, Boolean.class); -// } -// -// @SuppressWarnings("unchecked") -// public static T resolveResult(byte[] bytes, Class resultType){ -// if (bytes == null || bytes.length == 0) { -// return null; -// } -// try { -// ByteArrayInputStream bi = new ByteArrayInputStream(bytes); -// ObjectInputStream in = new ObjectInputStream(bi); -// Object op = in.readObject(); -// return (T) op; -// } catch (ClassNotFoundException e) { -// throw new IllegalStateException(e.getMessage(), e); -// } catch (IOException e) { -// throw new IllegalStateException(e.getMessage(), e); -// } -// } -//} diff --git a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/client/PeerClientDemo.java b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/client/PeerClientDemo.java deleted file mode 100644 index cad4ceb0..00000000 --- a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/client/PeerClientDemo.java +++ /dev/null @@ -1,35 +0,0 @@ -//package com.jd.blockchain.client; -// -//import java.io.Console; -// -//public class PeerClientDemo { -// -// public static void main(String[] args) { -// int clientId; -// if (args.length == 0) { -//// System.out.println("No client id !!!"); -//// return; -// clientId = 7; -// }else{ -// clientId = Integer.parseInt(args[0]); -// } -// -// PeerClient client = new PeerClient(clientId); -// Command cmd = new Command(client); -// System.out.println("---------------- Client["+clientId+"] started -----------------"); -// -// do { -// System.out.println(">>"); -// Console console = System.console(); -// String op = console.readLine(); -// if ("exit".equalsIgnoreCase(op)) { -// break; -// } -// cmd.execute(op); -// } while (true); -//// -// System.out.println("Client exist!"); -// client.close(); -// } -// -//} diff --git a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayBlockchainServiceProxy.java b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayBlockchainServiceProxy.java index b78dff08..940acbee 100644 --- a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayBlockchainServiceProxy.java +++ b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayBlockchainServiceProxy.java @@ -1,9 +1,9 @@ package com.jd.blockchain.sdk.client; import com.jd.blockchain.crypto.HashDigest; -import com.jd.blockchain.ledger.data.TransactionService; -import com.jd.blockchain.sdk.BlockchainQueryService; import com.jd.blockchain.sdk.proxy.BlockchainServiceProxy; +import com.jd.blockchain.transaction.BlockchainQueryService; +import com.jd.blockchain.transaction.TransactionService; public class GatewayBlockchainServiceProxy extends BlockchainServiceProxy { diff --git a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayServiceFactory.java b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayServiceFactory.java index ba0d9eaa..49348b90 100644 --- a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayServiceFactory.java +++ b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/GatewayServiceFactory.java @@ -2,7 +2,7 @@ package com.jd.blockchain.sdk.client; import java.io.Closeable; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.PrivKey; import com.jd.blockchain.crypto.SignatureDigest; @@ -12,13 +12,13 @@ import com.jd.blockchain.ledger.DigitalSignature; import com.jd.blockchain.ledger.TransactionContent; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; -import com.jd.blockchain.ledger.data.DigitalSignatureBlob; -import com.jd.blockchain.ledger.data.TransactionService; -import com.jd.blockchain.ledger.data.TxRequestMessage; -import com.jd.blockchain.sdk.BlockchainQueryService; import com.jd.blockchain.sdk.BlockchainService; import com.jd.blockchain.sdk.BlockchainServiceFactory; import com.jd.blockchain.sdk.proxy.HttpBlockchainQueryService; +import com.jd.blockchain.transaction.BlockchainQueryService; +import com.jd.blockchain.transaction.DigitalSignatureBlob; +import com.jd.blockchain.transaction.TransactionService; +import com.jd.blockchain.transaction.TxRequestMessage; import com.jd.blockchain.utils.http.agent.HttpServiceAgent; import com.jd.blockchain.utils.http.agent.ServiceConnection; import com.jd.blockchain.utils.http.agent.ServiceConnectionManager; @@ -135,7 +135,7 @@ public class GatewayServiceFactory implements BlockchainServiceFactory, Closeabl //TODO: 未实现按不同的账本的密码参数配置,采用不同的哈希算法和签名算法; if (!reqMsg.containsEndpointSignature(userKey.getAddress())) { // TODO: 优化上下文对此 TransactionContent 的多次序列化带来的额外性能开销; - byte[] txContentBytes = BinaryEncodingUtils.encode(txRequest.getTransactionContent(), + byte[] txContentBytes = BinaryProtocol.encode(txRequest.getTransactionContent(), TransactionContent.class); PrivKey userPrivKey = userKey.getPrivKey(); SignatureFunction signatureFunction = Crypto.getSignatureFunction(userKey.getAlgorithm()); diff --git a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/HttpConsensusService.java b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/HttpConsensusService.java index 69368504..9485436f 100644 --- a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/HttpConsensusService.java +++ b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/HttpConsensusService.java @@ -2,9 +2,9 @@ package com.jd.blockchain.sdk.client; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; -import com.jd.blockchain.ledger.data.TransactionService; import com.jd.blockchain.sdk.converters.BinarySerializeRequestConverter; import com.jd.blockchain.sdk.converters.BinarySerializeResponseConverter; +import com.jd.blockchain.transaction.TransactionService; import com.jd.blockchain.utils.http.HttpAction; import com.jd.blockchain.utils.http.HttpMethod; import com.jd.blockchain.utils.http.HttpService; diff --git a/source/sdk/sdk-samples/pom.xml b/source/sdk/sdk-samples/pom.xml index bc85d375..b6c36f6d 100644 --- a/source/sdk/sdk-samples/pom.xml +++ b/source/sdk/sdk-samples/pom.xml @@ -1,4 +1,5 @@ - 4.0.0 @@ -16,7 +17,7 @@ com.jd.blockchain - contract-model + ledger-model ${project.version} @@ -31,18 +32,17 @@ org.apache.maven.plugins maven-deploy-plugin - 2.8.2 true - - - - - - - + + + + + + + \ No newline at end of file diff --git a/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContract.java b/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContract.java index 8b343649..a6b91415 100644 --- a/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContract.java +++ b/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContract.java @@ -1,7 +1,7 @@ package com.jd.blockchain.contract.samples; -import com.jd.blockchain.contract.model.Contract; -import com.jd.blockchain.contract.model.ContractEvent; +import com.jd.blockchain.contract.Contract; +import com.jd.blockchain.contract.ContractEvent; /** * 示例:一个“资产管理”智能合约; diff --git a/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContractImpl.java b/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContractImpl.java index 31e962a0..ab644986 100644 --- a/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContractImpl.java +++ b/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/contract/samples/AssetContractImpl.java @@ -4,9 +4,9 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; -import com.jd.blockchain.contract.model.ContractException; -import com.jd.blockchain.contract.model.ContractEventContext; -import com.jd.blockchain.contract.model.EventProcessingAwire; +import com.jd.blockchain.contract.ContractEventContext; +import com.jd.blockchain.contract.ContractException; +import com.jd.blockchain.contract.EventProcessingAwire; import com.jd.blockchain.crypto.HashDigest; import com.jd.blockchain.ledger.BlockchainIdentity; import com.jd.blockchain.ledger.KVDataEntry; diff --git a/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Contract.java b/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Contract.java index ef0753bd..f88e1cf9 100644 --- a/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Contract.java +++ b/source/sdk/sdk-samples/src/main/java/com/jd/blockchain/sdk/samples/SDKDemo_Contract.java @@ -1,5 +1,6 @@ package com.jd.blockchain.sdk.samples; +import com.jd.blockchain.contract.samples.AssetContract; import com.jd.blockchain.crypto.AsymmetricKeypair; import com.jd.blockchain.crypto.Crypto; import com.jd.blockchain.crypto.HashDigest; @@ -35,12 +36,6 @@ public class SDKDemo_Contract { new NetworkAddress("192.168.10.11", 8080), new NetworkAddress("192.168.10.12", 8080), new NetworkAddress("192.168.10.13", 8080) }; - // 网关客户端编号; - int gatewayId = 1001; - // 客户端的认证账户; - // String clientAddress = "kkjsafieweqEkadsfaslkdslkae998232jojf=="; - // String privKey = "safefsd32q34vdsvs"; - // 创建服务代理; final String GATEWAY_IP = "127.0.0.1"; final int GATEWAY_PORT = 80; @@ -72,15 +67,10 @@ public class SDKDemo_Contract { // 备注信息; Remark remark = new Remark(); String remarkJSON = JSONSerializeUtils.serializeToJSON(remark); + +// AssetContract assetContract = txTemp.contract("", AssetContract.class); +// txTemp.contractInvocation(assetContract.issue(amount, assetHolderAddress)) - // 合约代码的参数表; - ByteArray[] args = {}; - // 调用合约代码的分配操作; - // txTemp.deployContract().deploy(identity, appByteCodes); - - // todo args暂时无数据,尚未确定填入什么 - txTemp.contractEvents().send(commerceAccount, "trans-asset", null); -// txTemp.invokeContract().send(commerceAccount, "trans-asset", args); // -------------------------------------- // TX 准备就绪; diff --git a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java index c7dae27f..644bf609 100644 --- a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java +++ b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_BatchInsertData_Test_.java @@ -30,9 +30,9 @@ import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; import com.jd.blockchain.ledger.TransactionTemplate; -import com.jd.blockchain.ledger.data.TxResponseMessage; import com.jd.blockchain.sdk.BlockchainTransactionService; import com.jd.blockchain.sdk.client.GatewayServiceFactory; +import com.jd.blockchain.transaction.TxResponseMessage; import com.jd.blockchain.utils.codec.Base58Utils; /** diff --git a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java index 4976b92b..7d343505 100644 --- a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java +++ b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_DataAccount_Test_.java @@ -28,9 +28,9 @@ import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; import com.jd.blockchain.ledger.TransactionTemplate; -import com.jd.blockchain.ledger.data.TxResponseMessage; import com.jd.blockchain.sdk.BlockchainService; import com.jd.blockchain.sdk.client.GatewayServiceFactory; +import com.jd.blockchain.transaction.TxResponseMessage; /** * 插入数据测试 diff --git a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_InsertData_Test_.java b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_InsertData_Test_.java index ccf6f333..07dba29f 100644 --- a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_InsertData_Test_.java +++ b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_InsertData_Test_.java @@ -30,9 +30,9 @@ import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; import com.jd.blockchain.ledger.TransactionTemplate; -import com.jd.blockchain.ledger.data.TxResponseMessage; import com.jd.blockchain.sdk.BlockchainTransactionService; import com.jd.blockchain.sdk.client.GatewayServiceFactory; +import com.jd.blockchain.transaction.TxResponseMessage; /** * 插入数据测试 diff --git a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Query_Test_.java b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Query_Test_.java index 937b4604..a5343eb6 100644 --- a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Query_Test_.java +++ b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_Query_Test_.java @@ -38,9 +38,9 @@ import com.jd.blockchain.ledger.TransactionContentBody; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; -import com.jd.blockchain.ledger.data.TxResponseMessage; import com.jd.blockchain.sdk.BlockchainService; import com.jd.blockchain.sdk.client.GatewayServiceFactory; +import com.jd.blockchain.transaction.TxResponseMessage; import com.jd.blockchain.utils.serialize.json.JSONSerializeUtils; /** diff --git a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_User_Test_.java b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_User_Test_.java index 382466e9..65cce89b 100644 --- a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_User_Test_.java +++ b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_GateWay_User_Test_.java @@ -32,9 +32,9 @@ import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionResponse; import com.jd.blockchain.ledger.TransactionState; import com.jd.blockchain.ledger.TransactionTemplate; -import com.jd.blockchain.ledger.data.TxResponseMessage; import com.jd.blockchain.sdk.BlockchainService; import com.jd.blockchain.sdk.client.GatewayServiceFactory; +import com.jd.blockchain.transaction.TxResponseMessage; /** * 插入数据测试 diff --git a/source/test/test-integration/pom.xml b/source/test/test-integration/pom.xml index 8e2e4946..b84a54bd 100644 --- a/source/test/test-integration/pom.xml +++ b/source/test/test-integration/pom.xml @@ -40,11 +40,6 @@ sdk-client ${project.version} - - com.jd.blockchain - contract-model - ${project.version} - io.nats jnats 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 c131930e..2a72c515 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 @@ -9,7 +9,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.core.io.ClassPathResource; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.consensus.ConsensusProvider; import com.jd.blockchain.consensus.ConsensusProviders; import com.jd.blockchain.consensus.ConsensusSettings; @@ -127,28 +127,28 @@ public class LedgerInitializeWebTest { LedgerInitOperation initOp0 = (LedgerInitOperation) oplist0[0]; LedgerInitOperation initOp1 = (LedgerInitOperation) oplist1[0]; - byte[] initOpBytes0 = BinaryEncodingUtils.encode(initOp0, LedgerInitOperation.class); - byte[] initOpBytes1 = BinaryEncodingUtils.encode(initOp1, LedgerInitOperation.class); + byte[] initOpBytes0 = BinaryProtocol.encode(initOp0, LedgerInitOperation.class); + byte[] initOpBytes1 = BinaryProtocol.encode(initOp1, LedgerInitOperation.class); UserRegisterOperation regOp00 = (UserRegisterOperation) oplist0[1]; UserRegisterOperation regOp10 = (UserRegisterOperation) oplist1[1]; - byte[] regOpBytes00 = BinaryEncodingUtils.encode(regOp00, UserRegisterOperation.class); - byte[] regOpBytes10 = BinaryEncodingUtils.encode(regOp10, UserRegisterOperation.class); + byte[] regOpBytes00 = BinaryProtocol.encode(regOp00, UserRegisterOperation.class); + byte[] regOpBytes10 = BinaryProtocol.encode(regOp10, UserRegisterOperation.class); UserRegisterOperation regOp01 = (UserRegisterOperation) oplist0[2]; UserRegisterOperation regOp11 = (UserRegisterOperation) oplist1[2]; - byte[] regOpBytes01 = BinaryEncodingUtils.encode(regOp01, UserRegisterOperation.class); - byte[] regOpBytes11 = BinaryEncodingUtils.encode(regOp11, UserRegisterOperation.class); + byte[] regOpBytes01 = BinaryProtocol.encode(regOp01, UserRegisterOperation.class); + byte[] regOpBytes11 = BinaryProtocol.encode(regOp11, UserRegisterOperation.class); UserRegisterOperation regOp02 = (UserRegisterOperation) oplist0[3]; UserRegisterOperation regOp12 = (UserRegisterOperation) oplist1[3]; - byte[] regOpBytes02 = BinaryEncodingUtils.encode(regOp02, UserRegisterOperation.class); - byte[] regOpBytes12 = BinaryEncodingUtils.encode(regOp12, UserRegisterOperation.class); + byte[] regOpBytes02 = BinaryProtocol.encode(regOp02, UserRegisterOperation.class); + byte[] regOpBytes12 = BinaryProtocol.encode(regOp12, UserRegisterOperation.class); UserRegisterOperation regOp03 = (UserRegisterOperation) oplist0[4]; UserRegisterOperation regOp13 = (UserRegisterOperation) oplist1[4]; - byte[] regOpBytes03 = BinaryEncodingUtils.encode(regOp03, UserRegisterOperation.class); - byte[] regOpBytes13 = BinaryEncodingUtils.encode(regOp13, UserRegisterOperation.class); + byte[] regOpBytes03 = BinaryProtocol.encode(regOp03, UserRegisterOperation.class); + byte[] regOpBytes13 = BinaryProtocol.encode(regOp13, UserRegisterOperation.class); } 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 d2e13f49..ec035f22 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 @@ -38,8 +38,7 @@ import com.jd.blockchain.ledger.core.LedgerRepository; import com.jd.blockchain.ledger.core.impl.DefaultOperationHandleRegisteration; import com.jd.blockchain.ledger.core.impl.LedgerManager; import com.jd.blockchain.ledger.core.impl.TransactionBatchProcessor; -import com.jd.blockchain.ledger.data.TxBuilder; -import com.jd.blockchain.ledger.service.TransactionBatchResultHandle; +import com.jd.blockchain.service.TransactionBatchResultHandle; import com.jd.blockchain.storage.service.DbConnectionFactory; import com.jd.blockchain.storage.service.impl.redis.JedisConnection; import com.jd.blockchain.storage.service.impl.redis.RedisConnectionFactory; @@ -51,6 +50,7 @@ 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.ConsoleUtils; import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback; 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 4c60f314..bdc80ae4 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 @@ -14,7 +14,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.core.io.ClassPathResource; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.consensus.ConsensusProvider; import com.jd.blockchain.consensus.ConsensusSettings; import com.jd.blockchain.crypto.HashDigest; @@ -29,7 +29,6 @@ import com.jd.blockchain.ledger.core.LedgerInitDecision; import com.jd.blockchain.ledger.core.LedgerInitPermission; import com.jd.blockchain.ledger.core.LedgerRepository; import com.jd.blockchain.ledger.core.impl.LedgerManager; -import com.jd.blockchain.ledger.data.TxRequestBuilder; import com.jd.blockchain.storage.service.DbConnection; import com.jd.blockchain.storage.service.impl.composite.CompositeConnectionFactory; import com.jd.blockchain.tools.initializer.DBConnectionConfig; @@ -42,6 +41,7 @@ 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; import com.jd.blockchain.utils.io.BytesUtils; @@ -138,32 +138,32 @@ public class LedgerInitializeWeb4SingleStepsTest { LedgerInitOperation initOp0 = (LedgerInitOperation) oplist0[0]; LedgerInitOperation initOp1 = (LedgerInitOperation) oplist1[0]; - byte[] initOpBytes0 = BinaryEncodingUtils.encode(initOp0, LedgerInitOperation.class); - byte[] initOpBytes1 = BinaryEncodingUtils.encode(initOp1, LedgerInitOperation.class); + byte[] initOpBytes0 = BinaryProtocol.encode(initOp0, LedgerInitOperation.class); + byte[] initOpBytes1 = BinaryProtocol.encode(initOp1, LedgerInitOperation.class); assertTrue(BytesUtils.equals(initOpBytes0, initOpBytes1)); UserRegisterOperation regOp00 = (UserRegisterOperation) oplist0[1]; UserRegisterOperation regOp10 = (UserRegisterOperation) oplist1[1]; - byte[] regOpBytes00 = BinaryEncodingUtils.encode(regOp00, UserRegisterOperation.class); - byte[] regOpBytes10 = BinaryEncodingUtils.encode(regOp10, UserRegisterOperation.class); + byte[] regOpBytes00 = BinaryProtocol.encode(regOp00, UserRegisterOperation.class); + byte[] regOpBytes10 = BinaryProtocol.encode(regOp10, UserRegisterOperation.class); assertTrue(BytesUtils.equals(regOpBytes00, regOpBytes10)); UserRegisterOperation regOp01 = (UserRegisterOperation) oplist0[2]; UserRegisterOperation regOp11 = (UserRegisterOperation) oplist1[2]; - byte[] regOpBytes01 = BinaryEncodingUtils.encode(regOp01, UserRegisterOperation.class); - byte[] regOpBytes11 = BinaryEncodingUtils.encode(regOp11, UserRegisterOperation.class); + byte[] regOpBytes01 = BinaryProtocol.encode(regOp01, UserRegisterOperation.class); + byte[] regOpBytes11 = BinaryProtocol.encode(regOp11, UserRegisterOperation.class); assertTrue(BytesUtils.equals(regOpBytes01, regOpBytes11)); UserRegisterOperation regOp02 = (UserRegisterOperation) oplist0[3]; UserRegisterOperation regOp12 = (UserRegisterOperation) oplist1[3]; - byte[] regOpBytes02 = BinaryEncodingUtils.encode(regOp02, UserRegisterOperation.class); - byte[] regOpBytes12 = BinaryEncodingUtils.encode(regOp12, UserRegisterOperation.class); + byte[] regOpBytes02 = BinaryProtocol.encode(regOp02, UserRegisterOperation.class); + byte[] regOpBytes12 = BinaryProtocol.encode(regOp12, UserRegisterOperation.class); assertTrue(BytesUtils.equals(regOpBytes02, regOpBytes12)); UserRegisterOperation regOp03 = (UserRegisterOperation) oplist0[4]; UserRegisterOperation regOp13 = (UserRegisterOperation) oplist1[4]; - byte[] regOpBytes03 = BinaryEncodingUtils.encode(regOp03, UserRegisterOperation.class); - byte[] regOpBytes13 = BinaryEncodingUtils.encode(regOp13, UserRegisterOperation.class); + byte[] regOpBytes03 = BinaryProtocol.encode(regOp03, UserRegisterOperation.class); + byte[] regOpBytes13 = BinaryProtocol.encode(regOp13, UserRegisterOperation.class); assertTrue(BytesUtils.equals(regOpBytes03, regOpBytes13)); } 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 0be0fff4..c350f232 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 @@ -30,13 +30,13 @@ import com.jd.blockchain.ledger.core.LedgerRepository; import com.jd.blockchain.ledger.core.impl.DefaultOperationHandleRegisteration; import com.jd.blockchain.ledger.core.impl.LedgerManager; import com.jd.blockchain.ledger.core.impl.TransactionBatchProcessor; -import com.jd.blockchain.ledger.data.TxBuilder; -import com.jd.blockchain.ledger.service.TransactionBatchResultHandle; +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; import com.jd.blockchain.utils.io.FileUtils; diff --git a/source/tools/tools-capability/src/main/java/com/jd/blockchain/capability/service/RemoteTransactionService.java b/source/tools/tools-capability/src/main/java/com/jd/blockchain/capability/service/RemoteTransactionService.java index d498dddd..f45ca863 100644 --- a/source/tools/tools-capability/src/main/java/com/jd/blockchain/capability/service/RemoteTransactionService.java +++ b/source/tools/tools-capability/src/main/java/com/jd/blockchain/capability/service/RemoteTransactionService.java @@ -17,7 +17,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicLong; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.capability.settings.CapabilitySettings; import com.jd.blockchain.consensus.mq.factory.MsgQueueFactory; import com.jd.blockchain.consensus.mq.producer.MsgQueueProducer; @@ -28,7 +28,7 @@ import com.jd.blockchain.ledger.BlockchainKeyGenerator; import com.jd.blockchain.ledger.BlockchainKeypair; import com.jd.blockchain.ledger.TransactionRequest; import com.jd.blockchain.ledger.TransactionRequestBuilder; -import com.jd.blockchain.ledger.data.TxBuilder; +import com.jd.blockchain.transaction.TxBuilder; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.ConsoleUtils; import com.jd.blockchain.utils.io.BytesUtils; @@ -240,7 +240,7 @@ public class RemoteTransactionService { instanceFactory.execute(() -> { List currentBytes = new ArrayList<>(); TransactionRequest txRequest = dataAccountRegisterRequest(CapabilitySettings.ledgerHash, CapabilitySettings.adminKey); - byte[] serializeBytes = BinaryEncodingUtils.encode(txRequest, TransactionRequest.class); + byte[] serializeBytes = BinaryProtocol.encode(txRequest, TransactionRequest.class); currentBytes.add(serializeBytes); try { txBlockingQueue.put(currentBytes); @@ -285,7 +285,7 @@ public class RemoteTransactionService { LinkedList txSerializeBytes = new LinkedList<>(); for (int i = 0; i < CapabilitySettings.TX_SIZE_PER_SEND; i++) { TransactionRequest txRequest = userRegisterRequest(CapabilitySettings.ledgerHash, CapabilitySettings.adminKey); - byte[] serializeBytes = BinaryEncodingUtils.encode(txRequest, TransactionRequest.class); + byte[] serializeBytes = BinaryProtocol.encode(txRequest, TransactionRequest.class); txSerializeBytes.addFirst(serializeBytes); } return txSerializeBytes; @@ -300,7 +300,7 @@ public class RemoteTransactionService { LinkedList txSerializeBytes = new LinkedList<>(); for (int i = 0; i < CapabilitySettings.TX_SIZE_PER_SEND; i++) { TransactionRequest txRequest = dataAccountRegisterRequest(CapabilitySettings.ledgerHash, CapabilitySettings.adminKey, isSave); - byte[] serializeBytes = BinaryEncodingUtils.encode(txRequest, TransactionRequest.class); + byte[] serializeBytes = BinaryProtocol.encode(txRequest, TransactionRequest.class); txSerializeBytes.addFirst(serializeBytes); } return txSerializeBytes; @@ -311,7 +311,7 @@ public class RemoteTransactionService { LinkedList txSerializeBytes = new LinkedList<>(); for (int i = 0; i < CapabilitySettings.TX_SIZE_PER_SEND; i++) { TransactionRequest txRequest = kvStorageRequest(address, CapabilitySettings.ledgerHash, CapabilitySettings.adminKey); - byte[] serializeBytes = BinaryEncodingUtils.encode(txRequest, TransactionRequest.class); + byte[] serializeBytes = BinaryProtocol.encode(txRequest, TransactionRequest.class); txSerializeBytes.addFirst(serializeBytes); } return txSerializeBytes; diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/DecisionRequestBodyConverter.java b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/DecisionRequestBodyConverter.java index 4b096f48..5c7c72e2 100644 --- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/DecisionRequestBodyConverter.java +++ b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/DecisionRequestBodyConverter.java @@ -3,7 +3,7 @@ package com.jd.blockchain.tools.initializer.web; import java.io.IOException; import java.io.OutputStream; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.ledger.core.LedgerInitDecision; import com.jd.blockchain.utils.http.RequestBodyConverter; @@ -12,7 +12,7 @@ public class DecisionRequestBodyConverter implements RequestBodyConverter { @Override public void write(Object param, OutputStream out) throws IOException { if (param instanceof LedgerInitDecision) { - BinaryEncodingUtils.encode(param, LedgerInitDecision.class, out); + BinaryProtocol.encode(param, LedgerInitDecision.class, out); return; } } 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 6dcbb3d3..ba60ec8c 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 @@ -2,7 +2,7 @@ package com.jd.blockchain.tools.initializer.web; import java.io.InputStream; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.tools.initializer.LedgerInitException; import com.jd.blockchain.utils.http.HttpServiceContext; import com.jd.blockchain.utils.http.ResponseConverter; @@ -17,7 +17,7 @@ public class DecisionResponseConverter implements ResponseConverter { if (resp.isError()) { throw new LedgerInitException("Error occurred at remote participant! --" + resp.getErrorMessage()); } - return BinaryEncodingUtils.decode(resp.getData()); + return BinaryProtocol.decode(resp.getData()); } } diff --git a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitMessageConverter.java b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitMessageConverter.java index d7af9115..5658f9f6 100644 --- a/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitMessageConverter.java +++ b/source/tools/tools-initializer/src/main/java/com/jd/blockchain/tools/initializer/web/LedgerInitMessageConverter.java @@ -13,7 +13,7 @@ import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotWritableException; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.binaryproto.DataContractRegistry; import com.jd.blockchain.crypto.SignatureDigest; import com.jd.blockchain.ledger.core.LedgerInitDecision; @@ -87,7 +87,7 @@ public class LedgerInitMessageConverter implements HttpMessageConverter Class contractType = getContractType(clazz); Class implType = SUPPORTED_CONTRACT_TYPES.get(contractType); - return BinaryEncodingUtils.decode(inputMessage.getBody()); + return BinaryProtocol.decode(inputMessage.getBody()); } @Override @@ -104,7 +104,7 @@ public class LedgerInitMessageConverter implements HttpMessageConverter if (contractType == null) { throw new IllegalStateException("Unsupported type[" + t.getClass().getName() + "]!"); } - byte[] data = BinaryEncodingUtils.encode(t, contractType); + byte[] data = BinaryProtocol.encode(t, contractType); resp = LedgerInitResponse.success(data); outputMessage.getBody().write(resp.toBytes()); } 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 1bbf595f..42e1d5d6 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 @@ -45,10 +45,6 @@ import com.jd.blockchain.ledger.core.LedgerInitPermission; import com.jd.blockchain.ledger.core.LedgerInitPermissionData; import com.jd.blockchain.ledger.core.LedgerManage; import com.jd.blockchain.ledger.core.LedgerTransactionContext; -import com.jd.blockchain.ledger.data.DigitalSignatureBlob; -import com.jd.blockchain.ledger.data.LedgerInitSettingData; -import com.jd.blockchain.ledger.data.TxBuilder; -import com.jd.blockchain.ledger.data.TxRequestBuilder; import com.jd.blockchain.storage.service.DbConnection; import com.jd.blockchain.storage.service.DbConnectionFactory; import com.jd.blockchain.tools.initializer.DBConnectionConfig; @@ -57,6 +53,10 @@ 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.transaction.DigitalSignatureBlob; +import com.jd.blockchain.transaction.LedgerInitSettingData; +import com.jd.blockchain.transaction.TxBuilder; +import com.jd.blockchain.transaction.TxRequestBuilder; import com.jd.blockchain.tools.initializer.Prompter; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.concurrent.InvocationResult; 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 a0f40417..ab5b0308 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 @@ -2,7 +2,7 @@ package com.jd.blockchain.tools.initializer.web; import java.io.InputStream; -import com.jd.blockchain.binaryproto.BinaryEncodingUtils; +import com.jd.blockchain.binaryproto.BinaryProtocol; import com.jd.blockchain.ledger.core.LedgerInitPermissionData; import com.jd.blockchain.tools.initializer.LedgerInitException; import com.jd.blockchain.utils.http.HttpServiceContext; @@ -18,7 +18,7 @@ public class PermissionResponseConverter implements ResponseConverter { if (resp.isError()) { throw new LedgerInitException("Error occurred at remote participant! --" + resp.getErrorMessage()); } - return BinaryEncodingUtils.decode(resp.getData()); + return BinaryProtocol.decode(resp.getData()); } } diff --git a/source/utils/utils-common/src/main/java/com/jd/blockchain/utils/Bytes.java b/source/utils/utils-common/src/main/java/com/jd/blockchain/utils/Bytes.java index 7b7921b8..2aeb488e 100644 --- a/source/utils/utils-common/src/main/java/com/jd/blockchain/utils/Bytes.java +++ b/source/utils/utils-common/src/main/java/com/jd/blockchain/utils/Bytes.java @@ -8,6 +8,12 @@ import com.jd.blockchain.utils.io.BytesSerializable; import com.jd.blockchain.utils.io.BytesUtils; import com.jd.blockchain.utils.io.RuntimeIOException; +/** + * Bytes 被设计为不可变对象; + * + * @author huanghaiquan + * + */ public class Bytes implements BytesSerializable { public static final Bytes EMPTY = new Bytes(BytesUtils.EMPTY_BYTES); @@ -38,7 +44,7 @@ public class Bytes implements BytesSerializable { } public Bytes() { - prefix=null; + prefix = null; data = null; hashCode = hashCode(1); } @@ -47,7 +53,7 @@ public class Bytes implements BytesSerializable { if (data == null) { throw new IllegalArgumentException("data is null!"); } - this.prefix=null; + this.prefix = null; this.data = data; hashCode = hashCode(1); } @@ -56,30 +62,30 @@ public class Bytes implements BytesSerializable { if (data == null) { throw new IllegalArgumentException("data is null!"); } - this.prefix=prefix; + this.prefix = prefix; this.data = data; -// setPrefix(prefix); + // setPrefix(prefix); hashCode = hashCode(1); } public Bytes(Bytes prefix, Bytes data) { -// setData(data.toBytes()); -// setPrefix(prefix); + // setData(data.toBytes()); + // setPrefix(prefix); if (data == null) { throw new IllegalArgumentException("data is null!"); } - this.prefix=prefix; + this.prefix = prefix; this.data = data.toBytes(); - + hashCode = hashCode(1); } -// private void setData(byte[] data) { -// if (data == null) { -// throw new IllegalArgumentException("data is null!"); -// } -// this.data = data; -// } + // private void setData(byte[] data) { + // if (data == null) { + // throw new IllegalArgumentException("data is null!"); + // } + // this.data = data; + // } /** * 返回当前的字节数组(不包含前缀对象); @@ -98,16 +104,16 @@ public class Bytes implements BytesSerializable { return new Bytes(Base58Utils.decode(str)); } -// /** -// * 连接指定的前缀后面;此操作并不会更改“prefix”参数; -// * -// * @param prefix -// * @return -// */ -// private Bytes setPrefix(Bytes prefix) { -// this.prefix = prefix; -// return this; -// } + // /** + // * 连接指定的前缀后面;此操作并不会更改“prefix”参数; + // * + // * @param prefix + // * @return + // */ + // private Bytes setPrefix(Bytes prefix) { + // this.prefix = prefix; + // return this; + // } public Bytes concat(Bytes key) { return new Bytes(this, key); diff --git a/source/utils/utils-common/src/main/java/com/jd/blockchain/utils/ValueType.java b/source/utils/utils-common/src/main/java/com/jd/blockchain/utils/ValueType.java deleted file mode 100644 index ccabc600..00000000 --- a/source/utils/utils-common/src/main/java/com/jd/blockchain/utils/ValueType.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.jd.blockchain.utils; - -/** - * 键值操作的数据类型; - * - * @author huanghaiquan - * - */ -public enum ValueType { - - /** - * 空; - */ - NIL((byte) 0x00), - - /** - * 布尔型; - */ - BOOLEAN((byte) 0x10), - - /** - * 数值型: - */ - - INT8((byte) 0x11), - - INT16((byte) 0x12), - - INT32((byte) 0x13), - - INT64((byte) 0x14), - - /** - * 日期时间; - */ - DATETIME((byte) 0x15), - - /** - * 文本数据; - */ - TEXT((byte) 0x20), - - /** - * 文本数据; - */ - JSON((byte) 0x21), - - /** - * 文本数据; - */ - XML((byte) 0x22), - - /** - * 二进制数据; - */ - BYTES((byte) 0x40), - - /** - * 大整数; - */ - BIG_INT((byte) 0x41), - - /** - * 图片; - */ - IMG((byte) 0x42), - - /** - * 视频; - */ - VIDEO((byte) 0x43), - - /** - * 位置; - */ - LOCATION((byte) 0x44); - - -// /** -// * 引用;
-// * -// * 表示引用区块链系统中的某一个特定的对象,用以下形式的 URI 表示; -// * -// * state://ledger/account/key/version
-// * 或
-// * proof:state://account_merkle_path/key_merkle_path -// * -// * proof:tx:// -// * -// */ -// REFERENCE((byte) 0x80); - - public final byte CODE; - - private ValueType(byte code) { - this.CODE = code; - } - - public static ValueType valueOf(byte code) { - for (ValueType dataType : ValueType.values()) { - if (dataType.CODE == code) { - return dataType; - } - } - throw new IllegalArgumentException("Unsupported code[" + code + "] of DataType!"); - } - -}