| 
                         还记得前面我们写的 generateBlock 这个函数吗?它接受一个“前一个块”参数,和一个 VAC 值。POST handler 接受请求后就能获得请求体中的 VAC 值,接着借助生成块的函数以及校验块的函数就能生成一个新的块了! 
除此之外,你也可以: 
1、使用new GsonBuilder().setPrettyPrinting().create()这个函数可以以非常美观和方便阅读的方式将数据json化打印在控制台里,方便调试。 
2、测试 POST 请求时,可以使用 POSTMAN 这个 chrome 插件,相比 curl它更直观和方便。也可以使用RESTClient这个FireFox插件。 
快要大功告成了 
接下来,我们把这些关于区块链的函数,web 服务的函数“组装”起来:最重要的是,我们需要产生第一个块(创世块),来作为区块链的头。 
- //创世块  
 -        Block genesisBlock = new Block();  
 -        genesisBlock.setIndex(0);  
 -        genesisBlock.setTimestamp(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));  
 -        genesisBlock.setVac(0);  
 -        genesisBlock.setPrevHash("");  
 -        genesisBlock.setHash(calculateHash(genesisBlock));  
 -        blockChain.add(genesisBlock); 
 
  
这里的 genesisBlock (创世块)是 main 函数中最重要的部分,通过它来初始化区块链,毕竟要有一个开始,第一个块的 PrevHash 是空的。 
哦耶!完成了 
让我们来启动它: 
在终端中,我们可以看到 web 服务器启动的日志信息,并且打印出了创世块的信息: 
- [INFO ] 2018-02-08 10:58:26 SparkWeb@(SparkWeb.java:132):[  
 - {  
 - "index": 0,  
 - "timestamp": "2018-02-08 10:58:25",  
 - "vac": 0,  
 - "hash": "7c2d2db62a82ac8aa3d843ff837c604d8bd17800f4c466d472c5df185b8967fa",  
 - "prevHash": ""  
 - }  
 - ]  
 - [INFO ] 2018-02-08 10:58:26 Log@(Log.java:192):Logging initialized @1267ms to org.eclipse.jetty.util.log.Slf4jLog  
 - [INFO ] 2018-02-08 10:58:26 EmbeddedJettyServer@(EmbeddedJettyServer.java:127):== Spark has ignited ...  
 - [INFO ] 2018-02-08 10:58:26 EmbeddedJettyServer@(EmbeddedJettyServer.java:128):>> Listening on 0.0.0.0:4567  
 - [INFO ] 2018-02-08 10:58:26 Server@(Server.java:372):jetty-9.4.4.v20170414  
 - [INFO ] 2018-02-08 10:58:26 DefaultSessionIdManager@(DefaultSessionIdManager.java:364):DefaultSessionIdManager workerName=node0  
 - [INFO ] 2018-02-08 10:58:26 DefaultSessionIdManager@(DefaultSessionIdManager.java:369):No SessionScavenger set, using defaults  
 - [INFO ] 2018-02-08 10:58:26 HouseKeeper@(HouseKeeper.java:149):Scavenging every 600000ms 
 -  [INFO ] 2018-02-08 10:58:27 AbstractConnector@(AbstractConnector.java:280):Started ServerConnector@4c7573c5{HTTP/1.1,[http/1.1]}{0.0.0.0:4567}  
 - [INFO ] 2018-02-08 10:58:27 Server@(Server.java:444):Started @1669ms 
 
                          (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |