还记得前面我们写的 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
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|