@@ -152,4 +152,5 @@ public interface DataCodes { | |||||
public static final int CONSENSUS_MSGQUEUE_BLOCK_SETTINGS = CONSENSUS_MSGQUEUE | 0x05; | public static final int CONSENSUS_MSGQUEUE_BLOCK_SETTINGS = CONSENSUS_MSGQUEUE | 0x05; | ||||
} | } |
@@ -0,0 +1,19 @@ | |||||
package com.jd.blockchain.consts; | |||||
import java.util.TimeZone; | |||||
public class Global { | |||||
public static final String DEFAULT_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss.SSSZ"; | |||||
public static final String DEFAULT_TIME_ZONE = "GMT+08:00"; | |||||
static { | |||||
initialize(); | |||||
} | |||||
public static void initialize() { | |||||
TimeZone.setDefault(TimeZone.getTimeZone(DEFAULT_TIME_ZONE)); | |||||
} | |||||
} |
@@ -1,5 +1,6 @@ | |||||
package com.jd.blockchain.peer; | package com.jd.blockchain.peer; | ||||
import com.jd.blockchain.consts.Global; | |||||
import com.jd.blockchain.storage.service.DbConnectionFactory; | import com.jd.blockchain.storage.service.DbConnectionFactory; | ||||
import com.jd.blockchain.tools.initializer.LedgerBindingConfig; | import com.jd.blockchain.tools.initializer.LedgerBindingConfig; | ||||
import com.jd.blockchain.utils.ArgumentSet; | import com.jd.blockchain.utils.ArgumentSet; | ||||
@@ -41,6 +42,11 @@ public class PeerServerBooter { | |||||
private static final String DEBUG_OPT = "-debug"; | private static final String DEBUG_OPT = "-debug"; | ||||
public static String ledgerBindConfigFile; | public static String ledgerBindConfigFile; | ||||
static { | |||||
// 加载 Global ,初始化全局设置; | |||||
Global.initialize(); | |||||
} | |||||
public static void main(String[] args) { | public static void main(String[] args) { | ||||
PeerServerBooter peerServerBooter = new PeerServerBooter(); | PeerServerBooter peerServerBooter = new PeerServerBooter(); | ||||
@@ -9,8 +9,7 @@ import java.util.ArrayList; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Properties; | import java.util.Properties; | ||||
import org.springframework.util.ResourceUtils; | |||||
import com.jd.blockchain.consts.Global; | |||||
import com.jd.blockchain.crypto.AddressEncoding; | import com.jd.blockchain.crypto.AddressEncoding; | ||||
import com.jd.blockchain.crypto.PubKey; | import com.jd.blockchain.crypto.PubKey; | ||||
import com.jd.blockchain.ledger.ParticipantNode; | import com.jd.blockchain.ledger.ParticipantNode; | ||||
@@ -31,7 +30,7 @@ public class LedgerInitProperties { | |||||
// 声明的账本建立时间; | // 声明的账本建立时间; | ||||
public static final String CREATED_TIME = "created-time"; | public static final String CREATED_TIME = "created-time"; | ||||
// 创建时间的格式; | // 创建时间的格式; | ||||
public static final String CREATED_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss.SSSZ"; | |||||
public static final String CREATED_TIME_FORMAT = Global.DEFAULT_TIME_FORMAT; | |||||
// 共识参与方的个数,后续以 part.id 分别标识每一个参与方的配置; | // 共识参与方的个数,后续以 part.id 分别标识每一个参与方的配置; | ||||
public static final String PART_COUNT = "cons_parti.count"; | public static final String PART_COUNT = "cons_parti.count"; | ||||
@@ -162,7 +161,7 @@ public class LedgerInitProperties { | |||||
public static LedgerInitProperties resolve(Properties props) { | public static LedgerInitProperties resolve(Properties props) { | ||||
return resolve(null, props); | return resolve(null, props); | ||||
} | } | ||||
public static LedgerInitProperties resolve(String dir, Properties props) { | public static LedgerInitProperties resolve(String dir, Properties props) { | ||||
String hexLedgerSeed = PropertiesUtils.getRequiredProperty(props, LEDGER_SEED).replace("-", ""); | String hexLedgerSeed = PropertiesUtils.getRequiredProperty(props, LEDGER_SEED).replace("-", ""); | ||||
byte[] ledgerSeed = HexUtils.decode(hexLedgerSeed); | byte[] ledgerSeed = HexUtils.decode(hexLedgerSeed); | ||||
@@ -1,17 +1,18 @@ | |||||
package test.com.jd.blockchain.tools.initializer; | package test.com.jd.blockchain.tools.initializer; | ||||
import static org.junit.Assert.*; | |||||
import static org.junit.Assert.assertEquals; | |||||
import java.io.IOException; | import java.io.IOException; | ||||
import java.io.InputStream; | import java.io.InputStream; | ||||
import java.text.ParseException; | import java.text.ParseException; | ||||
import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||
import java.util.Date; | import java.util.Date; | ||||
import java.util.TimeZone; | |||||
import com.jd.blockchain.crypto.AddressEncoding; | |||||
import org.junit.Test; | import org.junit.Test; | ||||
import org.springframework.core.io.ClassPathResource; | import org.springframework.core.io.ClassPathResource; | ||||
import com.jd.blockchain.crypto.AddressEncoding; | |||||
import com.jd.blockchain.crypto.PubKey; | import com.jd.blockchain.crypto.PubKey; | ||||
import com.jd.blockchain.tools.initializer.LedgerInitProperties; | import com.jd.blockchain.tools.initializer.LedgerInitProperties; | ||||
import com.jd.blockchain.tools.initializer.LedgerInitProperties.ConsensusParticipantConfig; | import com.jd.blockchain.tools.initializer.LedgerInitProperties.ConsensusParticipantConfig; | ||||
@@ -22,12 +23,21 @@ public class LedgerInitPropertiesTest { | |||||
private static String expectedCreatedTimeStr = "2019-08-01 14:26:58.069+0800"; | private static String expectedCreatedTimeStr = "2019-08-01 14:26:58.069+0800"; | ||||
private static String expectedCreatedTimeStr1 = "2019-08-01 13:26:58.069+0700"; | |||||
@Test | @Test | ||||
public void testTimeFormat() throws ParseException { | public void testTimeFormat() throws ParseException { | ||||
SimpleDateFormat timeFormat = new SimpleDateFormat(LedgerInitProperties.CREATED_TIME_FORMAT); | SimpleDateFormat timeFormat = new SimpleDateFormat(LedgerInitProperties.CREATED_TIME_FORMAT); | ||||
// timeFormat.setTimeZone(TimeZone.getTimeZone("GMT+08:00")); | |||||
TimeZone.setDefault(TimeZone.getTimeZone("GMT+08:00")); | |||||
Date time = timeFormat.parse(expectedCreatedTimeStr); | Date time = timeFormat.parse(expectedCreatedTimeStr); | ||||
String actualTimeStr = timeFormat.format(time); | String actualTimeStr = timeFormat.format(time); | ||||
assertEquals(expectedCreatedTimeStr, actualTimeStr); | assertEquals(expectedCreatedTimeStr, actualTimeStr); | ||||
Date time1 = timeFormat.parse(expectedCreatedTimeStr1); | |||||
String actualTimeStr1 = timeFormat.format(time1); | |||||
assertEquals(expectedCreatedTimeStr, actualTimeStr1); | |||||
} | } | ||||
@Test | @Test | ||||
@@ -43,6 +53,7 @@ public class LedgerInitPropertiesTest { | |||||
assertEquals(expectedLedgerSeed, actualLedgerSeed); | assertEquals(expectedLedgerSeed, actualLedgerSeed); | ||||
SimpleDateFormat timeFormat = new SimpleDateFormat(LedgerInitProperties.CREATED_TIME_FORMAT); | SimpleDateFormat timeFormat = new SimpleDateFormat(LedgerInitProperties.CREATED_TIME_FORMAT); | ||||
timeFormat.setTimeZone(TimeZone.getTimeZone("GMT+08:00")); | |||||
long expectedTs = timeFormat.parse(expectedCreatedTimeStr).getTime(); | long expectedTs = timeFormat.parse(expectedCreatedTimeStr).getTime(); | ||||
assertEquals(expectedTs, initProps.getCreatedTime()); | assertEquals(expectedTs, initProps.getCreatedTime()); | ||||
@@ -3,7 +3,7 @@ | |||||
ledger.seed=932dfe23-fe23232f-283f32fa-dd32aa76-8322ca2f-56236cda-7136b322-cb323ffe | ledger.seed=932dfe23-fe23232f-283f32fa-dd32aa76-8322ca2f-56236cda-7136b322-cb323ffe | ||||
#账本的描述名称;此属性不参与共识,仅仅在当前参与方的本地节点用于描述用途; | #账本的描述名称;此属性不参与共识,仅仅在当前参与方的本地节点用于描述用途; | ||||
ledger.name= | |||||
ledger.name=test | |||||
#声明的账本创建时间;格式为 “yyyy-MM-dd HH:mm:ss.SSSZ”,表示”年-月-日 时:分:秒:毫秒时区“;例如:“2019-08-01 14:26:58.069+0800”,其中,+0800 表示时区是东8区 | #声明的账本创建时间;格式为 “yyyy-MM-dd HH:mm:ss.SSSZ”,表示”年-月-日 时:分:秒:毫秒时区“;例如:“2019-08-01 14:26:58.069+0800”,其中,+0800 表示时区是东8区 | ||||
created-time=2019-08-01 14:26:58.069+0800 | created-time=2019-08-01 14:26:58.069+0800 | ||||