ZhuLei886 1 gadu atpakaļ
revīzija
01cac31908
29 mainītis faili ar 3754 papildinājumiem un 0 dzēšanām
  1. 10 0
      .gitignore
  2. 84 0
      README.md
  3. BIN
      lib/rest-client-2.15.2-SNAPSHOT-with-dependencies.jar
  4. 912 0
      logs/sys-error.2022-07-12.log
  5. 110 0
      logs/sys-error.log
  6. 443 0
      logs/sys-info.2022-07-12.log
  7. 68 0
      logs/sys-info.2022-07-13.log
  8. 61 0
      logs/sys-info.log
  9. 146 0
      pom.xml
  10. 62 0
      src/main/java/com/alipay/openchain/DemoFlowRunner.java
  11. 20 0
      src/main/java/com/alipay/openchain/OpenchainDemoApplication.java
  12. 260 0
      src/main/java/com/alipay/openchain/controller/Api.java
  13. 65 0
      src/main/java/com/alipay/openchain/entity/CCount.java
  14. 38 0
      src/main/java/com/alipay/openchain/entity/Commodity.java
  15. 61 0
      src/main/java/com/alipay/openchain/entity/IssueAddrEntity.java
  16. 55 0
      src/main/java/com/alipay/openchain/entity/TransferFromEntity.java
  17. 39 0
      src/main/java/com/alipay/openchain/entity/User.java
  18. 368 0
      src/main/java/com/alipay/openchain/flow/ContractFlow.java
  19. 212 0
      src/main/java/com/alipay/openchain/flow/ContractFlowforkms.java
  20. 80 0
      src/main/java/com/alipay/openchain/flow/DepositFlow.java
  21. 85 0
      src/main/java/com/alipay/openchain/flow/DepositFlowforkms.java
  22. 116 0
      src/main/java/com/alipay/openchain/flow/OperateChainAccount.java
  23. 145 0
      src/main/java/com/alipay/openchain/flow/QueryChainData.java
  24. 169 0
      src/main/java/com/alipay/openchain/vo/Result.java
  25. 28 0
      src/main/resources/access.key
  26. 39 0
      src/main/resources/application.yaml
  27. 0 0
      src/main/resources/contract.txt
  28. 71 0
      src/main/resources/logback.xml
  29. 7 0
      src/main/resources/user.key

+ 10 - 0
.gitignore

@@ -0,0 +1,10 @@
+*.iml
+target
+.idea
+compiler/
+*.cert
+*.node
+*.type
+*.csr
+*.sol
+chain/*

+ 84 - 0
README.md

@@ -0,0 +1,84 @@
+# Openchain Demo For Java
+
+## 1. 背景
+开放联盟链旨在打造为低成本、低门槛开放普惠的,生态最繁荣的区块链服务网络。为了方便Java开发者
+接入并使用开放联盟链,我们提供该示例工程。本示例工程只支持使用用户创建的非托管链上账户
+(非托管账户即通过开放联盟链页面创建的自己保存私钥、密码的账户,而非从标示(密码托管)处创建的链上账户)。               
+
+## 2. 工程简介
+OpenchainDemoApplication,启动后会自动执行DemoFlowRunner,DemoFlowRunner会执行我们定义好的链操作示例流程。
+
+DepositFlow是存证场景下的示例操作,包括如下流程:
+1. 向开放联盟链存入数据
+2. 查询存入的数据
+
+ContractFlow是合约相关场景的示例操作,resource/contract.txt中保存了一个Solidity积分合约和字节码,可以在Cloud IDE
+编译合约得到字节码。如果要部署新合约,需要将Cloud IDE中调试好的合约字节码放到contract.txt中,示例包括如下流程:
+1. 部署Solidity合约
+2. 调用Solidity合约
+
+
+## 3. 配置说明
+开发者运行该示例工程时,需要对配置文件进行相应的更新,配置文件中属性的详见含义如下:
+```java
+bizid: 开放联盟链的链ID
+cipher-suit: 加密算法,ec表示采用椭圆曲线数字签名算法
+rest-url: 访问开放联盟链的地址
+access-id: *开发者需要替换* 替换为准备环境步骤申请AccessKey时返回的Access-id
+access-secret: *开发者需要替换* 将access.key文件内容替换为准备环境步骤申请AccessKey时返回的密钥
+default-account: *开发者需要替换* 创建账户时的账户名
+default-account-key: *开发者需要替换* 创建账户时返回的私钥
+default-account-pwd: *开发者需要替换* 创建账户时的密码
+read-file-from-ext: 表示读取配置文件的路径,默认为false,表示在resource目录下读取
+```
+
+## 4. 快速开始
+更新相应配置,然后运行OpenchainDemoApplication。
+
+## 5. 文档
+如下是一个简单的合约实例,contract.txt是对应的字节码。这是蚂蚁区块链合约平台对积分管理方案的简单实现,主要实现了积分的发放、转账和查询三个方法。
+```solidity
+pragma solidity ^0.4.0;
+contract CreditManager {
+    int256 creditLimit = 1000000000;   // the issue limit
+    int256 issueAmount = 0;           // the issue total amount
+    identity admin;                    // the administrator in contract
+    mapping(identity=>int256) credit;
+    
+    event IssueEvent(identity indexed to, int256 indexed value);
+    event TransferEvent(identity indexed from, identity indexed to, int256 indexed value);
+    
+    function CreditManager() {
+        admin = msg.sender;
+    }
+    
+    // modifier
+    modifier onlyAdmin() {
+        require(msg.sender == admin,"Permission denied");
+        _;
+    }
+    
+    // issue credit and only admin can 
+    function Issue(identity account, int256 value) public onlyAdmin returns(bool) {
+        // the value should bigger than 0, and issueAmount add value should small than issueAmount
+        require(issueAmount + value <= creditLimit && issueAmount + value > issueAmount && value > 0, "Invalid value!");
+        credit[account] += value;
+        issueAmount += value;
+        IssueEvent(account,value);
+        return true;
+    }
+    
+    function Transfer(identity account,int256 value) public returns(bool) {
+        require(credit[msg.sender] >= value, "balance not enough!");
+        require(value > 0 && value <= creditLimit, "Invalid value!");
+        credit[msg.sender] -= value;
+        credit[account] += value;
+        TransferEvent(msg.sender,account,value);
+        return true;
+    }
+    
+    function Query(identity account) public returns(int256) {
+        return credit[account];
+    }
+}
+```

BIN
lib/rest-client-2.15.2-SNAPSHOT-with-dependencies.jar


+ 912 - 0
logs/sys-error.2022-07-12.log

@@ -0,0 +1,912 @@
+14:15:50.320 [http-nio-8088-exec-2] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: CALLCONTRACTBIZASYNC method must has outTypes] with root cause
+java.lang.RuntimeException: CALLCONTRACTBIZASYNC method must has outTypes
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.chainCallForBiz(RestClient.java:794)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.bizChainCallWithReceipt(RestClient.java:681)
+	at com.alipay.openchain.flow.ContractFlowforkms.callSolidityContract(ContractFlowforkms.java:153)
+	at com.alipay.openchain.controller.Api.IssueAddrKms(Api.java:130)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)
+14:42:02.689 [main] ERROR o.s.b.SpringApplication - [reportFailure,771] - Application startup failed
+org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'contractFlow': Unsatisfied dependency expressed through field 'restClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRestClient': Invocation of init method failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://rest.baas.alipay.com/api/contract/shakeHand": Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: connect timed out; nested exception is org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: connect timed out
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
+	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
+	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
+	at com.alipay.openchain.OpenchainDemoApplication.main(OpenchainDemoApplication.java:15)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRestClient': Invocation of init method failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://rest.baas.alipay.com/api/contract/shakeHand": Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: connect timed out; nested exception is org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: connect timed out
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 17 common frames omitted
+Caused by: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://rest.baas.alipay.com/api/contract/shakeHand": Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: connect timed out; nested exception is org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: connect timed out
+	at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:673)
+	at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:635)
+	at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:597)
+	at com.antfinancial.mychain.baas.tool.restclient.client.RestHttpClient.callBaaSRest(RestHttpClient.java:23)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.shake(RestClient.java:138)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.init(RestClient.java:148)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:311)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:134)
+	... 29 common frames omitted
+Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: connect timed out
+	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:143)
+	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
+	at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
+	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
+	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
+	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
+	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
+	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
+	at org.springframework.http.client.HttpComponentsClientHttpRequest.executeInternal(HttpComponentsClientHttpRequest.java:89)
+	at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
+	at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53)
+	at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:659)
+	... 41 common frames omitted
+Caused by: java.net.SocketTimeoutException: connect timed out
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:337)
+	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
+	... 54 common frames omitted
+15:49:01.613 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: CALLCONTRACTBIZASYNC method must has outTypes] with root cause
+java.lang.RuntimeException: CALLCONTRACTBIZASYNC method must has outTypes
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.chainCallForBiz(RestClient.java:794)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.bizChainCallWithReceipt(RestClient.java:681)
+	at com.alipay.openchain.flow.ContractFlowforkms.callSolidityContract(ContractFlowforkms.java:157)
+	at com.alipay.openchain.controller.Api.IssueAddrKms(Api.java:189)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)
+15:50:27.879 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: CALLCONTRACTBIZASYNC method must has outTypes] with root cause
+java.lang.RuntimeException: CALLCONTRACTBIZASYNC method must has outTypes
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.chainCallForBiz(RestClient.java:794)
+	at com.alipay.openchain.flow.ContractFlowforkms.callSolidityContract(ContractFlowforkms.java:157)
+	at com.alipay.openchain.controller.Api.IssueAddrKms(Api.java:189)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)
+15:52:21.564 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: CALLCONTRACTBIZASYNC method must has outTypes] with root cause
+java.lang.RuntimeException: CALLCONTRACTBIZASYNC method must has outTypes
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.chainCallForBiz(RestClient.java:794)
+	at com.alipay.openchain.flow.ContractFlowforkms.callSolidityContract(ContractFlowforkms.java:158)
+	at com.alipay.openchain.controller.Api.IssueAddrKms(Api.java:189)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)
+15:52:45.181 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: CALLCONTRACTBIZASYNC method must has inputParamListStr] with root cause
+java.lang.RuntimeException: CALLCONTRACTBIZASYNC method must has inputParamListStr
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.chainCallForBiz(RestClient.java:794)
+	at com.alipay.openchain.flow.ContractFlowforkms.callSolidityContract(ContractFlowforkms.java:158)
+	at com.alipay.openchain.controller.Api.IssueAddrKms(Api.java:189)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)
+17:04:08.226 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.alibaba.fastjson.JSONException: can not cast to : com.alipay.mychain.sdk.domain.account.Identity] with root cause
+com.alibaba.fastjson.JSONException: can not cast to : com.alipay.mychain.sdk.domain.account.Identity
+	at com.alibaba.fastjson.util.TypeUtils.cast(TypeUtils.java:1260)
+	at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1069)
+	at com.alibaba.fastjson.JSONArray.getObject(JSONArray.java:273)
+	at com.antfinancial.mychain.baas.tool.utils.ContractParameterUtils.addParameter4Contract(ContractParameterUtils.java:50)
+	at com.antfinancial.mychain.baas.tool.restclient.request.ConstructCallContractRequest.createCallContractTransaction(ConstructCallContractRequest.java:44)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.createCallContractTransaction(RestClient.java:191)
+	at com.alipay.openchain.flow.ContractFlow.callSolidityContract(ContractFlow.java:107)
+	at com.alipay.openchain.controller.Api.IssueAddr(Api.java:111)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)
+17:04:52.664 [main] ERROR o.s.b.SpringApplication - [reportFailure,771] - Application startup failed
+org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'contractFlow': Unsatisfied dependency expressed through field 'restClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRestClient': Invocation of init method failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://rest.baas.alipay.com/api/contract/shakeHand": Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out; nested exception is org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
+	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
+	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
+	at com.alipay.openchain.OpenchainDemoApplication.main(OpenchainDemoApplication.java:15)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRestClient': Invocation of init method failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://rest.baas.alipay.com/api/contract/shakeHand": Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out; nested exception is org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 17 common frames omitted
+Caused by: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://rest.baas.alipay.com/api/contract/shakeHand": Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out; nested exception is org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out
+	at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:673)
+	at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:635)
+	at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:597)
+	at com.antfinancial.mychain.baas.tool.restclient.client.RestHttpClient.callBaaSRest(RestHttpClient.java:23)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.shake(RestClient.java:138)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.init(RestClient.java:148)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:311)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:134)
+	... 29 common frames omitted
+Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out
+	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:143)
+	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
+	at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
+	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
+	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
+	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
+	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
+	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
+	at org.springframework.http.client.HttpComponentsClientHttpRequest.executeInternal(HttpComponentsClientHttpRequest.java:89)
+	at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
+	at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53)
+	at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:659)
+	... 41 common frames omitted
+Caused by: java.net.SocketTimeoutException: Read timed out
+	at java.net.SocketInputStream.socketRead0(Native Method)
+	at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
+	at java.net.SocketInputStream.read(SocketInputStream.java:171)
+	at java.net.SocketInputStream.read(SocketInputStream.java:141)
+	at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
+	at sun.security.ssl.InputRecord.read(InputRecord.java:503)
+	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983)
+	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
+	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
+	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
+	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:394)
+	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353)
+	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
+	... 54 common frames omitted
+17:05:28.997 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: Unsupported function parameter type: Identity] with root cause
+java.lang.RuntimeException: Unsupported function parameter type: Identity
+	at com.antfinancial.mychain.baas.tool.utils.ContractParameterUtils.addParameter4Contract(ContractParameterUtils.java:62)
+	at com.antfinancial.mychain.baas.tool.restclient.request.ConstructCallContractRequest.createCallContractTransaction(ConstructCallContractRequest.java:44)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.createCallContractTransaction(RestClient.java:191)
+	at com.alipay.openchain.flow.ContractFlow.callSolidityContract(ContractFlow.java:107)
+	at com.alipay.openchain.controller.Api.IssueAddr(Api.java:111)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)
+17:07:03.384 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.alibaba.fastjson.JSONException: can not cast to : com.alipay.mychain.sdk.domain.account.Identity] with root cause
+com.alibaba.fastjson.JSONException: can not cast to : com.alipay.mychain.sdk.domain.account.Identity
+	at com.alibaba.fastjson.util.TypeUtils.cast(TypeUtils.java:1260)
+	at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1069)
+	at com.alibaba.fastjson.JSONArray.getObject(JSONArray.java:273)
+	at com.antfinancial.mychain.baas.tool.utils.ContractParameterUtils.addParameter4Contract(ContractParameterUtils.java:50)
+	at com.antfinancial.mychain.baas.tool.restclient.request.ConstructCallContractRequest.createCallContractTransaction(ConstructCallContractRequest.java:44)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.createCallContractTransaction(RestClient.java:191)
+	at com.alipay.openchain.flow.ContractFlow.callSolidityContract(ContractFlow.java:107)
+	at com.alipay.openchain.controller.Api.IssueAddr(Api.java:111)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)
+17:09:04.895 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NumberFormatException: For input string: "{"data""] with root cause
+java.lang.NumberFormatException: For input string: "{"data""
+	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
+	at java.lang.Integer.parseInt(Integer.java:580)
+	at java.math.BigInteger.<init>(BigInteger.java:470)
+	at java.math.BigInteger.<init>(BigInteger.java:606)
+	at com.alibaba.fastjson.util.TypeUtils.castToBigInteger(TypeUtils.java:380)
+	at com.alibaba.fastjson.JSONArray.getBigInteger(JSONArray.java:417)
+	at com.antfinancial.mychain.baas.tool.utils.ContractParameterUtils.addParameter4Contract(ContractParameterUtils.java:38)
+	at com.antfinancial.mychain.baas.tool.restclient.request.ConstructCallContractRequest.createCallContractTransaction(ConstructCallContractRequest.java:44)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.createCallContractTransaction(RestClient.java:191)
+	at com.alipay.openchain.flow.ContractFlow.callSolidityContract(ContractFlow.java:107)
+	at com.alipay.openchain.controller.Api.IssueAddr(Api.java:111)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)
+17:21:55.482 [main] ERROR o.s.b.SpringApplication - [reportFailure,771] - Application startup failed
+org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'contractFlow': Unsatisfied dependency expressed through field 'restClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRestClient': Invocation of init method failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://rest.baas.alipay.com/api/contract/shakeHand": Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out; nested exception is org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
+	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
+	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
+	at com.alipay.openchain.OpenchainDemoApplication.main(OpenchainDemoApplication.java:15)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRestClient': Invocation of init method failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://rest.baas.alipay.com/api/contract/shakeHand": Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out; nested exception is org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 17 common frames omitted
+Caused by: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://rest.baas.alipay.com/api/contract/shakeHand": Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out; nested exception is org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out
+	at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:673)
+	at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:635)
+	at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:597)
+	at com.antfinancial.mychain.baas.tool.restclient.client.RestHttpClient.callBaaSRest(RestHttpClient.java:23)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.shake(RestClient.java:138)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.init(RestClient.java:148)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:311)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:134)
+	... 29 common frames omitted
+Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to rest.baas.alipay.com:443 [rest.baas.alipay.com/203.107.53.50] failed: Read timed out
+	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:143)
+	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
+	at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
+	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
+	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
+	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
+	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
+	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
+	at org.springframework.http.client.HttpComponentsClientHttpRequest.executeInternal(HttpComponentsClientHttpRequest.java:89)
+	at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
+	at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53)
+	at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:659)
+	... 41 common frames omitted
+Caused by: java.net.SocketTimeoutException: Read timed out
+	at java.net.SocketInputStream.socketRead0(Native Method)
+	at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
+	at java.net.SocketInputStream.read(SocketInputStream.java:171)
+	at java.net.SocketInputStream.read(SocketInputStream.java:141)
+	at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
+	at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:593)
+	at sun.security.ssl.InputRecord.read(InputRecord.java:532)
+	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983)
+	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
+	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
+	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
+	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:394)
+	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353)
+	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
+	... 54 common frames omitted
+18:11:54.701 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.StringIndexOutOfBoundsException: String index out of range: -9] with root cause
+java.lang.StringIndexOutOfBoundsException: String index out of range: -9
+	at java.lang.String.substring(String.java:1967)
+	at com.alipay.openchain.flow.ContractFlow.selectSolidityContract(ContractFlow.java:268)
+	at com.alipay.openchain.controller.Api.select(Api.java:150)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)
+18:13:20.545 [http-nio-8088-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.StringIndexOutOfBoundsException: String index out of range: -9] with root cause
+java.lang.StringIndexOutOfBoundsException: String index out of range: -9
+	at java.lang.String.substring(String.java:1967)
+	at com.alipay.openchain.flow.ContractFlow.selectSolidityContract(ContractFlow.java:269)
+	at com.alipay.openchain.controller.Api.select(Api.java:150)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
+	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
+	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
+	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
+	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
+	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
+	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
+	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
+	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
+	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
+	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
+	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
+	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
+	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
+	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
+	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
+	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
+	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
+	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
+	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
+	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
+	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
+	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
+	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
+	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
+	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
+	at java.lang.Thread.run(Thread.java:748)

+ 110 - 0
logs/sys-error.log

@@ -0,0 +1,110 @@
+09:49:50.076 [main] ERROR o.s.b.SpringApplication - [reportFailure,837] - Application run failed
+org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'contractFlow': Unsatisfied dependency expressed through field 'restClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRestClient': Invocation of init method failed; nested exception is java.lang.NullPointerException
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:895)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
+	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
+	at com.alipay.openchain.OpenchainDemoApplication.main(OpenchainDemoApplication.java:15)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRestClient': Invocation of init method failed; nested exception is java.lang.NullPointerException
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1306)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1226)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
+	... 18 common frames omitted
+Caused by: java.lang.NullPointerException: null
+	at sun.misc.MetaIndex.mayContain(MetaIndex.java:242)
+	at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:1032)
+	at sun.misc.URLClassPath.getResource(URLClassPath.java:239)
+	at sun.misc.URLClassPath.getResource(URLClassPath.java:292)
+	at java.lang.ClassLoader.getBootstrapResource(ClassLoader.java:1264)
+	at java.lang.ClassLoader.getResource(ClassLoader.java:1093)
+	at java.lang.ClassLoader.getResource(ClassLoader.java:1091)
+	at java.net.URLClassLoader.getResourceAsStream(URLClassLoader.java:232)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.readFromMultiSource(RestClient.java:122)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.init(RestClient.java:147)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
+	... 30 common frames omitted
+10:03:45.961 [main] ERROR o.s.b.SpringApplication - [reportFailure,837] - Application run failed
+org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'contractFlow': Unsatisfied dependency expressed through field 'restClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRestClient': Invocation of init method failed; nested exception is java.lang.NullPointerException
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:895)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
+	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
+	at com.alipay.openchain.OpenchainDemoApplication.main(OpenchainDemoApplication.java:15)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRestClient': Invocation of init method failed; nested exception is java.lang.NullPointerException
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1306)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1226)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
+	... 18 common frames omitted
+Caused by: java.lang.NullPointerException: null
+	at sun.misc.MetaIndex.mayContain(MetaIndex.java:242)
+	at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:1032)
+	at sun.misc.URLClassPath.getResource(URLClassPath.java:239)
+	at sun.misc.URLClassPath.getResource(URLClassPath.java:292)
+	at java.lang.ClassLoader.getBootstrapResource(ClassLoader.java:1264)
+	at java.lang.ClassLoader.getResource(ClassLoader.java:1093)
+	at java.lang.ClassLoader.getResource(ClassLoader.java:1091)
+	at java.net.URLClassLoader.getResourceAsStream(URLClassLoader.java:232)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.readFromMultiSource(RestClient.java:122)
+	at com.antfinancial.mychain.baas.tool.restclient.RestClient.init(RestClient.java:147)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
+	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
+	... 30 common frames omitted

+ 443 - 0
logs/sys-info.2022-07-12.log

@@ -0,0 +1,443 @@
+11:35:20.863 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 26268 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+11:35:20.866 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+11:35:21.038 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+11:35:22.008 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+11:35:22.009 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+11:35:22.141 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+11:35:24.323 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+11:35:24.918 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NTk2NDgwLCJleHAiOjE2NTc1OTgyODAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.vBuv4uoB5bHp975uot2-V0RYqv4sxRAYKS0QNWE_Lk4
+11:35:25.458 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+11:35:25.467 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+11:35:25.479 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+11:35:25.501 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 4.933 seconds (JVM running for 7.424)
+13:27:28.078 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 15316 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+13:27:28.081 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+13:27:28.325 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+13:27:29.441 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+13:27:29.442 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+13:27:29.593 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+13:27:32.033 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+13:27:32.713 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjAxODgxLCJleHAiOjE2NTc2MDM2ODEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.q8-915cmDFMuA_y0ClegiqUUjel_TJLNr-JMUoYwfnE
+13:27:33.315 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+13:27:33.323 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+13:27:33.337 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+13:27:33.370 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.716 seconds (JVM running for 8.533)
+13:28:55.909 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+13:31:31.954 [http-nio-8088-exec-2] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+13:31:35.141 [http-nio-8088-exec-2] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjAzNjgxLCJleHAiOjE2NTc2MDU0ODEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.kOlMwn1x71OiFmkPWT0qBNIx9CBQdWVeAQ1tNy3YqO8
+13:39:50.239 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 11844 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+13:39:50.242 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+13:39:50.388 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+13:39:51.433 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+13:39:51.434 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+13:39:51.612 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+13:39:54.208 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+13:39:55.022 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjAzNjgxLCJleHAiOjE2NTc2MDU0ODEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.kOlMwn1x71OiFmkPWT0qBNIx9CBQdWVeAQ1tNy3YqO8
+13:39:55.733 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+13:39:55.745 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+13:39:55.763 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+13:39:55.793 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.87 seconds (JVM running for 8.037)
+13:40:30.687 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+13:48:58.709 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 13392 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+13:48:58.716 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+13:48:58.894 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+13:48:59.911 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+13:48:59.913 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+13:49:00.073 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+13:49:02.486 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+13:49:03.370 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjAzNjgxLCJleHAiOjE2NTc2MDU0ODEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.kOlMwn1x71OiFmkPWT0qBNIx9CBQdWVeAQ1tNy3YqO8
+13:49:03.906 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+13:49:03.912 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+13:49:03.926 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+13:49:03.953 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.566 seconds (JVM running for 7.925)
+13:49:08.568 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+13:53:21.089 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 26856 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+13:53:21.092 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+13:53:21.253 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+13:53:22.202 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+13:53:22.203 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+13:53:22.358 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+13:53:24.582 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+13:53:25.305 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjAzNjgxLCJleHAiOjE2NTc2MDU0ODEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.kOlMwn1x71OiFmkPWT0qBNIx9CBQdWVeAQ1tNy3YqO8
+13:53:25.846 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+13:53:25.853 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+13:53:25.867 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+13:53:25.889 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.135 seconds (JVM running for 7.387)
+13:54:02.899 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+14:15:13.535 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 18632 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+14:15:13.540 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+14:15:13.749 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+14:15:14.717 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+14:15:14.718 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+14:15:14.876 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+14:15:17.220 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+14:15:26.133 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjA1NDgyLCJleHAiOjE2NTc2MDcyODIsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.AA49T24Y-OI5Oz4oyDpsUxyS8u6v3IxfPpXpD-kliDI
+14:15:26.935 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+14:15:26.943 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+14:15:26.955 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+14:15:26.977 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 13.776 seconds (JVM running for 16.043)
+14:15:38.013 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+14:17:03.144 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 17848 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+14:17:03.147 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+14:17:03.310 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+14:17:04.234 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+14:17:04.235 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+14:17:04.370 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+14:17:06.563 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+14:17:08.331 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjA1NDgyLCJleHAiOjE2NTc2MDcyODIsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.AA49T24Y-OI5Oz4oyDpsUxyS8u6v3IxfPpXpD-kliDI
+14:17:08.937 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+14:17:08.943 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+14:17:08.957 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+14:17:08.983 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 6.15 seconds (JVM running for 8.268)
+14:17:36.632 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+14:40:43.138 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 13236 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+14:40:43.144 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+14:40:43.321 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+14:40:44.342 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+14:40:44.344 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+14:40:44.487 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+14:40:46.983 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+14:40:56.400 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjA3MzEwLCJleHAiOjE2NTc2MDkxMTAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.20CtmiMmFMnJjia2q1ujd-pf6rsSQFsGoad0oqoV56k
+14:40:57.016 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+14:40:57.022 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+14:40:57.036 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+14:40:57.060 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 14.231 seconds (JVM running for 16.431)
+14:41:48.599 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 1776 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+14:41:48.602 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+14:41:48.774 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+14:41:49.693 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+14:41:49.694 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+14:41:49.841 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+14:41:52.021 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+14:42:02.608 [main] INFO  o.a.c.c.StandardService - [log,179] - Stopping service [Tomcat]
+14:43:01.139 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 20216 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+14:43:01.141 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+14:43:01.305 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+14:43:02.220 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+14:43:02.221 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+14:43:02.361 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+14:43:04.560 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+14:43:09.213 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjA3MzEwLCJleHAiOjE2NTc2MDkxMTAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.20CtmiMmFMnJjia2q1ujd-pf6rsSQFsGoad0oqoV56k
+14:43:09.827 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+14:43:09.834 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+14:43:09.847 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+14:43:09.870 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 9.034 seconds (JVM running for 11.163)
+14:43:23.585 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+14:47:32.533 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 10760 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+14:47:32.536 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+14:47:32.691 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+14:47:33.648 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+14:47:33.650 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+14:47:33.784 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+14:47:36.014 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+14:47:36.901 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjA3MzEwLCJleHAiOjE2NTc2MDkxMTAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.20CtmiMmFMnJjia2q1ujd-pf6rsSQFsGoad0oqoV56k
+14:47:37.509 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+14:47:37.516 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+14:47:37.528 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+14:47:37.551 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.317 seconds (JVM running for 7.51)
+14:47:54.897 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+15:37:30.898 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 3260 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+15:37:30.904 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+15:37:31.134 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+15:37:32.172 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+15:37:32.173 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+15:37:32.331 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+15:37:35.015 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+15:37:35.837 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjEwOTExLCJleHAiOjE2NTc2MTI3MTEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.yQN5ASZ0aDCuUJbFDtMHNjAr5fjyTYCbE3JrZzeOJa8
+15:37:36.460 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+15:37:36.468 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+15:37:36.481 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+15:37:36.511 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 6.058 seconds (JVM running for 8.336)
+15:37:50.419 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+15:48:09.461 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 10116 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+15:48:09.464 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+15:48:09.630 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+15:48:10.546 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+15:48:10.548 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+15:48:10.703 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+15:48:12.973 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+15:48:13.787 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjEwOTExLCJleHAiOjE2NTc2MTI3MTEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.yQN5ASZ0aDCuUJbFDtMHNjAr5fjyTYCbE3JrZzeOJa8
+15:48:14.387 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+15:48:14.394 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+15:48:14.408 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+15:48:14.429 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.27 seconds (JVM running for 7.46)
+15:49:01.510 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+15:50:19.908 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 18792 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+15:50:19.910 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+15:50:20.079 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+15:50:20.986 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+15:50:20.987 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+15:50:21.126 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+15:50:23.327 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+15:50:24.156 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjEwOTExLCJleHAiOjE2NTc2MTI3MTEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.yQN5ASZ0aDCuUJbFDtMHNjAr5fjyTYCbE3JrZzeOJa8
+15:50:24.762 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+15:50:24.770 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+15:50:24.784 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+15:50:24.809 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.199 seconds (JVM running for 7.458)
+15:50:27.794 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+15:52:13.544 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 22092 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+15:52:13.549 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+15:52:13.715 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+15:52:14.621 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+15:52:14.623 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+15:52:14.762 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+15:52:16.993 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+15:52:17.710 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjEwOTExLCJleHAiOjE2NTc2MTI3MTEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.yQN5ASZ0aDCuUJbFDtMHNjAr5fjyTYCbE3JrZzeOJa8
+15:52:18.326 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+15:52:18.333 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+15:52:18.348 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+15:52:18.370 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.146 seconds (JVM running for 7.322)
+15:52:21.487 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+15:52:37.817 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 26336 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+15:52:37.823 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+15:52:37.973 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+15:52:38.898 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+15:52:38.899 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+15:52:39.035 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+15:52:41.253 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+15:52:41.984 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjEwOTExLCJleHAiOjE2NTc2MTI3MTEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.yQN5ASZ0aDCuUJbFDtMHNjAr5fjyTYCbE3JrZzeOJa8
+15:52:42.522 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+15:52:42.532 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+15:52:42.547 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+15:52:42.569 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.053 seconds (JVM running for 7.212)
+15:52:45.065 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+15:53:17.450 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 24748 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+15:53:17.456 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+15:53:17.619 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+15:53:18.531 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+15:53:18.532 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+15:53:18.677 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+15:53:20.886 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+15:53:21.803 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjEwOTExLCJleHAiOjE2NTc2MTI3MTEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.yQN5ASZ0aDCuUJbFDtMHNjAr5fjyTYCbE3JrZzeOJa8
+15:53:22.494 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+15:53:22.502 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+15:53:22.520 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+15:53:22.548 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.398 seconds (JVM running for 7.586)
+15:53:26.566 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+16:07:23.000 [http-nio-8088-exec-3] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+16:07:23.171 [http-nio-8088-exec-3] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjEyNzQwLCJleHAiOjE2NTc2MTQ1NDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.uK5J4eNCGm4O0f3FvjP4sEkjn7yYbHPBdlB9RKEdAJ4
+16:13:00.027 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 14804 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+16:13:00.031 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+16:13:00.214 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+16:13:01.174 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+16:13:01.179 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+16:13:01.328 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+16:13:03.594 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+16:13:04.342 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjEyNzQwLCJleHAiOjE2NTc2MTQ1NDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.uK5J4eNCGm4O0f3FvjP4sEkjn7yYbHPBdlB9RKEdAJ4
+16:13:04.976 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+16:13:04.983 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+16:13:04.998 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+16:13:05.021 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.333 seconds (JVM running for 7.543)
+16:13:13.245 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+16:32:09.776 [http-nio-8088-exec-7] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+16:32:10.058 [http-nio-8088-exec-7] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE0NTQwLCJleHAiOjE2NTc2MTYzNDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.gA_paHQR8GhJi2qVrOwp6W3nKLRiCyE04YhMNxyGb98
+16:47:02.810 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 20616 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+16:47:02.815 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+16:47:03.006 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+16:47:03.891 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+16:47:03.892 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+16:47:04.032 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+16:47:06.142 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+16:47:06.846 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE0NTQwLCJleHAiOjE2NTc2MTYzNDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.gA_paHQR8GhJi2qVrOwp6W3nKLRiCyE04YhMNxyGb98
+16:47:07.425 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+16:47:07.433 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+16:47:07.446 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+16:47:07.472 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 4.994 seconds (JVM running for 7.211)
+16:47:12.361 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+17:02:58.798 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 3132 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:02:58.802 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:02:59.001 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:02:59.957 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:02:59.958 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:03:00.116 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:03:02.572 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:03:03.790 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE2MzQwLCJleHAiOjE2NTc2MTgxNDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YSq5XEFY308KLgqvjnHNzrmVFi_5JCWepIRbiCAmNXI
+17:03:04.405 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:03:04.412 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:03:04.426 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:03:04.451 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 6.02 seconds (JVM running for 8.347)
+17:04:08.103 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+17:04:45.305 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 14432 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:04:45.308 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:04:45.472 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:04:46.345 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:04:46.345 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:04:46.479 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:04:48.648 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:04:52.645 [main] INFO  o.a.c.c.StandardService - [log,179] - Stopping service [Tomcat]
+17:05:19.531 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 19776 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:05:19.535 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:05:19.699 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:05:20.571 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:05:20.578 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:05:20.710 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:05:22.802 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:05:23.972 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE2MzQwLCJleHAiOjE2NTc2MTgxNDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YSq5XEFY308KLgqvjnHNzrmVFi_5JCWepIRbiCAmNXI
+17:05:24.565 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:05:24.570 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:05:24.583 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:05:24.607 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.4 seconds (JVM running for 7.556)
+17:05:28.907 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+17:06:53.334 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 8428 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:06:53.336 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:06:53.482 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:06:54.359 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:06:54.360 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:06:54.495 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:06:56.587 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:06:59.742 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE2MzQwLCJleHAiOjE2NTc2MTgxNDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YSq5XEFY308KLgqvjnHNzrmVFi_5JCWepIRbiCAmNXI
+17:07:00.348 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:07:00.355 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:07:00.369 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:07:00.392 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 7.353 seconds (JVM running for 9.48)
+17:07:03.300 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+17:08:56.266 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 14252 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:08:56.270 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:08:56.432 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:08:57.299 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:08:57.300 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:08:57.431 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:08:59.525 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:09:01.828 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE2MzQwLCJleHAiOjE2NTc2MTgxNDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YSq5XEFY308KLgqvjnHNzrmVFi_5JCWepIRbiCAmNXI
+17:09:02.408 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:09:02.415 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:09:02.428 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:09:02.452 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 6.489 seconds (JVM running for 8.636)
+17:09:04.800 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+17:09:35.830 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 22352 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:09:35.833 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:09:35.980 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:09:36.891 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:09:36.892 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:09:37.038 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:09:39.140 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:09:44.268 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE2MzQwLCJleHAiOjE2NTc2MTgxNDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YSq5XEFY308KLgqvjnHNzrmVFi_5JCWepIRbiCAmNXI
+17:09:44.788 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:09:44.799 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:09:44.812 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:09:44.834 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 9.29 seconds (JVM running for 11.458)
+17:09:47.057 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+17:12:15.488 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 4780 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:12:15.493 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:12:15.657 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:12:16.584 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:12:16.585 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:12:16.731 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:12:18.814 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:12:20.769 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE2MzQwLCJleHAiOjE2NTc2MTgxNDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YSq5XEFY308KLgqvjnHNzrmVFi_5JCWepIRbiCAmNXI
+17:12:21.282 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:12:21.288 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:12:21.301 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:12:21.325 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 6.17 seconds (JVM running for 8.333)
+17:12:28.943 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+17:14:11.815 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 15780 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:14:11.818 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:14:11.954 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:14:12.831 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:14:12.833 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:14:12.964 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:14:15.058 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:14:16.987 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE2MzQwLCJleHAiOjE2NTc2MTgxNDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YSq5XEFY308KLgqvjnHNzrmVFi_5JCWepIRbiCAmNXI
+17:14:17.486 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:14:17.496 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:14:17.511 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:14:17.533 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 6.023 seconds (JVM running for 8.178)
+17:20:50.831 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+17:21:47.820 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 25460 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:21:47.824 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:21:47.979 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:21:48.853 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:21:48.854 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:21:48.991 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:21:51.106 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:21:55.465 [main] INFO  o.a.c.c.StandardService - [log,179] - Stopping service [Tomcat]
+17:31:02.558 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 27284 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:31:02.563 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:31:02.720 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:31:03.571 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:31:03.573 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:31:03.707 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:31:05.796 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:31:08.501 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE4MTQwLCJleHAiOjE2NTc2MTk5NDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.mHM5emv1j00iLxWzXeGQ21e7weJqbz1WGx6endHB2eU
+17:31:09.091 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:31:09.099 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:31:09.112 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:31:09.137 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 6.857 seconds (JVM running for 9.011)
+17:31:12.224 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+17:51:04.170 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 24712 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:51:04.175 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:51:04.377 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:51:05.590 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:51:05.591 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:51:05.768 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:51:08.108 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:51:10.649 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE4MTQwLCJleHAiOjE2NTc2MTk5NDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.mHM5emv1j00iLxWzXeGQ21e7weJqbz1WGx6endHB2eU
+17:51:11.219 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:51:11.226 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:51:11.240 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:51:11.262 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 7.417 seconds (JVM running for 9.652)
+17:51:52.250 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 3476 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:51:52.255 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:51:52.416 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:51:53.310 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:51:53.311 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:51:53.445 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:51:55.567 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:52:02.044 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE4MTQwLCJleHAiOjE2NTc2MTk5NDAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.mHM5emv1j00iLxWzXeGQ21e7weJqbz1WGx6endHB2eU
+17:52:02.687 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:52:02.693 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:52:02.707 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:52:02.731 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 10.786 seconds (JVM running for 13.037)
+17:52:20.907 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+17:59:29.889 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 10572 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+17:59:29.894 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+17:59:30.133 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+17:59:31.085 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+17:59:31.087 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+17:59:31.230 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+17:59:33.453 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+17:59:34.396 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE5OTQxLCJleHAiOjE2NTc2MjE3NDEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YcVokx6l6ejIjPpIliFliraC63VyUgKyfYaekuKQwpM
+17:59:35.044 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+17:59:35.051 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+17:59:35.065 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+17:59:35.092 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.676 seconds (JVM running for 7.998)
+17:59:43.708 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+18:11:26.432 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 11856 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+18:11:26.440 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+18:11:26.644 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+18:11:27.891 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+18:11:27.892 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+18:11:28.063 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+18:11:30.495 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+18:11:33.550 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE5OTQxLCJleHAiOjE2NTc2MjE3NDEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YcVokx6l6ejIjPpIliFliraC63VyUgKyfYaekuKQwpM
+18:11:34.192 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+18:11:34.200 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+18:11:34.214 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+18:11:34.240 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 8.221 seconds (JVM running for 10.686)
+18:11:52.180 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+18:13:13.600 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 33584 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+18:13:13.606 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+18:13:13.762 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+18:13:14.628 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+18:13:14.630 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+18:13:14.763 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+18:13:16.906 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+18:13:18.114 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE5OTQxLCJleHAiOjE2NTc2MjE3NDEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YcVokx6l6ejIjPpIliFliraC63VyUgKyfYaekuKQwpM
+18:13:18.621 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+18:13:18.628 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+18:13:18.642 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+18:13:18.662 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 5.362 seconds (JVM running for 7.552)
+18:13:20.185 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+18:14:28.457 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 33228 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+18:14:28.460 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+18:14:28.625 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+18:14:29.460 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+18:14:29.461 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+18:14:29.599 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+18:14:31.677 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+18:14:33.587 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NjE5OTQxLCJleHAiOjE2NTc2MjE3NDEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.YcVokx6l6ejIjPpIliFliraC63VyUgKyfYaekuKQwpM
+18:14:34.201 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+18:14:34.210 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+18:14:34.225 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+18:14:34.251 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 6.089 seconds (JVM running for 8.208)
+18:14:36.846 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'

+ 68 - 0
logs/sys-info.2022-07-13.log

@@ -0,0 +1,68 @@
+09:14:57.690 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,48] - Starting OpenchainDemoApplication on ZL with PID 22448 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+09:14:57.696 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,593] - No active profile set, falling back to default profiles: default
+09:14:58.111 [background-preinit] INFO  o.h.v.i.util.Version - [<clinit>,30] - HV000001: Hibernate Validator 5.3.6.Final
+09:14:59.475 [main] INFO  o.a.c.c.StandardService - [log,179] - Starting service [Tomcat]
+09:14:59.476 [main] INFO  o.a.c.c.StandardEngine - [log,179] - Starting Servlet Engine: Apache Tomcat/8.5.23
+09:14:59.632 [localhost-startStop-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring embedded WebApplicationContext
+09:15:02.025 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+09:15:02.903 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3Njc0MTIwLCJleHAiOjE2NTc2NzU5MjAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.aiVDrrzeSwyZ7unD9dyJzxDn5eeu_W37fkHWYxhOM5Q
+09:15:03.542 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Initializing ProtocolHandler ["http-nio-8088"]
+09:15:03.549 [main] INFO  o.a.c.h.Http11NioProtocol - [log,179] - Starting ProtocolHandler ["http-nio-8088"]
+09:15:03.563 [main] INFO  o.a.t.u.n.NioSelectorPool - [log,179] - Using a shared selector for servlet write/read
+09:15:03.588 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,57] - Started OpenchainDemoApplication in 6.582 seconds (JVM running for 9.406)
+09:17:16.314 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,179] - Initializing Spring FrameworkServlet 'dispatcherServlet'
+09:49:45.819 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 33308 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+09:49:45.823 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+09:49:47.756 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8080"]
+09:49:47.757 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+09:49:47.757 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+09:49:47.999 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+09:49:50.042 [main] INFO  o.a.c.c.StandardService - [log,173] - Stopping service [Tomcat]
+09:53:40.695 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 23720 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+09:53:40.699 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+09:53:41.598 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8088"]
+09:53:41.598 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+09:53:41.599 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+09:53:41.722 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+09:53:43.567 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+09:53:45.871 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3Njc1OTIxLCJleHAiOjE2NTc2Nzc3MjEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.LLzh847Ra0p4YlVYI662U-uxcNrPg95se05OJyMDmwM
+09:53:46.380 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-8088"]
+09:53:46.420 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,61] - Started OpenchainDemoApplication in 6.288 seconds (JVM running for 8.33)
+09:58:05.035 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 28004 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+09:58:05.040 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+09:58:05.960 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8088"]
+09:58:05.961 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+09:58:05.961 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+09:58:06.101 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+09:58:07.931 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+09:58:08.582 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3Njc1OTIxLCJleHAiOjE2NTc2Nzc3MjEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.LLzh847Ra0p4YlVYI662U-uxcNrPg95se05OJyMDmwM
+09:58:08.849 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-8088"]
+09:58:08.892 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,61] - Started OpenchainDemoApplication in 4.275 seconds (JVM running for 6.304)
+10:03:43.676 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 19988 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+10:03:43.679 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+10:03:44.563 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8080"]
+10:03:44.567 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+10:03:44.567 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+10:03:44.692 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+10:03:45.942 [main] INFO  o.a.c.c.StandardService - [log,173] - Stopping service [Tomcat]
+10:04:16.825 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 33724 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+10:04:16.831 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+10:04:17.763 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8088"]
+10:04:17.763 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+10:04:17.763 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+10:04:17.887 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+10:04:19.746 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+10:04:20.526 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3Njc3NzIxLCJleHAiOjE2NTc2Nzk1MjEsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.1yAk9XCpU05OorQ4yXL8Vk_XgO_9ktIEnJjOF52w-qA
+10:04:20.802 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-8088"]
+10:04:20.838 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,61] - Started OpenchainDemoApplication in 4.41 seconds (JVM running for 6.529)
+10:04:50.782 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+16:51:18.255 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 13500 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+16:51:18.259 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+16:51:19.411 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8088"]
+16:51:19.412 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+16:51:19.412 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+16:51:19.541 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+16:51:21.856 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+16:51:22.610 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3NzAxMTgyLCJleHAiOjE2NTc3MDI5ODIsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.sXCiqSUF_R_dgPFRw4cFWjKgxtfq6w6pBBYcySyC6J4
+16:51:22.937 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-8088"]
+16:51:22.981 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,61] - Started OpenchainDemoApplication in 5.188 seconds (JVM running for 8.107)

+ 61 - 0
logs/sys-info.log

@@ -0,0 +1,61 @@
+10:46:44.220 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 1020 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+10:46:44.225 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+10:46:45.771 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8088"]
+10:46:45.772 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+10:46:45.773 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+10:46:45.938 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+10:46:48.449 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+10:46:49.357 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3OTM4MDYyLCJleHAiOjE2NTc5Mzk4NjIsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.LbxzZc4N3CYLwAciERgrC-8tSBopgIEPO2VG2JbQdUI
+10:46:49.680 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-8088"]
+10:46:49.720 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,61] - Started OpenchainDemoApplication in 6.306 seconds (JVM running for 9.493)
+10:48:51.621 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+10:54:25.510 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 2648 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+10:54:25.514 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+10:54:26.694 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8088"]
+10:54:26.695 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+10:54:26.696 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+10:54:26.830 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+10:54:28.957 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+10:54:29.784 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3OTQwMDY5LCJleHAiOjE2NTc5NDE4NjksImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.XpMgYV0sbOhOmdl_A8HUkTV1Aqry3akYJY-dSTpyGI0
+10:54:30.067 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-8088"]
+10:54:30.105 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,61] - Started OpenchainDemoApplication in 5.098 seconds (JVM running for 7.366)
+10:54:54.128 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+11:52:39.930 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 7516 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+11:52:39.934 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+11:52:40.933 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8088"]
+11:52:40.934 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+11:52:40.934 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+11:52:41.061 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+11:52:43.037 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+11:52:43.679 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3OTQxODcwLCJleHAiOjE2NTc5NDM2NzAsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.ZuogMV7PREiD9-xAU3MUxcpJFe5q8TTZYT9KMDE5zZY
+11:52:43.960 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-8088"]
+11:52:43.998 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,61] - Started OpenchainDemoApplication in 4.541 seconds (JVM running for 6.7)
+11:56:59.502 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+11:57:00.011 [http-nio-8088-exec-1] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+11:57:00.159 [http-nio-8088-exec-1] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3OTQzNzAyLCJleHAiOjE2NTc5NDU1MDIsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.GpGsLtlu_mHM6fs-Tj_811GGBz1hNfLzw91uTaazCvE
+11:58:21.046 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 18592 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+11:58:21.050 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+11:58:22.418 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8088"]
+11:58:22.419 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+11:58:22.419 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+11:58:22.548 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+11:58:24.590 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+11:58:25.183 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3OTQzNzAyLCJleHAiOjE2NTc5NDU1MDIsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.GpGsLtlu_mHM6fs-Tj_811GGBz1hNfLzw91uTaazCvE
+11:58:25.545 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-8088"]
+11:58:25.590 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,61] - Started OpenchainDemoApplication in 5.08 seconds (JVM running for 8.369)
+12:05:32.785 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+12:07:03.513 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarting,55] - Starting OpenchainDemoApplication on ZL with PID 26972 (C:\Users\ASUS\Desktop\openchain-demo\target\classes started by ASUS in C:\Users\ASUS\Desktop\openchain-demo)
+12:07:03.516 [main] INFO  c.a.o.OpenchainDemoApplication - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
+12:07:04.425 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8088"]
+12:07:04.426 [main] INFO  o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
+12:07:04.426 [main] INFO  o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.35]
+12:07:04.536 [main] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
+12:07:06.404 [main] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+12:07:07.034 [main] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3OTQzNzAyLCJleHAiOjE2NTc5NDU1MDIsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.GpGsLtlu_mHM6fs-Tj_811GGBz1hNfLzw91uTaazCvE
+12:07:07.307 [main] INFO  o.a.c.h.Http11NioProtocol - [log,173] - Starting ProtocolHandler ["http-nio-8088"]
+12:07:07.349 [main] INFO  c.a.o.OpenchainDemoApplication - [logStarted,61] - Started OpenchainDemoApplication in 4.266 seconds (JVM running for 6.345)
+12:07:22.093 [http-nio-8088-exec-1] INFO  o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
+13:26:15.849 [http-nio-8088-exec-2] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+13:26:15.987 [http-nio-8088-exec-2] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3OTQ5MTAyLCJleHAiOjE2NTc5NTA5MDIsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.HAdmWVwFNOfyFHATbooImzO2EsVwzcb-g2jZMPxqL1w
+14:43:43.176 [http-nio-8088-exec-9] INFO  c.a.m.b.t.r.RestClient - [shake,131] - start shake hand
+14:43:43.378 [http-nio-8088-exec-9] INFO  c.a.m.b.t.r.RestClient - [shake,141] - new rest token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3WmdsMEw1OUtaUE1OUEJOIiwiaWF0IjoxNjU3OTUyODIyLCJleHAiOjE2NTc5NTQ2MjIsImV4dGVuZCI6IntcImFjY2Vzc0lkXCI6XCI3WmdsMEw1OUtaUE1OUEJOXCIsXCJmbGFnXCI6MCxcInRlbmFudElkXCI6XCJLWlBNTlBCTlwifSJ9.BHDgintOYEyKjQ448oZjUGVtU7pa2kDBH11ICgX_ZNQ

+ 146 - 0
pom.xml

@@ -0,0 +1,146 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.3.0.RELEASE</version>
+    </parent>
+    <groupId>com.example</groupId>
+    <artifactId>tmd</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <packaging>jar</packaging>
+    <name>demo</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.10</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-logging</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <version>1.2.3</version>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <version>1.2.3</version>
+        </dependency>
+        <dependency>
+            <groupId>com.antfinancial.baas</groupId>
+            <artifactId>mychain-rest-lib</artifactId>
+            <version>0.10.2.15.2</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.antfinancial.baas</groupId>-->
+<!--            <artifactId>mychain-rest-lib</artifactId>-->
+<!--            <version>0.10.2.15.2</version>-->
+<!--            <scope>system</scope>-->
+<!--            <systemPath>${project.basedir}/lib/rest-client-2.15.2-SNAPSHOT-with-dependencies.jar</systemPath>-->
+<!--        </dependency>-->
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>2.8.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.retry</groupId>
+            <artifactId>spring-retry</artifactId>
+            <version>1.2.4.RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>23.0</version>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-protobuf</artifactId>
+            <version>1.14.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcpkix-jdk15on</artifactId>
+            <version>1.60</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-collections4</artifactId>
+            <version>4.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.5</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.83</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>1.7.25</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+<!--        <resources>-->
+<!--            &lt;!&ndash; 这是必须加的 &ndash;&gt;-->
+<!--&lt;!&ndash;            <resource>&ndash;&gt;-->
+<!--&lt;!&ndash;                <directory>src/main/resources</directory>&ndash;&gt;-->
+<!--&lt;!&ndash;                <includes>&ndash;&gt;-->
+<!--&lt;!&ndash;                    <include>**/*.properties</include>&ndash;&gt;-->
+<!--&lt;!&ndash;                    <include>**/*.yml</include>&ndash;&gt;-->
+<!--&lt;!&ndash;                    <include>**/*.xml</include>&ndash;&gt;-->
+<!--&lt;!&ndash;                </includes>&ndash;&gt;-->
+<!--&lt;!&ndash;            </resource>&ndash;&gt;-->
+
+<!--            <resource>-->
+<!--                &lt;!&ndash; directory 表示取该目录下的文件 &ndash;&gt;-->
+<!--                <directory>lib</directory>-->
+<!--                &lt;!&ndash;targetPath 指定打包到哪个目录下  默认是放到class目录下&ndash;&gt;-->
+<!--                <targetPath>/BOOT-INF/lib/</targetPath>-->
+<!--                &lt;!&ndash; 取符合格式的所有文件  *代表全部 &ndash;&gt;-->
+<!--                <includes>-->
+<!--                    <include>**/*.jar</include>-->
+<!--                </includes>-->
+<!--            </resource>-->
+<!--        </resources>-->
+    </build>
+</project>

+ 62 - 0
src/main/java/com/alipay/openchain/DemoFlowRunner.java

@@ -0,0 +1,62 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2019 All Rights Reserved.
+ */
+package com.alipay.openchain;
+
+import com.alipay.openchain.flow.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+/**
+ * 接入开放联盟链和常见操作示例
+ */
+//@Component
+//public class DemoFlowRunner implements CommandLineRunner {
+//    @Autowired
+//    DepositFlow depositFlow;
+//
+//    @Autowired
+//    DepositFlowforkms depositFlowforkms;
+//
+//    @Autowired
+//    ContractFlow contractFlow;
+//
+//    @Autowired
+//    ContractFlowforkms contractFlowforkms;
+//
+//    @Autowired
+//    OperateChainAccount operateChainAccount;
+//
+//    @Autowired
+//    QueryChainData queryChainData;
+//    public void run(String... strings) throws Exception {
+//        /**
+//         * 执行存证场景下操作流(密钥非托管账户)
+//         */
+//        operateChainAccount.runFlow();
+//        /**
+//         * 执行合约相关场景下操作流(密钥非托管账户)
+//         */
+////        contractFlow.runFlow();
+//        /**
+//         * 执行存证场景下操作流(密钥托管账户)
+//         */
+////        DepositFlowforkms.runFlow();
+//        /**
+//         * 执行合约相关场景下操作流(密钥托管账户)
+//         */
+////        ContractFlowforkms.runFlow();
+//
+//        /**
+//         * 执行创建账户场景下操作流
+//         */
+////        operateChainAccount.runFlow();
+//
+//        /**
+//         * 执行查询区块场景下操作流
+//         */
+////        queryChainData.runFlow();
+//    }
+//}

+ 20 - 0
src/main/java/com/alipay/openchain/OpenchainDemoApplication.java

@@ -0,0 +1,20 @@
+package com.alipay.openchain;
+
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+import java.security.Security;
+
+@SpringBootApplication
+public class OpenchainDemoApplication {
+    public static void main(String[] args){
+        try {
+            Security.addProvider(new BouncyCastleProvider());
+            SpringApplication springApplication = new SpringApplication(OpenchainDemoApplication.class);
+            springApplication.run(args);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+}

+ 260 - 0
src/main/java/com/alipay/openchain/controller/Api.java

@@ -0,0 +1,260 @@
+package com.alipay.openchain.controller;
+
+
+import com.alipay.mychain.sdk.errorcode.ErrorCode;
+import com.alipay.openchain.entity.Commodity;
+import com.alipay.openchain.entity.IssueAddrEntity;
+import com.alipay.openchain.entity.User;
+import com.alipay.openchain.flow.ContractFlow;
+import com.alipay.openchain.flow.ContractFlowforkms;
+import com.alipay.openchain.flow.OperateChainAccount;
+import com.alipay.openchain.vo.Result;
+import com.antfinancial.mychain.baas.tool.restclient.response.BaseResp;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Created by:   zhulei
+ * 2020/8/17 17:12
+ * code is far away from bug with the animal protecting
+ * ┏┓   ┏┓
+ * ┏┛┻━━━┛┻┓
+ * ┃       ┃
+ * ┃   ━   ┃
+ * ┃ ┳┛ ┗┳ ┃
+ * ┃       ┃
+ * ┃   ┻   ┃
+ * ┃       ┃
+ * ┗━┓   ┏━┛
+ *   ┃   ┃神兽保佑
+ *   ┃   ┃代码无BUG!
+ *   ┃   ┗━━━┓
+ *   ┃       ┣┓
+ *   ┃       ┏┛
+ *   ┗┓┓┏━┳┓┏┛
+ *    ┃┫┫ ┃┫┫
+ *    ┗┻┛ ┗┻┛
+ */
+@RestController
+@Scope("prototype")
+public class Api {
+    @Autowired
+    OperateChainAccount operateChainAccount;
+
+    @Autowired
+    private ContractFlow contractFlow;
+
+    @Autowired
+    private ContractFlowforkms contractFlowforkms;
+
+    @RequestMapping("/register")
+    public Result<User> register(HttpServletResponse response, String accountName, String newKmsId) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+        Result<User> result = new Result<User>();
+
+
+        User chainAccount = operateChainAccount.createChainAccount( accountName, newKmsId );
+
+            result.setCode( 200 );
+            result.setResult( chainAccount );
+            result.setSuccess( true );
+        return result;
+    }
+
+    //查询用户
+    @RequestMapping("/queryAccount")
+    public Result<User> queryAccount(HttpServletResponse response, String accountName) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+        Result<User> result = new Result<User>();
+
+        User user = operateChainAccount.queryChainAccount( accountName );
+
+            result.setCode( 200 );
+            result.setResult( user );
+            result.setSuccess( true );
+        return result;
+    }
+
+    //部署合约
+    @RequestMapping("/deployContract")
+    public Result<String> deployContract(HttpServletResponse response) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+
+        Result<String> result = new Result<String>();
+
+
+        String s = contractFlow.deploySolidityContract();
+
+        result.setMessage( "success" );
+        result.setResult( s );
+        result.setSuccess( true );
+        result.setCode( 200 );
+        return result;
+    }
+    //铸造
+    @RequestMapping("/IssueAddr")
+    public Result<Commodity> IssueAddr(HttpServletResponse response, @RequestBody IssueAddrEntity issueAddrEntity) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+
+        Result<Commodity> result = new Result<Commodity>();
+
+
+        Commodity commodity = contractFlow.callSolidityContract( issueAddrEntity );
+
+
+        result.setMessage( "success" );
+            result.setResult( commodity );
+            result.setSuccess( true );
+            result.setCode( 200 );
+
+        return result;
+    }
+    //铸造
+    @RequestMapping("/IssueAddr2")
+    public Result<Commodity> IssueAddr2(HttpServletResponse response, @RequestBody IssueAddrEntity issueAddrEntity) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+
+        Result<Commodity> result = new Result<Commodity>();
+
+        Commodity commodity = contractFlow.callSolidityContract2( issueAddrEntity );
+
+        result.setMessage( "success" );
+        result.setResult( commodity );
+        result.setSuccess( true );
+        result.setCode( 200 );
+
+        return result;
+    }
+    //转移即修改
+    @RequestMapping("/transferFrom")
+    public Result<Commodity> transferFrom(HttpServletResponse response, @RequestBody IssueAddrEntity issueAddrEntity) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+
+        Result<Commodity> result = new Result<Commodity>();
+
+
+        Commodity commodity = contractFlow.updateSolidityContract( issueAddrEntity );
+
+
+        result.setMessage( "success" );
+        result.setResult( commodity );
+        result.setSuccess( true );
+        result.setCode( 200 );
+
+        return result;
+    }
+    //查询
+    @RequestMapping("/select")
+    public Result<Commodity> select(HttpServletResponse response, String tokenId) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+
+        Result<Commodity> result = new Result<Commodity>();
+
+
+        Commodity commodity = contractFlow.selectSolidityContract( tokenId );
+
+        result.setMessage( "success" );
+        result.setResult( commodity );
+        result.setSuccess( true );
+        result.setCode( 200 );
+
+        return result;
+    }
+    //查询2
+    @RequestMapping("/select2")
+    public Result<Commodity> select2(HttpServletResponse response, String tokenId) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+
+        Result<Commodity> result = new Result<Commodity>();
+
+
+        Commodity commodity = contractFlow.selectSolidityContract2( tokenId );
+
+        result.setMessage( "success" );
+        result.setResult( commodity );
+        result.setSuccess( true );
+        result.setCode( 200 );
+
+        return result;
+    }
+
+    //查询交易是否成功
+    @RequestMapping("/queryResult")
+    public Result<BaseResp> queryResult(HttpServletResponse response, String hash) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+
+        Result<BaseResp> result = new Result<BaseResp>();
+
+
+        BaseResp baseResp = contractFlow.showOutPut( hash );
+//        contractFlow.queryResult( hash );
+
+        result.setMessage( "success" );
+        result.setResult( baseResp );
+        result.setSuccess( true );
+        result.setCode( 200 );
+
+        return result;
+    }
+
+    //铸造 kms
+    @RequestMapping("/IssueAddrKms")
+    public Result<Commodity> IssueAddrKms(HttpServletResponse response, @RequestBody IssueAddrEntity issueAddrEntity) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+
+        Result<Commodity> result = new Result<Commodity>();
+
+
+        Commodity commodity = contractFlowforkms.callSolidityContract( issueAddrEntity );
+
+
+        result.setMessage( "success" );
+        result.setResult( commodity );
+        result.setSuccess( true );
+        result.setCode( 200 );
+
+        return result;
+    }
+
+    //部署合约  kms
+    @RequestMapping("/deployContractKms")
+    public Result<String> deployContractKms(HttpServletResponse response) throws Exception {
+        response.setHeader( "Access-Control-Allow-Origin", "*" );
+        response.setHeader( "Cache-Control", "no-cache" );
+
+        Result<String> result = new Result<String>();
+
+
+        String s = contractFlowforkms.deploySolidityContract();
+
+        result.setMessage( "success" );
+        result.setResult( s );
+        result.setSuccess( true );
+        result.setCode( 200 );
+        return result;
+    }
+
+    private static String getErrorMsg(int errorCode) {
+        int minMychainSdkErrorCode = ErrorCode.SDK_INTERNAL_ERROR.getErrorCode();
+        if (errorCode < minMychainSdkErrorCode) {
+            return ErrorCode.valueOf( errorCode ).getErrorDesc();
+        } else {
+            return ErrorCode.valueOf( errorCode ).getErrorDesc();
+        }
+    }
+}

+ 65 - 0
src/main/java/com/alipay/openchain/entity/CCount.java

@@ -0,0 +1,65 @@
+package com.alipay.openchain.entity;
+
+import java.io.Serializable;
+import java.math.BigInteger;
+
+/**
+ * @Created by:   zhulei
+ * 2022/4/23 13:48
+ * code is far away from bug with the animal protecting
+ * <p>
+ * <p>
+ * █████▒█    ██  ▄████▄   ██ ▄█▀       ██████╗ ██╗   ██╗ ██████╗
+ * ▓██   ▒ ██  ▓██▒▒██▀ ▀█   ██▄█▒        ██╔══██╗██║   ██║██╔════╝
+ * ▒████ ░▓██  ▒██░▒▓█    ▄ ▓███▄░        ██████╔╝██║   ██║██║  ███╗
+ * ░▓█▒  ░▓▓█  ░██░▒▓▓▄ ▄██▒▓██ █▄        ██╔══██╗██║   ██║██║   ██║
+ * ░▒█░   ▒▒█████▓ ▒ ▓███▀ ░▒██▒ █▄       ██████╔╝╚██████╔╝╚██████╔╝
+ * ▒ ░   ░▒▓▒ ▒ ▒ ░ ░▒ ▒  ░▒ ▒▒ ▓▒       ╚═════╝  ╚═════╝  ╚═════╝
+ * ░     ░░▒░ ░ ░   ░  ▒   ░ ░▒ ▒░
+ * ░ ░    ░░░ ░ ░ ░        ░ ░░ ░
+ * ░     ░ ░      ░  ░
+ * ░
+ */
+public class CCount implements Serializable {
+    private static final long serialVersionUID = 3559533002594201715L;
+
+    public BigInteger count;
+
+    public String explain;
+
+    public Boolean state;
+
+    public String txHash;
+
+    public String getTxHash() {
+        return txHash;
+    }
+
+    public void setTxHash(String txHash) {
+        this.txHash = txHash;
+    }
+
+    public Boolean getState() {
+        return state;
+    }
+
+    public void setState(Boolean state) {
+        this.state = state;
+    }
+
+    public BigInteger getCount() {
+        return count;
+    }
+
+    public void setCount(BigInteger count) {
+        this.count = count;
+    }
+
+    public String getExplain() {
+        return explain;
+    }
+
+    public void setExplain(String explain) {
+        this.explain = explain;
+    }
+}

+ 38 - 0
src/main/java/com/alipay/openchain/entity/Commodity.java

@@ -0,0 +1,38 @@
+package com.alipay.openchain.entity;
+
+import com.antfinancial.mychain.baas.tool.restclient.response.BaseResp;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigInteger;
+
+/**
+ * @Created by:   zhulei
+ * 2022/4/23 13:48
+ * code is far away from bug with the animal protecting
+ * <p>
+ * <p>
+ * █████▒█    ██  ▄████▄   ██ ▄█▀       ██████╗ ██╗   ██╗ ██████╗
+ * ▓██   ▒ ██  ▓██▒▒██▀ ▀█   ██▄█▒        ██╔══██╗██║   ██║██╔════╝
+ * ▒████ ░▓██  ▒██░▒▓█    ▄ ▓███▄░        ██████╔╝██║   ██║██║  ███╗
+ * ░▓█▒  ░▓▓█  ░██░▒▓▓▄ ▄██▒▓██ █▄        ██╔══██╗██║   ██║██║   ██║
+ * ░▒█░   ▒▒█████▓ ▒ ▓███▀ ░▒██▒ █▄       ██████╔╝╚██████╔╝╚██████╔╝
+ * ▒ ░   ░▒▓▒ ▒ ▒ ░ ░▒ ▒  ░▒ ▒▒ ▓▒       ╚═════╝  ╚═════╝  ╚═════╝
+ * ░     ░░▒░ ░ ░   ░  ▒   ░ ░▒ ▒░
+ * ░ ░    ░░░ ░ ░ ░        ░ ░░ ░
+ * ░     ░ ░      ░  ░
+ * ░
+ */
+@Data
+public class Commodity {
+
+    public String hash;
+
+    public String code;
+
+    public String msg;
+
+    public BaseResp baseResp;
+
+
+}

+ 61 - 0
src/main/java/com/alipay/openchain/entity/IssueAddrEntity.java

@@ -0,0 +1,61 @@
+package com.alipay.openchain.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigInteger;
+
+/**
+ * @Created by:   zhulei
+ * 2022/4/23 13:48
+ * code is far away from bug with the animal protecting
+ * <p>
+ * <p>
+ * █████▒█    ██  ▄████▄   ██ ▄█▀       ██████╗ ██╗   ██╗ ██████╗
+ * ▓██   ▒ ██  ▓██▒▒██▀ ▀█   ██▄█▒        ██╔══██╗██║   ██║██╔════╝
+ * ▒████ ░▓██  ▒██░▒▓█    ▄ ▓███▄░        ██████╔╝██║   ██║██║  ███╗
+ * ░▓█▒  ░▓▓█  ░██░▒▓▓▄ ▄██▒▓██ █▄        ██╔══██╗██║   ██║██║   ██║
+ * ░▒█░   ▒▒█████▓ ▒ ▓███▀ ░▒██▒ █▄       ██████╔╝╚██████╔╝╚██████╔╝
+ * ▒ ░   ░▒▓▒ ▒ ▒ ░ ░▒ ▒  ░▒ ▒▒ ▓▒       ╚═════╝  ╚═════╝  ╚═════╝
+ * ░     ░░▒░ ░ ░   ░  ▒   ░ ░▒ ▒░
+ * ░ ░    ░░░ ░ ░ ░        ░ ░░ ░
+ * ░     ░ ░      ░  ░
+ * ░
+ */
+@Data
+public class IssueAddrEntity implements Serializable {
+    private static final long serialVersionUID = 3559533002594201715L;
+
+//    artId:艺术品Id
+//    date:艺术品年代
+//    owner:艺术品拥有者
+//    artName:艺术品名称
+//    price:艺术品价格
+//    sellWay:艺术品获得方式
+//    artSize:艺术品尺寸
+//    location:艺术品目前所在地
+
+    public String artId;
+
+    public String date;
+
+    public String owner;
+
+    public String to;
+
+    public String artName;
+
+    public String price;
+
+    public String sellWay;
+
+    public String artSize;
+
+    public String location;
+
+    public BigInteger nftId;
+
+    public String tokenUrl;
+
+    public BigInteger tokenId;
+}

+ 55 - 0
src/main/java/com/alipay/openchain/entity/TransferFromEntity.java

@@ -0,0 +1,55 @@
+package com.alipay.openchain.entity;
+
+import java.io.Serializable;
+
+/**
+ * @Created by:   zhulei
+ * 2022/4/23 13:48
+ * code is far away from bug with the animal protecting
+ * <p>
+ * <p>
+ * █████▒█    ██  ▄████▄   ██ ▄█▀       ██████╗ ██╗   ██╗ ██████╗
+ * ▓██   ▒ ██  ▓██▒▒██▀ ▀█   ██▄█▒        ██╔══██╗██║   ██║██╔════╝
+ * ▒████ ░▓██  ▒██░▒▓█    ▄ ▓███▄░        ██████╔╝██║   ██║██║  ███╗
+ * ░▓█▒  ░▓▓█  ░██░▒▓▓▄ ▄██▒▓██ █▄        ██╔══██╗██║   ██║██║   ██║
+ * ░▒█░   ▒▒█████▓ ▒ ▓███▀ ░▒██▒ █▄       ██████╔╝╚██████╔╝╚██████╔╝
+ * ▒ ░   ░▒▓▒ ▒ ▒ ░ ░▒ ▒  ░▒ ▒▒ ▓▒       ╚═════╝  ╚═════╝  ╚═════╝
+ * ░     ░░▒░ ░ ░   ░  ▒   ░ ░▒ ▒░
+ * ░ ░    ░░░ ░ ░ ░        ░ ░░ ░
+ * ░     ░ ░      ░  ░
+ * ░
+ */
+public class TransferFromEntity implements Serializable {
+    private static final long serialVersionUID = 3559533002594201715L;
+
+
+    public String explain;
+
+    public Boolean state;
+
+    public String txHash;
+
+    public String getExplain() {
+        return explain;
+    }
+
+    public void setExplain(String explain) {
+        this.explain = explain;
+    }
+
+    public Boolean getState() {
+        return state;
+    }
+
+    public void setState(Boolean state) {
+        this.state = state;
+    }
+
+    public String getTxHash() {
+        return txHash;
+    }
+
+    public void setTxHash(String txHash) {
+        this.txHash = txHash;
+    }
+}

+ 39 - 0
src/main/java/com/alipay/openchain/entity/User.java

@@ -0,0 +1,39 @@
+package com.alipay.openchain.entity;
+
+import com.alipay.mychain.sdk.crypto.hash.Hash;
+import com.alipay.mychain.sdk.domain.account.Identity;
+import lombok.Data;
+
+import java.math.BigInteger;
+
+/**
+ * @Created by:   zhulei
+ * 2022/4/23 15:30
+ * code is far away from bug with the animal protecting
+ * <p>
+ * <p>
+ * █████▒█    ██  ▄████▄   ██ ▄█▀       ██████╗ ██╗   ██╗ ██████╗
+ * ▓██   ▒ ██  ▓██▒▒██▀ ▀█   ██▄█▒        ██╔══██╗██║   ██║██╔════╝
+ * ▒████ ░▓██  ▒██░▒▓█    ▄ ▓███▄░        ██████╔╝██║   ██║██║  ███╗
+ * ░▓█▒  ░▓▓█  ░██░▒▓▓▄ ▄██▒▓██ █▄        ██╔══██╗██║   ██║██║   ██║
+ * ░▒█░   ▒▒█████▓ ▒ ▓███▀ ░▒██▒ █▄       ██████╔╝╚██████╔╝╚██████╔╝
+ * ▒ ░   ░▒▓▒ ▒ ▒ ░ ░▒ ▒  ░▒ ▒▒ ▓▒       ╚═════╝  ╚═════╝  ╚═════╝
+ * ░     ░░▒░ ░ ░   ░  ▒   ░ ░▒ ▒░
+ * ░ ░    ░░░ ░ ░ ░        ░ ░░ ░
+ * ░     ░ ░      ░  ░
+ * ░
+ */
+@Data
+public class User {
+    public String userMYStr;
+
+    public String code;
+
+    public String msg;
+
+    public String id;
+
+    public BigInteger balance;
+
+
+}

+ 368 - 0
src/main/java/com/alipay/openchain/flow/ContractFlow.java

@@ -0,0 +1,368 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2019 All Rights Reserved.
+ */
+package com.alipay.openchain.flow;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.mychain.sdk.api.utils.Utils;
+import com.alipay.mychain.sdk.common.VMTypeEnum;
+import com.alipay.mychain.sdk.domain.account.Account;
+import com.alipay.mychain.sdk.domain.account.Identity;
+import com.alipay.mychain.sdk.utils.ByteUtils;
+import com.alipay.openchain.entity.Commodity;
+import com.alipay.openchain.entity.IssueAddrEntity;
+import com.antfinancial.mychain.baas.tool.restclient.RestClient;
+import com.antfinancial.mychain.baas.tool.restclient.RestClientProperties;
+import com.antfinancial.mychain.baas.tool.restclient.model.CallRestBizParam;
+import com.antfinancial.mychain.baas.tool.restclient.model.ClientParam;
+import com.antfinancial.mychain.baas.tool.restclient.model.Method;
+import com.antfinancial.mychain.baas.tool.restclient.response.BaseResp;
+import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;
+import org.apache.commons.io.FileUtils;
+import org.bouncycastle.util.encoders.Base64;
+import org.bouncycastle.util.encoders.Hex;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.File;
+import java.math.BigInteger;
+import java.util.UUID;
+
+import com.alibaba.fastjson.JSONArray;
+
+/**
+ * 合约相关场景下操作流,示例代码提供
+ */
+@Service
+public class ContractFlow {
+//    private static final String CONTRACT_NAME = "chuangchinft02";//无查询版
+//    private static final String CONTRACT_NAME = "chuangc";
+    private static final String CONTRACT_NAME = "chuangchinft06";//自己
+    @Autowired
+    private RestClient restClient;
+
+    @Autowired
+    private RestClientProperties restClientProperties;
+
+    public void runFlow() throws Exception {
+        //部署合约
+        String dsHash = deploySolidityContract();
+        queryResult(dsHash);
+        //建议在Cloud Ide部署完合约后,在使用下面的调用合约
+//        String csHash = callSolidityContract();
+        //解析合约返回值
+//        showOutPut(csHash);
+    }
+
+    //部署Solidity合约 也可以通过Cloud Ide进行部署
+    public String deploySolidityContract() throws Exception {
+        String path = ContractFlow.class.getClassLoader().getResource("contract.txt").getPath();
+        byte[] creditBytes = FileUtils.readFileToByteArray(new File(path));
+        String hexString = new String(creditBytes);
+//        System.out.println("文件" + hexString);
+        ClientParam clientParam = restClient.createDeployContractTransaction(restClientProperties.getDefaultAccount(), CONTRACT_NAME,
+                ByteUtils.hexStringToBytes(hexString), VMTypeEnum.EVM, 500000L);
+        BaseResp resp = restClient.chainCall(clientParam.getHash(), clientParam.getSignData(), Method.DEPLOYCONTRACT);
+        String deploySolidityContractHash = clientParam.getHash();
+        System.out.println("[ContractFlow-部署合约] Hash: " + deploySolidityContractHash + "   Result: " + resp);
+        return deploySolidityContractHash;
+    }
+
+    //部署带构造方法合约(需要使用密钥托管账户)
+    public String deploySolidityContract2() throws Exception {
+        CallRestBizParam restBizParam=  CallRestBizParam.builder().
+                // EVM合约部署方法名称,固定值
+                        method(Method.DEPLOYCONTRACTFORBIZASYNC).
+                // 唯一请求ID
+                        orderId(UUID.randomUUID().toString()).
+                // 执行交易的区块链账户
+                        account(restClientProperties.getAccount()).
+                // 执行交易的区块链账户KMS密钥ID
+                        mykmsKeyId(restClientProperties.getKmsId()).
+                // 合约名称
+                        contractName("deployContractName").
+                // 合约部署字节码
+                        contractCode("deployContent").
+                // 合约初始化方法签名
+                        methodSignature("").
+                // 合约初始化参数
+                        inputParamListStr("").
+                // 确保设置的Gas参数足够大,且执行创建的账户中有足够Gas,并且账户燃料要大于参数数值
+                        gas(100000L).
+                        build();
+        BaseResp resp = restClient.bizChainCallWithReceipt(restBizParam);
+        System.out.println("[ContractFlow-部署合约] Hash: " + restBizParam.getHash() + "   Result: " + resp);
+        return restBizParam.getHash();
+    }
+
+
+    //调用Solidity合约  铸造  自己
+    public Commodity callSolidityContract(IssueAddrEntity issueAddrEntity) throws Exception {
+        JSONArray jsonArray = new JSONArray();
+//        jsonArray.add(Utils.getIdentityByName(restClientProperties.getDefaultAccount()));
+//        jsonArray.add(BigInteger.valueOf(100));
+        jsonArray.add(new Identity(issueAddrEntity.getOwner()));
+        jsonArray.add(issueAddrEntity.getNftId());
+        jsonArray.add(issueAddrEntity.getTokenUrl());
+        ClientParam clientParam = restClient.createCallContractTransaction(
+                restClientProperties.getDefaultAccount(),
+                CONTRACT_NAME,                          //合约名  可以修改为cloud ide中部署的合约名
+                "",                             //合约返回值类型
+                //合约方法签名  注意:1.中间不要带空格  2.只写参数类型,不要带参数名 如:uint256 a,uint256 b  3.参数类型填写争取  请不要填写如int  需要填写完整uint
+                "IssueAddr(identity,int256,string)",
+                jsonArray.toJSONString(),
+                false,
+                null,
+                300000L);
+        BaseResp resp = restClient.chainCall(clientParam.getHash(), clientParam.getSignData(), Method.CALLCONTRACT);
+        Commodity commodity = new Commodity();
+        if(resp.isSuccess()) {
+            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+            commodity.setCode( resp.getCode() );
+            commodity.setHash(clientParam.getHash()  );
+            commodity.setMsg( "Result:" + resp );
+        } else {
+            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+            commodity.setCode( resp.getCode() );
+            commodity.setHash(clientParam.getHash()  );
+            commodity.setMsg( "Result:" + resp );
+        }
+        return commodity;
+    }
+
+    //调用Solidity合约  铸造
+    public Commodity callSolidityContract2(IssueAddrEntity issueAddrEntity) throws Exception {
+        JSONArray jsonArray = new JSONArray();
+//        jsonArray.add(Utils.getIdentityByName(restClientProperties.getDefaultAccount()));
+//        jsonArray.add(BigInteger.valueOf(100));
+        jsonArray.add(issueAddrEntity.getArtId());
+        jsonArray.add(issueAddrEntity.getDate());
+        jsonArray.add(issueAddrEntity.getOwner());
+        jsonArray.add(issueAddrEntity.getArtName());
+        jsonArray.add(issueAddrEntity.getPrice());
+        jsonArray.add(issueAddrEntity.getSellWay());
+        jsonArray.add(issueAddrEntity.getArtSize());
+        jsonArray.add(issueAddrEntity.getLocation());
+        ClientParam clientParam = restClient.createCallContractTransaction(
+                restClientProperties.getDefaultAccount(),
+                CONTRACT_NAME,                          //合约名  可以修改为cloud ide中部署的合约名
+                "",                             //合约返回值类型
+                //合约方法签名  注意:1.中间不要带空格  2.只写参数类型,不要带参数名 如:uint256 a,uint256 b  3.参数类型填写争取  请不要填写如int  需要填写完整uint
+                "insertArt(string,string,string,string,string,string,string,string)",
+                jsonArray.toJSONString(),
+                false,
+                null,
+                1500000L);
+        BaseResp resp = restClient.chainCall(clientParam.getHash(), clientParam.getSignData(), Method.CALLCONTRACT);
+        Commodity commodity = new Commodity();
+        if(resp.isSuccess()) {
+            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+            commodity.setCode( resp.getCode() );
+            commodity.setHash(clientParam.getHash()  );
+            commodity.setMsg( "Result:" + resp );
+        } else {
+            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+            commodity.setCode( resp.getCode() );
+            commodity.setHash(clientParam.getHash()  );
+            commodity.setMsg( "Result:" + resp );
+        }
+        return commodity;
+    }
+
+    //调用Solidity合约  转移  自己
+    public Commodity updateSolidityContract(IssueAddrEntity issueAddrEntity) throws Exception {
+        JSONArray jsonArray = new JSONArray();
+//        jsonArray.add(Utils.getIdentityByName(restClientProperties.getDefaultAccount()));
+//        jsonArray.add(BigInteger.valueOf(100));
+        jsonArray.add(new Identity(issueAddrEntity.getOwner()));
+        jsonArray.add(new Identity(issueAddrEntity.getTo()));
+        jsonArray.add(issueAddrEntity.getTokenId());
+
+        ClientParam clientParam = restClient.createCallContractTransaction(
+                restClientProperties.getDefaultAccount(),
+                CONTRACT_NAME,                          //合约名  可以修改为cloud ide中部署的合约名
+                "",                             //合约返回值类型
+                //合约方法签名  注意:1.中间不要带空格  2.只写参数类型,不要带参数名 如:uint256 a,uint256 b  3.参数类型填写争取  请不要填写如int  需要填写完整uint
+                "transferFrom(identity,identity,int256)",
+                jsonArray.toJSONString(),
+                false,
+                null,
+                300000L);
+        BaseResp resp = restClient.chainCall(clientParam.getHash(), clientParam.getSignData(), Method.CALLCONTRACT);
+        Commodity commodity = new Commodity();
+        if(resp.isSuccess()) {
+            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+            commodity.setCode( resp.getCode() );
+            commodity.setHash(clientParam.getHash()  );
+            commodity.setMsg( "Result:" + resp );
+        } else {
+            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+            commodity.setCode( resp.getCode() );
+            commodity.setHash(clientParam.getHash()  );
+            commodity.setMsg( "Result:" + resp );
+        }
+        return commodity;
+    }
+
+
+   //调用Solidity合约  转移
+//    public Commodity updateSolidityContract(IssueAddrEntity issueAddrEntity) throws Exception {
+//        JSONArray jsonArray = new JSONArray();
+////        jsonArray.add(Utils.getIdentityByName(restClientProperties.getDefaultAccount()));
+////        jsonArray.add(BigInteger.valueOf(100));
+//        jsonArray.add(issueAddrEntity.getArtId());
+//        jsonArray.add(issueAddrEntity.getDate());
+//        jsonArray.add(issueAddrEntity.getOwner());
+//
+//        ClientParam clientParam = restClient.createCallContractTransaction(
+//                restClientProperties.getDefaultAccount(),
+//                CONTRACT_NAME,                          //合约名  可以修改为cloud ide中部署的合约名
+//                "",                             //合约返回值类型
+//                //合约方法签名  注意:1.中间不要带空格  2.只写参数类型,不要带参数名 如:uint256 a,uint256 b  3.参数类型填写争取  请不要填写如int  需要填写完整uint
+//                "updateArtOwner(string,string,string)",
+//                jsonArray.toJSONString(),
+//                false,
+//                null,
+//                300000L);
+//        BaseResp resp = restClient.chainCall(clientParam.getHash(), clientParam.getSignData(), Method.CALLCONTRACT);
+//        Commodity commodity = new Commodity();
+//        if(resp.isSuccess()) {
+//            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+//            System.err.println(clientParam.toString());
+//            commodity.setCode( resp.getCode() );
+//            commodity.setHash(clientParam.getHash()  );
+//            commodity.setMsg( "Result:" + resp );
+//        } else {
+//            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+//            commodity.setCode( resp.getCode() );
+//            commodity.setHash(clientParam.getHash()  );
+//            commodity.setMsg( "Result:" + resp );
+//        }
+//        return commodity;
+//    }
+
+
+    //查询藏品信息 自己
+    public Commodity selectSolidityContract(String tokenId) throws Exception {
+        JSONArray jsonArray = new JSONArray();
+//        jsonArray.add(Utils.getIdentityByName(restClientProperties.getDefaultAccount()));
+//        jsonArray.add(BigInteger.valueOf(100));
+        jsonArray.add(tokenId);
+
+        ClientParam clientParam = restClient.createCallContractTransaction(
+                restClientProperties.getDefaultAccount(),
+                CONTRACT_NAME,                          //合约名  可以修改为cloud ide中部署的合约名
+                "",                             //合约返回值类型
+                //合约方法签名  注意:1.中间不要带空格  2.只写参数类型,不要带参数名 如:uint256 a,uint256 b  3.参数类型填写争取  请不要填写如int  需要填写完整uint
+                "antMap(int256)",
+                jsonArray.toJSONString(),
+                false,
+                null,
+                300000L);
+        BaseResp resp = restClient.chainCall(clientParam.getHash(), clientParam.getSignData(), Method.CALLCONTRACT);
+        Commodity commodity = new Commodity();
+        if(resp.isSuccess()) {
+            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+            commodity.setCode( resp.getCode() );
+            commodity.setHash(clientParam.getHash()  );
+            commodity.setMsg( "Result:" + resp );
+            Thread.sleep(3000);
+            BaseResp queryBaseResp = restClient.chainCall(clientParam.getHash(), restClientProperties.getBizid(), "", Method.QUERYRECEIPT);
+            String s = queryBaseResp.getData();
+            String output = s.substring(s.indexOf("output") + 9, s.indexOf("result")).replace("\"", "").replace(",", "");
+
+            byte[] content = Hex.encode(Base64.decode(output));
+            CallRestBizParam callRestBizParam = CallRestBizParam.builder().
+                    bizid(restClientProperties.getBizid()).method(Method.PARSEOUTPUT).
+                    tenantid(restClientProperties.getTenantid()).
+                    orderId("order_" + System.currentTimeMillis()).
+                    vmTypeEnum(VMTypeEnum.EVM).content(new String(content)).
+//                abi("[\"string\",\"string\",\"string\"]").
+        abi("[\"int256\",\"string\",\"int256\",\"identity\",\"identity\",\"uint\"]").
+                            mykmsKeyId(restClientProperties.getKmsId()).build();
+            BaseResp baseResp = restClient.chainCallForBiz(callRestBizParam);
+            assert (baseResp.isSuccess());
+            System.out.println("show" + baseResp);
+            commodity.setBaseResp( baseResp );
+        } else {
+            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+            commodity.setCode( resp.getCode() );
+            commodity.setHash(clientParam.getHash()  );
+            commodity.setMsg( "Result:" + resp );
+        }
+        return commodity;
+    }
+
+//    调用Solidity合约  查询
+    public Commodity selectSolidityContract2(String artId) throws Exception {
+        JSONArray jsonArray = new JSONArray();
+//        jsonArray.add(Utils.getIdentityByName(restClientProperties.getDefaultAccount()));
+//        jsonArray.add(BigInteger.valueOf(100));
+        jsonArray.add(artId);
+
+        ClientParam clientParam = restClient.createCallContractTransaction(
+                restClientProperties.getDefaultAccount(),
+                CONTRACT_NAME,                          //合约名  可以修改为cloud ide中部署的合约名
+                "",                             //合约返回值类型
+                //合约方法签名  注意:1.中间不要带空格  2.只写参数类型,不要带参数名 如:uint256 a,uint256 b  3.参数类型填写争取  请不要填写如int  需要填写完整uint
+                "selectArt(string)",
+                jsonArray.toJSONString(),
+                false,
+                null,
+                500000L);
+        BaseResp resp = restClient.chainCall(clientParam.getHash(), clientParam.getSignData(), Method.CALLCONTRACT);
+        Commodity commodity = new Commodity();
+        if(resp.isSuccess()) {
+            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+            System.err.println(clientParam.toString());
+            commodity.setCode( resp.getCode() );
+            commodity.setHash(clientParam.getHash()  );
+            commodity.setMsg( "Result:" + resp );
+        } else {
+            System.out.println("[CallContract-调用合约] Hash: " + clientParam.getHash() + "    Result:" + resp);
+            commodity.setCode( resp.getCode() );
+            commodity.setHash(clientParam.getHash()  );
+            commodity.setMsg( "Result:" + resp );
+        }
+        return commodity;
+    }
+
+    //查询交易是否成功
+    public BaseResp queryResult(String hash) throws Exception {
+        BaseResp queryBaseResp = restClient.chainCall(hash, restClientProperties.getBizid(), "", Method.QUERYRECEIPT);
+        System.out.println(queryBaseResp);
+        return queryBaseResp;
+    }
+
+    //解析调用合约返回值  (解析返回值请填写show方法中参数,需要使用密钥托管账户)
+    public BaseResp showOutPut(String hash) throws Exception {
+//        Thread.sleep(3000);
+        BaseResp queryBaseResp = restClient.chainCall(hash, restClientProperties.getBizid(), "", Method.QUERYRECEIPT);
+        String s = queryBaseResp.getData();
+        String output = s.substring(s.indexOf("output") + 9, s.indexOf("result")).replace("\"", "").replace(",", "");
+        if (0 != output.length()) {
+            BaseResp show = show(output);
+            System.out.println(show);
+            return show;
+        }else {
+            System.out.println(s);
+            return queryBaseResp;
+        }
+    }
+    private BaseResp show(String output) throws Exception {
+        byte[] content = Hex.encode(Base64.decode(output));
+        CallRestBizParam callRestBizParam = CallRestBizParam.builder().
+                bizid(restClientProperties.getBizid()).method(Method.PARSEOUTPUT).
+                tenantid(restClientProperties.getTenantid()).
+                orderId("order_" + System.currentTimeMillis()).
+                vmTypeEnum(VMTypeEnum.EVM).content(new String(content)).
+//                abi("[\"string\",\"string\",\"string\"]").                                      //TODO 合约返回值类型需自己根据合约修改
+                abi("[\"int256\",\"int256\"]").                                      //TODO 合约返回值类型需自己根据合约修改
+                mykmsKeyId(restClientProperties.getKmsId()).build();    //TODO 默认为application.yaml中KmsId
+        BaseResp baseResp = restClient.chainCallForBiz(callRestBizParam);
+        assert (baseResp.isSuccess());
+        System.out.println("show" + baseResp);
+        return baseResp;
+    }
+}

+ 212 - 0
src/main/java/com/alipay/openchain/flow/ContractFlowforkms.java

@@ -0,0 +1,212 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2019 All Rights Reserved.
+ */
+package com.alipay.openchain.flow;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alipay.mychain.sdk.api.utils.Utils;
+import com.alipay.mychain.sdk.common.VMTypeEnum;
+import com.alipay.openchain.entity.Commodity;
+import com.alipay.openchain.entity.IssueAddrEntity;
+import com.antfinancial.mychain.baas.tool.restclient.RestClient;
+import com.antfinancial.mychain.baas.tool.restclient.RestClientProperties;
+import com.antfinancial.mychain.baas.tool.restclient.model.CallRestBizParam;
+import com.antfinancial.mychain.baas.tool.restclient.model.Method;
+import com.antfinancial.mychain.baas.tool.restclient.model.ReceiptDecoration;
+import com.antfinancial.mychain.baas.tool.restclient.response.BaseResp;
+import org.apache.commons.io.FileUtils;
+import org.bouncycastle.util.encoders.Base64;
+import org.bouncycastle.util.encoders.Hex;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.File;
+import java.math.BigInteger;
+import java.util.UUID;
+
+/**
+ * 合约相关场景下操作流,示例代码提供
+ */
+@Service
+public class ContractFlowforkms {
+//    private static final String CONTRACT_NAME = "chuangchinft01";
+//    private static final String CONTRACT_NAME = "chuangchinft04";
+    private static final String CONTRACT_NAME = "chuangchinft05";
+    @Autowired
+    private RestClient restClient;
+
+    @Autowired
+    private RestClientProperties restClientProperties;
+
+
+
+    public void runFlow() throws Exception {
+        //部署合约
+        deploySolidityContract();
+        //建议在Cloud Ide部署完合约后,在使用下面的调用合约
+//        String csHash = callSolidityContract();
+        //解析合约返回值
+//        showOutPut(csHash);
+    }
+
+    //部署Solidity合约 也可以通过Cloud Ide进行部署
+    public String deploySolidityContract() throws Exception {
+        String orderId = "order_" + System.currentTimeMillis();
+        String path = ContractFlowforkms.class.getClassLoader().getResource("contract.txt").getPath();
+        byte[] creditBytes = FileUtils.readFileToByteArray(new File(path));
+        String hexString = new String(creditBytes);
+        CallRestBizParam callRestBizParam=CallRestBizParam.builder()
+                .orderId(orderId)
+                .bizid(restClientProperties.getBizid())
+                .account(restClientProperties.getAccount())
+                .contractName(CONTRACT_NAME)
+                .contractCode(hexString)
+                .mykmsKeyId(restClientProperties.getKmsId())
+                    .method(Method.DEPLOYCONTRACTFORBIZASYNC)
+
+                .tenantid(restClientProperties.getTenantid())
+                // 确保设置的Gas参数足够大,且执行创建的账户中有足够Gas,并且账户燃料要大于参数数值
+                .gas(100000L)
+                .build();
+        BaseResp resp=restClient.bizChainCallWithReceipt(callRestBizParam);
+        if(!resp.isSuccess()) {
+            System.out.println("EVM合约部署执行失败: " + resp.getCode() + ", " + resp.getData());
+        }
+        if("200".equals(resp.getCode())) {
+            System.out.println("EVM合约部署执行成功");
+        } else {
+            // 异步交易未成功需要根据状态码判断交易状态
+            System.out.println("EVM合约部署执行未成功: " + resp.getCode());
+        }
+        // 合约部署交易回执内容
+        ReceiptDecoration txReceipt = JSON.parseObject(resp.getData(), ReceiptDecoration.class);
+        BigInteger gasUsed = txReceipt.getGasUsed();
+        long result = txReceipt.getResult();
+        System.out.println("EVM合约部署交易内容: 哈希 " + txReceipt.getHash() + ", 消耗燃料 " + gasUsed + ", 结果 " + result);
+        return txReceipt.getHash();
+    }
+
+    //部署带构造方法合约(需要使用密钥托管账户)
+    public String deploySolidityContract2() throws Exception {
+        CallRestBizParam restBizParam=  CallRestBizParam.builder().
+                // EVM合约部署方法名称,固定值
+                        method(Method.DEPLOYCONTRACTFORBIZASYNC).
+                // 唯一请求ID
+                        orderId(UUID.randomUUID().toString()).
+                // 执行交易的区块链账户
+                        account(restClientProperties.getAccount()).
+                // 执行交易的区块链账户KMS密钥ID
+                        mykmsKeyId(restClientProperties.getKmsId()).
+                // 合约名称
+                        contractName("deployContractName").
+                // 合约部署字节码
+                        contractCode("deployContent").
+                // 合约初始化方法签名
+                        methodSignature("").
+                // 合约初始化参数
+                        inputParamListStr("").
+                // 确保设置的Gas参数足够大,且执行创建的账户中有足够Gas,并且账户燃料要大于参数数值
+                        gas(100000L).
+                        build();
+        BaseResp resp = restClient.bizChainCallWithReceipt(restBizParam);
+        if(!resp.isSuccess()) {
+            System.out.println("EVM合约部署执行失败: " + resp.getCode() + ", " + resp.getData());
+        }
+        if("200".equals(resp.getCode())) {
+            System.out.println("EVM合约部署执行成功");
+        } else {
+            // 异步交易未成功需要根据状态码判断交易状态
+            System.out.println("EVM合约部署执行未成功: " + resp.getCode());
+        }
+        ReceiptDecoration txReceipt = JSON.parseObject(resp.getData(), ReceiptDecoration.class);
+        BigInteger gasUsed = txReceipt.getGasUsed();
+        long result = txReceipt.getResult();
+        System.out.println("EVM合约部署交易内容: 哈希 " + txReceipt.getHash() + ", 消耗燃料 " + gasUsed + ", 结果 " + result);
+        return restBizParam.getHash();
+    }
+
+    //调用Solidity合约    kms    铸造
+    public Commodity callSolidityContract(IssueAddrEntity issueAddrEntity) throws Exception {
+        String orderId = "order_" + System.currentTimeMillis();
+        JSONArray jsonArray = new JSONArray();
+        jsonArray.add(issueAddrEntity.getArtId());
+        jsonArray.add(issueAddrEntity.getDate());
+        jsonArray.add(issueAddrEntity.getOwner());
+        jsonArray.add(issueAddrEntity.getArtName());
+        jsonArray.add(issueAddrEntity.getPrice());
+        jsonArray.add(issueAddrEntity.getSellWay());
+        jsonArray.add(issueAddrEntity.getArtSize());
+        jsonArray.add(issueAddrEntity.getLocation());
+        CallRestBizParam callRestBizParam=CallRestBizParam.builder()
+                .orderId(orderId)
+                .bizid(restClientProperties.getBizid())
+                .account(restClientProperties.getAccount())
+                .contractName(CONTRACT_NAME)
+                //合约方法签名  注意:1.中间不要带空格  2.只写参数类型,不要带参数名 如:uint256 a,uint256 b  3.参数类型填写争取  请不要填写如int  需要填写完整uint
+                .methodSignature("insertArt(string,string,string,string,string,string,string,string)")
+                .inputParamListStr(jsonArray.toJSONString())
+                .outTypes("string")//合约返回值类型
+                .mykmsKeyId(restClientProperties.getKmsId())
+                .method(Method.CALLCONTRACTBIZASYNC)
+                .tenantid(restClientProperties.getTenantid())
+                .gas(500000L)
+                .build();
+        BaseResp resp=restClient.bizChainCallWithReceipt(callRestBizParam);
+        Commodity commodity = new Commodity();
+        System.err.println(resp.toString());
+        if(!resp.isSuccess()) {
+            System.out.println("EVM合约执行失败: " + resp.getCode() + ", " + resp.getData());
+        }
+        if("200".equals(resp.getCode())) {
+            System.out.println("EVM合约执行成功");
+        } else {
+            // 异步交易未成功需要根据状态码判断交易状态
+            System.out.println("EVM合约执行未成功: " + resp.getCode());
+        }
+        // 合约调用交易回执内容
+        ReceiptDecoration txReceipt = JSON.parseObject(resp.getData(), ReceiptDecoration.class);
+        BigInteger gasUsed = txReceipt.getGasUsed();
+        long result = txReceipt.getResult();
+        System.out.println("EVM合约交易内容: 哈希 " + txReceipt.getHash() + ", 消耗燃料 " + gasUsed + ", 结果 " + result);
+        return commodity;
+    }
+
+    //查询交易是否成功
+    public void queryResult(String hash) throws Exception {
+        Thread.sleep(2000);
+        BaseResp queryBaseResp = restClient.chainCall(hash, restClientProperties.getBizid(), "", Method.QUERYRECEIPT);
+        System.out.println(queryBaseResp);
+    }
+
+    //解析调用合约返回值  (解析返回值请填写show方法中参数,需要使用密钥托管账户)
+    public void showOutPut(String hash) throws Exception {
+        Thread.sleep(3000);
+        BaseResp queryBaseResp = restClient.chainCall(hash, restClientProperties.getBizid(), "", Method.QUERYRECEIPT);
+        String s = queryBaseResp.getData();
+        String output = s.substring(s.indexOf("output") + 9, s.indexOf("result")).replace("\"", "").replace(",", "");
+        if (0 != output.length()) {
+            BaseResp show = show(output);
+            System.out.println(show);
+        }else {
+            System.out.println(s);
+        }
+    }
+    private BaseResp show(String output) throws Exception {
+        byte[] content = Hex.encode(Base64.decode(output));
+        CallRestBizParam callRestBizParam = CallRestBizParam.builder().
+                bizid(restClientProperties.getBizid())
+                .method(Method.PARSEOUTPUT).
+                tenantid(restClientProperties.getTenantid()).
+                orderId("order_" + System.currentTimeMillis()).
+                vmTypeEnum(VMTypeEnum.EVM)
+                .content(new String(content)).
+                abi("[\"bool\"]").                                      //TODO 合约返回值类型需自己根据合约修改
+                mykmsKeyId(restClientProperties.getKmsId()).build();    //TODO 默认为application.yaml中KmsId
+        BaseResp baseResp = restClient.chainCallForBiz(callRestBizParam);
+        assert (baseResp.isSuccess());
+        System.out.println("show" + baseResp);
+        return baseResp;
+    }
+}

+ 80 - 0
src/main/java/com/alipay/openchain/flow/DepositFlow.java

@@ -0,0 +1,80 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2019 All Rights Reserved.
+ */
+package com.alipay.openchain.flow;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.mychain.sdk.common.VMTypeEnum;
+import com.antfinancial.mychain.baas.tool.restclient.RestClient;
+import com.antfinancial.mychain.baas.tool.restclient.RestClientProperties;
+import com.antfinancial.mychain.baas.tool.restclient.model.CallRestBizParam;
+import com.antfinancial.mychain.baas.tool.restclient.model.ClientParam;
+import com.antfinancial.mychain.baas.tool.restclient.model.Method;
+import com.antfinancial.mychain.baas.tool.restclient.response.BaseResp;
+import com.antfinancial.mychain.baas.tool.restclient.response.ReplyTransaction;
+import com.antfinancial.mychain.baas.tool.restclient.response.TransactionDO;
+import com.google.gson.JsonObject;
+import org.bouncycastle.util.encoders.Base64;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+/**
+ * 存证场景示例
+ */
+@Service
+public class DepositFlow {
+    @Autowired
+    private RestClient restClient;
+
+    @Autowired
+    private RestClientProperties restClientProperties;
+
+    public void runFlow() throws Exception {
+        //发起存证   接收返回的交易hash
+        String hash=depositData();
+
+        //因此此处演示查询之前的交易Hash
+        String hash2="6b17b9d4ec66005fb29b4123b0d380973491d8e9a064a92d0bedc4971b045e42";
+        queryTransaction(hash2);
+
+    }
+
+    /**
+     * 数据上链存证
+     */
+    public String depositData() throws Exception {
+        //存证内容
+        String data = "Test deposit data at " + System.currentTimeMillis();
+        //gas参数根据交易复杂度进行调整。越复杂需要越多,当前5W能满足,如果存证内容需改变,请相应修改gas参数
+        ClientParam clientParam = restClient.createDepositTransaction(restClientProperties.getDefaultAccount(), data, 50000l);
+        //发起存证
+        BaseResp result = restClient.chainCall(clientParam.getHash(), clientParam.getSignData(), Method.DEPOSIT);
+       System.out.println("[DepositFlow-存证数据] Hash: " + clientParam.getHash() + "Result: " + result);
+
+        String hash = clientParam.getHash();
+        Thread.sleep(3000);
+        //查询交易回执(存证交易是否成功需要根据该接口返回值确定,BaseResp返回200,并不代表成功)
+        result = restClient.chainCall(hash, restClientProperties.getBizid(), "", Method.QUERYRECEIPT);
+        System.out.println("[DepositFlow-查询交易回执] " + result);
+        return clientParam.getHash();
+    }
+
+    /**
+     * 通过交易Hash查询链上数据
+     */
+    public BaseResp queryTransaction(String hash) throws Exception {
+        BaseResp result = restClient.chainCall(hash, null, Method.QUERYTRANSACTION);
+        if(result.isSuccess() && "200".equals(result.getCode())) {
+            ReplyTransaction transaction = JSON.parseObject(result.getData(), ReplyTransaction.class);
+            TransactionDO transactionDO = transaction.getTransactionDO();
+            String data = new String(transactionDO.getData());
+            System.out.println("[DepositFlow-存证内容] " + data);
+        }
+        return result;
+    }
+
+
+}

+ 85 - 0
src/main/java/com/alipay/openchain/flow/DepositFlowforkms.java

@@ -0,0 +1,85 @@
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2019 All Rights Reserved.
+ */
+package com.alipay.openchain.flow;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.antfinancial.mychain.baas.tool.restclient.RestClient;
+import com.antfinancial.mychain.baas.tool.restclient.RestClientProperties;
+import com.antfinancial.mychain.baas.tool.restclient.model.CallRestBizParam;
+import com.antfinancial.mychain.baas.tool.restclient.model.ClientParam;
+import com.antfinancial.mychain.baas.tool.restclient.model.Method;
+import com.antfinancial.mychain.baas.tool.restclient.response.BaseResp;
+import com.antfinancial.mychain.baas.tool.restclient.response.ReplyTransaction;
+import com.antfinancial.mychain.baas.tool.restclient.response.TransactionDO;
+import org.bouncycastle.util.encoders.Base64;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 存证场景示例
+ */
+@Service
+public class DepositFlowforkms {
+    @Autowired
+    private RestClient restClient;
+
+    @Autowired
+    private RestClientProperties restClientProperties;
+
+    public void runFlow() throws Exception {
+        //发起存证   接收返回的交易hash
+        String hash=depositData();
+
+        //因此此处演示查询之前的交易Hash
+        String hash2="6b17b9d4ec66005fb29b4123b0d380973491d8e9a064a92d0bedc4971b045e42";
+        queryTransaction(hash2);
+
+    }
+
+    /**
+     * 数据上链存证
+     */
+    public String depositData() throws Exception {
+        //存证内容
+        String data = "Test deposit data at " + System.currentTimeMillis();
+        String orderId = "order_" + System.currentTimeMillis();
+        CallRestBizParam callRestBizParam=CallRestBizParam.builder()
+                .orderId(orderId)
+                .bizid(restClientProperties.getBizid())
+                .account(restClientProperties.getAccount())
+                .content(data)
+                .mykmsKeyId(restClientProperties.getKmsId())
+                .method(Method.DEPOSIT)
+                .tenantid(restClientProperties.getTenantid())
+                .gas(50000L)//gas参数根据交易复杂度进行调整。越复杂需要越多,当前5W能满足,如果存证内容需改变,请相应修改gas参数
+                .build();
+        //发起存证
+        BaseResp baseResp=restClient.chainCallForBiz(callRestBizParam);
+        System.out.println("[DepositFlow-存证数据] Hash: " + callRestBizParam.getHash() + "Result: " + baseResp);
+
+        String hash = callRestBizParam.getHash();
+        Thread.sleep(3000);
+        //查询交易回执(存证交易是否成功需要根据该接口返回值确定,BaseResp返回200,并不代表成功)
+        BaseResp result = restClient.chainCall(hash, restClientProperties.getBizid(), "", Method.QUERYRECEIPT);
+        System.out.println("[DepositFlow-查询交易回执] " + result);
+        return callRestBizParam.getHash();
+    }
+
+    /**
+     * 通过交易Hash查询链上数据
+     */
+    public void queryTransaction(String hash) throws Exception {
+        BaseResp result = restClient.chainCall(hash, null, Method.QUERYTRANSACTION);
+        if(result.isSuccess() && "200".equals(result.getCode())) {
+            ReplyTransaction transaction = JSON.parseObject(result.getData(), ReplyTransaction.class);
+            TransactionDO transactionDO = transaction.getTransactionDO();
+            String data = new String(transactionDO.getData());
+            System.out.println("[DepositFlow-存证内容] " + data);
+        }
+    }
+
+
+}

+ 116 - 0
src/main/java/com/alipay/openchain/flow/OperateChainAccount.java

@@ -0,0 +1,116 @@
+package com.alipay.openchain.flow;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.mychain.sdk.domain.account.Account;
+import com.alipay.openchain.entity.User;
+import com.antfinancial.mychain.baas.tool.restclient.RestClient;
+import com.antfinancial.mychain.baas.tool.restclient.RestClientProperties;
+import com.antfinancial.mychain.baas.tool.restclient.model.AccountRequest;
+import com.antfinancial.mychain.baas.tool.restclient.model.CallRestBizParam;
+import com.antfinancial.mychain.baas.tool.restclient.model.Method;
+import com.antfinancial.mychain.baas.tool.restclient.response.BaseResp;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.UUID;
+
+/**
+ * block chain account operations
+ */
+@Service
+public class OperateChainAccount {
+    @Autowired
+    private RestClient restClient;
+
+    @Autowired
+    private RestClientProperties restClientProperties;
+
+//    public void runFlow () throws Exception {
+//        createChainAccount();
+//        queryChainAccount();
+//    }
+    /**
+     * 创建KMS托管密钥的区块链账户
+     */
+    public User createChainAccount(String accountName, String newKmsId) throws Exception {
+        User user = new User();
+        CallRestBizParam param = CallRestBizParam.builder().
+                // 创建账户方法名称,固定值
+                method(Method.TENANTCREATEACCUNT).
+                // 本次交易请求ID
+                orderId(UUID.randomUUID().toString()).
+                // 执行创建账户交易的已有区块链账户
+                account(restClientProperties.getAccount()).
+                // 执行创建账户交易的已有区块链账户KMS密钥ID
+                mykmsKeyId(restClientProperties.getKmsId()).
+                // 新建区块链账户   不可重复  包括失败的账户名也不可使用
+                newAccountId(accountName).
+                // 新建区块链账户KMS密钥ID 可重复
+                newAccountKmsId(newKmsId).
+                // 确保设置的Gas参数足够大,且执行创建的账户中有足够Gas,并且账户燃料要大于参数数值
+                gas(100000L).
+                build();
+        BaseResp resp = restClient.chainCallForBiz(param);
+        if(resp.isSuccess()) {
+            System.out.println("创建账户成功,密钥:" + resp.toString());
+            user.setCode( "200" );
+            user.setUserMYStr( resp.getData() );
+            user.setMsg( "创建账户成功,密钥:" + resp.getData() );
+            //查询 账户信息id
+            AccountRequest request = restClient.createQueryAccountForBiz( accountName );
+
+            BaseResp resps = restClient.chainCall(
+                    null,
+                    JSON.toJSONString(request),
+                    Method.QUERYACCOUNT);
+            if(resps.isSuccess()) {
+                JSONObject jsonObject = JSONObject.parseObject(resps.getData());
+                Account account = new Account();
+                account.fromJson(jsonObject);
+                System.out.println("查询账户成功, 账户信息: ID " + account.getIdentity() + ", 余额 " + account.getBalance());
+                user.setId(account.getIdentity().hexStrValue()  );
+                user.setBalance( account.getBalance() );
+            } else {
+                System.err.println("查询账户失败: " + resps.getCode() + ", " + resps.getData());
+                user.setId("查询账户失败: " + resps.getCode() + ", " + resps.getData());
+            }
+            return user;
+            //-----end--
+        } else {
+            System.err.println("创建账户失败: " + resp.getCode() + ", " + resp.getData());
+            user.setCode( resp.getCode() );
+            user.setUserMYStr( resp.getData() );
+            user.setMsg( "创建账户失败: " + resp.getCode() + ", " + resp.getData() );
+            return user;
+        }
+    }
+
+    /**
+     * 查询指定名称的区块链账户
+     */
+    public User queryChainAccount(String accountName) throws Exception {
+        AccountRequest request = restClient.createQueryAccountForBiz( accountName );
+        User user = new User();
+        BaseResp resp = restClient.chainCall(
+                null,
+                JSON.toJSONString(request),
+                Method.QUERYACCOUNT);
+        System.out.println("response: " + JSON.toJSONString(resp));
+        if(resp.isSuccess()) {
+            JSONObject jsonObject = JSONObject.parseObject(resp.getData());
+            Account account = new Account();
+            account.fromJson(jsonObject);
+            user.setId( account.getIdentity().hexStrValue() );
+            user.setBalance( account.getBalance() );
+            user.setMsg(JSON.toJSONString(resp)  );
+            user.setCode( "200" );
+            System.out.println("查询账户成功, 账户信息: ID " + account.getIdentity() + ", 余额 " + account.getBalance());
+        } else {
+            user.setCode( resp.getCode() );
+            user.setMsg( "查询账户失败: " + resp.getCode() + ", " + resp.getData() );
+            System.err.println("查询账户失败: " + resp.getCode() + ", " + resp.getData());
+        }
+        return user;
+    }
+}

+ 145 - 0
src/main/java/com/alipay/openchain/flow/QueryChainData.java

@@ -0,0 +1,145 @@
+package com.alipay.openchain.flow;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.antfinancial.mychain.baas.tool.restclient.RestClient;
+import com.antfinancial.mychain.baas.tool.restclient.RestClientProperties;
+import com.antfinancial.mychain.baas.tool.restclient.model.CallRestParam;
+import com.antfinancial.mychain.baas.tool.restclient.model.Method;
+import com.antfinancial.mychain.baas.tool.restclient.model.ReceiptDecoration;
+import com.antfinancial.mychain.baas.tool.restclient.response.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * block chain data query operations
+ */
+@Service
+public class QueryChainData {
+    @Autowired
+    private RestClient restClient;
+
+    @Autowired
+    private RestClientProperties restClientProperties;
+
+    public void runFlow () throws Exception {
+        queryLastBlock();
+        queryBlockHead();
+        queryBlockBody();
+        queryTransaction();
+        queryTransReceipt();
+    }
+
+    /**
+     * 查询最近区块
+     */
+    public void queryLastBlock() throws Exception {
+        CallRestParam param = CallRestParam.builder().
+                // 查询最近区块方法名称,固定值
+                method(Method.QUERYLASTBLOCK).
+                build();
+        BaseResp resp = restClient.chainCall(param);
+        if(resp.isSuccess()) {
+            // 解析返回结果
+            ReplyBlock replyBlock = JSON.parseObject(resp.getData(), ReplyBlock.class);
+            BlockHeader header = replyBlock.getBlock().getBlockHeader();
+            System.out.println("查询最近区块成功, 区块信息:高度 " + header.getNumber() + ", 哈希 " + header.getHash());
+        } else {
+            System.err.println("查询最近区块失败: " + resp.getCode() + ", " + resp.getData());
+        }
+    }
+
+    /**
+     * 查询指定区块头
+     */
+    public void queryBlockHead() throws Exception {
+        CallRestParam param = CallRestParam.builder().
+                // 查询最近区块头方法名称,固定值
+                method(Method.QUERYBLOCK).
+                // 查询的区块高度
+                requestStr(String.valueOf(100L)).
+                build();
+        BaseResp resp = restClient.chainCall(param);
+        if(resp.isSuccess()) {
+            // 解析返回结果
+            ReplyBlock replyBlock = JSON.parseObject(resp.getData(), ReplyBlock.class);
+            BlockHeader header = replyBlock.getBlock().getBlockHeader();
+            System.out.println("查询区块头成功, 区块信息:高度 " + header.getNumber() + ", 哈希 " + header.getHash());
+        } else {
+            System.err.println("查询区块头失败: " + resp.getCode() + ", " + resp.getData());
+        }
+    }
+
+    /**
+     * 查询指定区块内容
+     */
+    public void queryBlockBody() throws Exception {
+        CallRestParam param = CallRestParam.builder().
+                // 查询最近区块内容方法名称,固定值
+                method(Method.QUERYBLOCKBODY).
+                // 查询的区块高度
+                requestStr(String.valueOf(100L)).
+                // 如果查询配置文件中指定默认链外的其他链, 设置对应的`bizid`
+                // bizid("").
+                build();
+        BaseResp resp = restClient.chainCall(param);
+        if(resp.isSuccess()) {
+            // 解析返回结果
+            JSONObject jsonObject = JSONObject.parseObject(resp.getData());
+            com.alipay.mychain.sdk.domain.block.Block block = new com.alipay.mychain.sdk.domain.block.Block();
+            block.fromJson(jsonObject);
+            com.alipay.mychain.sdk.domain.block.BlockHeader header = block.getBlockHeader();
+            System.out.println("查询区块内容成功, 区块信息:高度 " + header.getNumber() + ", 哈希 " + header.getHash());
+        } else {
+            System.err.println("查询区块内容失败: " + resp.getCode() + ", " + resp.getData());
+        }
+    }
+
+    /**
+     * 查询指定交易
+     */
+    public void queryTransaction() throws Exception {
+        final String txHash = "cd3b5e4db44d121024a645c93b27ba3e49ca87d6dcc94ffb35e96faf1c1840a8";
+        CallRestParam param = CallRestParam.builder().
+                // 查询交易的方法名称,固定值
+                method(Method.QUERYTRANSACTION).
+                // 查询的交易Hash
+                hash(txHash).
+                // 如果查询配置文件中指定默认链外的其他链, 设置对应的`bizid`
+                // bizid("").
+                build();
+        BaseResp resp = restClient.chainCall(param);
+        if(resp.isSuccess()) {
+            // 解析返回结果
+            ReplyTransaction transaction = JSON.parseObject(resp.getData(), ReplyTransaction.class);
+            TransactionDO transactionDO = transaction.getTransactionDO();
+            System.out.println("查询交易成功, 区块信息:区块高度 " + transaction.getBlockNumber() + ", 交易哈希 " + transaction.getHash() + ", 交易时间 " + transactionDO.getTimestamp());
+        } else {
+            System.err.println("查询交易失败: " + resp.getCode() + ", " + resp.getData());
+        }
+    }
+
+    /**
+     * 查询指定交易回执
+     */
+    public void queryTransReceipt() throws Exception {
+        final String txHash = "cd3b5e4db44d121024a645c93b27ba3e49ca87d6dcc94ffb35e96faf1c1840a8";
+
+        CallRestParam param = CallRestParam.builder().
+                // 查询交易回执的方法名称,固定值
+                method(Method.QUERYRECEIPT).
+                // 查询的交易Hash
+                hash(txHash).
+                // 如果查询配置文件中指定默认链外的其他链, 设置对应的`bizid`
+                // bizid("").
+                build();
+        BaseResp resp = restClient.chainCall(param);
+        if(resp.isSuccess()) {
+            // 解析返回结果
+            ReceiptDecoration receipt = JSON.parseObject(resp.getData(), ReceiptDecoration.class);
+            System.out.println("查询交易回执成功, 区块信息:区块高度 " + receipt.getBlockNumber() + ", 消耗燃料 " + receipt.getGasUsed() + ", 交易结果 " + receipt.getResult());
+        } else {
+            System.err.println("查询交易回执失败: " + resp.getCode() + ", " + resp.getData());
+        }
+    }
+}

+ 169 - 0
src/main/java/com/alipay/openchain/vo/Result.java

@@ -0,0 +1,169 @@
+package com.alipay.openchain.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *   接口返回数据格式
+ * @author scott
+ * @email jeecgos@163.com
+ * @date  2019年1月19日
+ */
+@Data
+
+public class Result<T> implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 成功标志
+	 */
+
+	private boolean success = true;
+
+	/**
+	 * 返回处理消息
+	 */
+
+	private String message = "";
+
+	/**
+	 * 返回代码
+	 */
+
+	private Integer code = 0;
+	
+	/**
+	 * 返回数据对象 data
+	 */
+
+	private T result;
+	
+	/**
+	 * 时间戳
+	 */
+
+	private long timestamp = System.currentTimeMillis();
+
+	public Result() {
+	}
+
+    /**
+     * 兼容VUE3版token失效不跳转登录页面
+     * @param code
+     * @param message
+     */
+	public Result(Integer code, String message) {
+		this.code = code;
+		this.message = message;
+	}
+	
+	public Result<T> success(String message) {
+		this.message = message;
+		this.code = 200;
+		this.success = true;
+		return this;
+	}
+
+	@Deprecated
+	public static<T> Result<T> ok() {
+		Result<T> r = new Result<T>();
+		r.setSuccess(true);
+		r.setCode(200);
+		return r;
+	}
+
+	@Deprecated
+	public static<T> Result<T> ok(String msg) {
+		Result<T> r = new Result<T>();
+		r.setSuccess(true);
+		r.setCode(200);
+		r.setMessage(msg);
+		return r;
+	}
+
+	@Deprecated
+	public static<T> Result<T> ok(T data) {
+		Result<T> r = new Result<T>();
+		r.setSuccess(true);
+		r.setCode(200);
+		r.setResult(data);
+		return r;
+	}
+
+	public static<T> Result<T> OK() {
+		Result<T> r = new Result<T>();
+		r.setSuccess(true);
+		r.setCode(200);
+		return r;
+	}
+
+	@Deprecated
+	public static<T> Result<T> OK(String msg) {
+		Result<T> r = new Result<T>();
+		r.setSuccess(true);
+		r.setCode(200);
+		r.setMessage(msg);
+		//Result OK(String msg)方法会造成兼容性问题 issues/I4IP3D
+		r.setResult((T) msg);
+		return r;
+	}
+
+	public static<T> Result<T> OK(T data) {
+		Result<T> r = new Result<T>();
+		r.setSuccess(true);
+		r.setCode(200);
+		r.setResult(data);
+		return r;
+	}
+
+	public static<T> Result<T> OK(String msg, T data) {
+		Result<T> r = new Result<T>();
+		r.setSuccess(true);
+		r.setCode(200);
+		r.setMessage(msg);
+		r.setResult(data);
+		return r;
+	}
+
+	public static<T> Result<T> error(String msg, T data) {
+		Result<T> r = new Result<T>();
+		r.setSuccess(false);
+		r.setCode(500);
+		r.setMessage(msg);
+		r.setResult(data);
+		return r;
+	}
+
+	public static<T> Result<T> error(String msg) {
+		return error(500, msg);
+	}
+	
+	public static<T> Result<T> error(int code, String msg) {
+		Result<T> r = new Result<T>();
+		r.setCode(code);
+		r.setMessage(msg);
+		r.setSuccess(false);
+		return r;
+	}
+
+	public Result<T> error500(String message) {
+		this.message = message;
+		this.code = 500;
+		this.success = false;
+		return this;
+	}
+
+	/**
+	 * 无权限访问返回结果
+	 */
+	public static<T> Result<T> noauth(String msg) {
+		return error(510, msg);
+	}
+
+	@JsonIgnore
+	private String onlTable;
+
+}

+ 28 - 0
src/main/resources/access.key

@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCy2m8my5Bm3v3w
+/fYZ5BY/7cALg78jqhqVcVxpqm0s9Mg8b+Np2WpmTrGsHC31cx7qUCEGfq3iw0vn
+YnXwOh6HQEblxbPJfEouHHS8EjVdGxaj1Aok4uoxzEJxT7xlXPZpAmXwhtWnsMZA
+CFx7VboWysQVaeuUJTL6q4NG88rxwkxjxLXnl9ID7o+5nSrmjyqWHiOJ84YpiJ7x
+5/HA+pksaeThTGSYqpNAFAheatoQSf1g2RGgwTjVdwGbZzqBiajQJ1OjR8eCdSa7
+AI1bw9oqv/Z0UoQ/Lr8g/pbeXRo5eDE+XRWImGbB0Rm2j3vI5sn+kRZ1+iOWAN3r
+xlERA2yxAgMBAAECggEAFOry88e8XWmwa8x6CWRpnUO4UahwlRJenlKWLzYLY4YD
++ryPzYgL94f14/YeQm4axCcHu8eaXPKAKMFVX5meiy0/dX1iRfsDPoIdvYbIJrnl
+s5a3soF3CEi2TyQXGchN+fFZvJA6ggys3R2VOmgH9gU0OnhrQOX6YMKpPYXDGzPu
+yASPaVMf4wG7YrodtUdMzKJNFxW+2B5dRsOUVSicoHXlGl8xt6fUSx1ryCAK817L
+T27ARcol7D8HvBRzFp0vZYYAgEIAyA2wVyLtCOIDH6lAl0FNuNWdlTz6L0yloRys
+tIoJWujQRfmoMR9+awU4TpsK0Aq6OB2dkNrTGrVIuQKBgQDvMhJWspaQO/yBo004
+kJVrau1y96lS67JEaczyy7MzTAEijOdnYXInqQ1vSx4aFRqZY5l2IfOYUXT06rPC
+OFa/bmz/lu85QMaMEHHWQWWwDErGB0wFqGgrcNUFfRjw0oiSUY5L1PDEM0/GZAZy
+jQviXGCZ4SC9BWqj5VczM2SaeQKBgQC/axtVy+jDoNKmo5LigQbZYG7xPojXseix
+eT5VSF6QL8ox2DToetkNAnwDBR6QlRjD118wENOoJHz1fJix4n7ujTiWsiFv/8/I
+CEEDzVXcRsy4RbfYMsac8c98Fk2rmqLTXfS0HpFuVfrBQBnkDC+PhR7ZuGwPWBXR
+ViyFLBdV+QKBgQDIvdQIML8Nc1p6Devr0eOkj8uRlenj7mzg344iIfRV066MKYa3
+C1/7ivP8eCVeLGHzY1RSgTHnnk0ykpqkIBYleG4/npNMEGHRAKgY8S9/LQG/6jXR
+9cDe3EXa4l8BFR+K9KkgWShq8Mk9rYp/roHPyklEO1z3ZclWnU2uaa4/uQKBgQCP
+4IXPW1E9meg78L87GRh4048QLZzV45evrh44JAlP/1vPU1+RTqVOrgtgibyLmEXh
+DkUx77PnsmVqb5imPESEMgnS21lewbz/8ZRMs05SH7VI3L5u9ttqpCb8chc3YSf6
+D6kaqc9OS7oK/492ZeJp0fl6VLCEaAUeL9OO1bFEoQJ/LZl3znzeKd1kYu6l13iK
+Rxgos1QRSNAMWl8veMIldhCiBK5W47cDXSBMOLlel0r0y39fLj133ILVLGkdJ7Lt
+qCd2GwafRF8vM15Krr5QjhQNwaI5KIBleimLnMqohI0A4goQnd2qCRsCyK9PZghX
+Xg50ed7p7jVPrNB8pAZveQ==
+-----END PRIVATE KEY-----

+ 39 - 0
src/main/resources/application.yaml

@@ -0,0 +1,39 @@
+mychain:
+  rest:
+    bizid: a00e36c5
+    cipher-suit: ec
+    rest-url: https://rest.baas.alipay.com
+    # AccessKey ID
+    access-id: rVc5YEyuQJCTFUPG
+    # AccessKey生成文件
+    access-secret: access.key
+    # 创建链账户时的账户名
+    default-account: tongfan
+    default-account-key: user.key
+    default-account-pwd: Tongfan@2022
+    # 管理控制台租户信息
+    tenantid: QJCTFUPG
+    read-file-from-ext: false
+    # 密钥托管用户名
+    account: tongfan_super
+    # 托管mykmsKeyId
+    kmsId: fK7D2PfcQJCTFUPG1663913110189
+server:
+  port: 8088
+
+#logging:
+#  config: classpath:logback.xml
+    
+  
+#  bizid: 开放联盟链的链ID
+#  cipher-suit: 加密算法,ec表示采用椭圆曲线数字签名算法
+#  rest-url: 访问开放联盟链的地址
+#  access-id: *开发者需要替换* 替换为准备环境步骤申请AccessKey时返回的Access-id
+#  access-secret: *开发者需要替换* 将access.key文件内容替换为准备环境步骤申请AccessKey时返回的密钥
+#  default-account: *开发者需要替换* 创建账户时的账户名
+#  default-account-key: *开发者需要替换* 创建账户时返回的私钥
+#  default-account-pwd: *开发者需要替换* 创建账户时的密码
+#  tenantid:*开发者需要替换* 租户id,可通过管理控制台>账户信息查看;发起账户是密钥托管的链账户时需要,非托管模式不需要该参数
+#  read-file-from-ext: 表示读取配置文件的路径,默认为false,表示在resource目录下读取
+#  account:为密钥托管账户账户名
+#  kmsId:为密钥托管账户kmsidkey 可以在控制台

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
src/main/resources/contract.txt


+ 71 - 0
src/main/resources/logback.xml

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <!-- 日志存放路径 -->
+    <property name="log.path" value="logs" />
+    <!-- 日志输出格式 -->
+    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+    <!-- 控制台输出 -->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <!-- 系统日志输出 -->
+    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/sys-info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/sys-error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 系统模块日志级别控制  -->
+    <logger name="com.easy" level="info" />
+    <!-- Spring日志级别控制  -->
+    <logger name="org.springframework" level="warn" />
+
+    <root level="info">
+        <appender-ref ref="console" />
+    </root>
+
+    <!--系统操作日志-->
+    <root level="info">
+        <appender-ref ref="file_info" />
+        <appender-ref ref="file_error" />
+    </root>
+
+</configuration>

+ 7 - 0
src/main/resources/user.key

@@ -0,0 +1,7 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIHFMCgGCiqGSIb3DQEMAQMwGgQUa/d0v4cK3dS286UQuY9I6UfHzesCAggABIGY
+4aSUsHceSXHqbBtHbgLEmGmyoHt21F0Nm3loVVhWm9k39wDRlUANDBq5LG8JUNwB
+BqwWOHonUKi5sSCo/u/Wz3+UV+uJ8yvYTA8G5x8/x7YKd3DpWApLJNxatj0VQz1R
+0ERFeMHipo3UvHe/I5DpUy/bDB0guh52d3xLcpQXsjtb36RpiiqXR9xBcA2QAUGy
+ewZyctKaBKs=
+-----END ENCRYPTED PRIVATE KEY-----

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels