五、工作量证明链解决拜占庭将军问题之模拟程序(Objective-C)

一、概述:

此程序用来模拟工作量证明链如何解决拜占庭将军问题,使用Objective-C语言,需要使用Xcode开发工具运行并执行演示,演示结果打印在Xcode控制台。

二、示例程序:

程序下载地址:工作量证明链解决拜占庭将军问题之模拟程序

压缩包解压密码:liangjingcheng

三、相关内容:

区块链的起源-拜占庭将军问题:https://blog.csdn.net/jingcheng345413/article/details/82830881

拜占庭将军问题破解-工作量证明链-故事概要:https://blog.csdn.net/jingcheng345413/article/details/82834960

四、模拟程序流程介绍:

此程序用来模拟拜占庭将军们如何达成一致的攻击时刻:

1.首先模拟两个将军各发出一个进攻时刻。部分将军接收第一个攻击时刻,其余将军接收第二个攻击时刻。

2.各个将军收到进攻时刻,则获取到当前区块链中最后一个区块,根据最后一个区块的散列值以及收到的攻击时间,然后进行工作量计算(循环哈希模式匹配,通过追加随机数,达到哈希结果以指定个数的0开始,则认为工作量证明完成)。

3.将军手中的工作量证明计算完成,将完成工作量计算的区块广播给其它所有将军

4.将军收到其它将军完成工作量证明计算的区块,并校验区块链,如果合法,则在新的区块基础上重新进行工作量证明计算(使用新区块的散列值和攻击时刻);否则保持当前工作量计算不变。

5.待工作量证明链中区块数量达到所有将军的总数之后,通过链条中的攻击时间数量来决定最终攻击时间。

五、演示结果示例:

 日志字段意义:将军名称,攻击时刻,此区块基于的上一区块的散列值,随机数,工作量完成后的散列值结果,此区块在区块链中的顺序索引17:44:53.510702 发布攻击时刻:army1, 2018-10-13 19:10:5017:44:53.511006 工作量证明开始:army1, 2018-10-13 19:10:50, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.511223 工作量证明开始:army2, 2018-10-13 19:10:50, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.511511 工作量证明开始:army3, 2018-10-13 19:10:50, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.511716 工作量证明开始:army4, 2018-10-13 19:10:50, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.511899 工作量证明开始:army5, 2018-10-13 19:10:50, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.512189 工作量证明开始:army6, 2018-10-13 19:10:50, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.513080 发布攻击时刻:army7, 2018-10-13 02:10:5117:44:53.539615 工作量证明开始:army7, 2018-10-13 02:10:51, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.573771 工作量证明开始:army8, 2018-10-13 02:10:51, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.574236 工作量证明开始:army9, 2018-10-13 02:10:51, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.574575 工作量证明开始:army10, 2018-10-13 02:10:51, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.575404 工作量证明开始:army11, 2018-10-13 02:10:51, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:53.578160 工作量证明开始:army12, 2018-10-13 02:10:51, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, (null), (null), 017:44:55.486875 --------------------------------17:44:55.487052 工作量证明完成:army2, 2018-10-13 19:10:50, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, 2983465534, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, 017:44:55.487279 工作量证明开始:army1, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:55.487456 工作量证明开始:army3, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:55.487622 工作量证明开始:army4, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:55.487791 工作量证明开始:army5, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:55.487954 工作量证明开始:army6, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:55.488120 工作量证明开始:army7, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:55.488321 工作量证明开始:army8, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:55.491836 工作量证明开始:army9, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:55.492037 工作量证明开始:army10, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:55.492239 工作量证明开始:army11, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:55.492403 工作量证明开始:army12, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, (null), (null), 017:44:56.818969 --------------------------------17:44:56.819138 工作量证明完成:army6, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, 3804513041, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, 117:44:56.819336 工作量证明开始:army1, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, (null), (null), 017:44:56.819506 工作量证明开始:army3, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, (null), (null), 017:44:56.820138 工作量证明开始:army4, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, (null), (null), 017:44:56.820341 工作量证明开始:army5, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, (null), (null), 017:44:56.820522 工作量证明开始:army7, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, (null), (null), 017:44:56.820675 工作量证明开始:army8, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, (null), (null), 017:44:56.820825 工作量证明开始:army9, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, (null), (null), 017:44:56.827195 工作量证明开始:army10, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, (null), (null), 017:44:56.827418 工作量证明开始:army11, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, (null), (null), 017:44:56.827589 工作量证明开始:army12, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, (null), (null), 017:44:57.715232 --------------------------------17:44:57.715438 工作量证明完成:army7, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, 1470455878, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, 217:44:57.715657 工作量证明开始:army1, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, (null), (null), 017:44:57.715827 工作量证明开始:army3, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, (null), (null), 017:44:57.716009 工作量证明开始:army4, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, (null), (null), 017:44:57.716177 工作量证明开始:army5, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, (null), (null), 017:44:57.716355 工作量证明开始:army8, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, (null), (null), 017:44:57.716573 工作量证明开始:army9, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, (null), (null), 017:44:57.716761 工作量证明开始:army10, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, (null), (null), 017:44:57.728540 工作量证明开始:army11, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, (null), (null), 017:44:57.728737 工作量证明开始:army12, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, (null), (null), 017:45:03.725366 --------------------------------17:45:03.725559 工作量证明完成:army1, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, 2022421722, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, 317:45:03.725781 工作量证明开始:army3, 2018-10-13 19:10:50, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, (null), (null), 017:45:03.725978 工作量证明开始:army4, 2018-10-13 19:10:50, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, (null), (null), 017:45:03.726197 工作量证明开始:army5, 2018-10-13 19:10:50, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, (null), (null), 017:45:03.726373 工作量证明开始:army8, 2018-10-13 19:10:50, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, (null), (null), 017:45:03.726616 工作量证明开始:army9, 2018-10-13 19:10:50, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, (null), (null), 017:45:03.726815 工作量证明开始:army10, 2018-10-13 19:10:50, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, (null), (null), 017:45:03.726990 工作量证明开始:army11, 2018-10-13 19:10:50, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, (null), (null), 017:45:03.733749 工作量证明开始:army12, 2018-10-13 19:10:50, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, (null), (null), 017:45:07.841080 --------------------------------17:45:07.841249 工作量证明完成:army8, 2018-10-13 19:10:50, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, 2420316984, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, 417:45:07.841496 工作量证明开始:army3, 2018-10-13 19:10:50, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, (null), (null), 017:45:07.841668 工作量证明开始:army4, 2018-10-13 19:10:50, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, (null), (null), 017:45:07.841831 工作量证明开始:army5, 2018-10-13 19:10:50, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, (null), (null), 017:45:07.842005 工作量证明开始:army9, 2018-10-13 19:10:50, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, (null), (null), 017:45:07.842201 工作量证明开始:army10, 2018-10-13 19:10:50, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, (null), (null), 017:45:07.842367 工作量证明开始:army11, 2018-10-13 19:10:50, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, (null), (null), 017:45:07.842525 工作量证明开始:army12, 2018-10-13 19:10:50, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, (null), (null), 017:45:18.381313 --------------------------------17:45:18.381513 工作量证明完成:army3, 2018-10-13 19:10:50, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, 4171258196, 000000b65bdcbaf1999679ce798a74bc6a559b7bf3745d5168fbdda76ef5752c, 517:45:18.381747 工作量证明开始:army4, 2018-10-13 19:10:50, 000000b65bdcbaf1999679ce798a74bc6a559b7bf3745d5168fbdda76ef5752c, (null), (null), 017:45:18.381926 工作量证明开始:army5, 2018-10-13 19:10:50, 000000b65bdcbaf1999679ce798a74bc6a559b7bf3745d5168fbdda76ef5752c, (null), (null), 017:45:18.382146 工作量证明开始:army9, 2018-10-13 19:10:50, 000000b65bdcbaf1999679ce798a74bc6a559b7bf3745d5168fbdda76ef5752c, (null), (null), 017:45:18.382355 工作量证明开始:army10, 2018-10-13 19:10:50, 000000b65bdcbaf1999679ce798a74bc6a559b7bf3745d5168fbdda76ef5752c, (null), (null), 017:45:18.382524 工作量证明开始:army11, 2018-10-13 19:10:50, 000000b65bdcbaf1999679ce798a74bc6a559b7bf3745d5168fbdda76ef5752c, (null), (null), 017:45:18.382673 工作量证明开始:army12, 2018-10-13 19:10:50, 000000b65bdcbaf1999679ce798a74bc6a559b7bf3745d5168fbdda76ef5752c, (null), (null), 017:45:24.848363 --------------------------------17:45:24.848543 工作量证明完成:army11, 2018-10-13 19:10:50, 000000b65bdcbaf1999679ce798a74bc6a559b7bf3745d5168fbdda76ef5752c, 3414610482, 000005be4e44b11433e10f08acffd19ca4ae3303b310cc54f38e02074030a8e4, 617:45:24.848745 工作量证明开始:army4, 2018-10-13 19:10:50, 000005be4e44b11433e10f08acffd19ca4ae3303b310cc54f38e02074030a8e4, (null), (null), 017:45:24.848918 工作量证明开始:army5, 2018-10-13 19:10:50, 000005be4e44b11433e10f08acffd19ca4ae3303b310cc54f38e02074030a8e4, (null), (null), 017:45:24.849085 工作量证明开始:army9, 2018-10-13 19:10:50, 000005be4e44b11433e10f08acffd19ca4ae3303b310cc54f38e02074030a8e4, (null), (null), 017:45:24.849249 工作量证明开始:army10, 2018-10-13 19:10:50, 000005be4e44b11433e10f08acffd19ca4ae3303b310cc54f38e02074030a8e4, (null), (null), 017:45:24.849403 工作量证明开始:army12, 2018-10-13 19:10:50, 000005be4e44b11433e10f08acffd19ca4ae3303b310cc54f38e02074030a8e4, (null), (null), 017:45:40.967078 --------------------------------17:45:40.967262 工作量证明完成:army9, 2018-10-13 19:10:50, 000005be4e44b11433e10f08acffd19ca4ae3303b310cc54f38e02074030a8e4, 3152901986, 0000033a4def5f846b257391939bfcdce1034d14632416e66b52ac9be0540223, 717:45:40.967456 工作量证明开始:army4, 2018-10-13 19:10:50, 0000033a4def5f846b257391939bfcdce1034d14632416e66b52ac9be0540223, (null), (null), 017:45:40.967623 工作量证明开始:army5, 2018-10-13 19:10:50, 0000033a4def5f846b257391939bfcdce1034d14632416e66b52ac9be0540223, (null), (null), 017:45:40.967788 工作量证明开始:army10, 2018-10-13 19:10:50, 0000033a4def5f846b257391939bfcdce1034d14632416e66b52ac9be0540223, (null), (null), 017:45:40.967947 工作量证明开始:army12, 2018-10-13 19:10:50, 0000033a4def5f846b257391939bfcdce1034d14632416e66b52ac9be0540223, (null), (null), 017:45:45.112421 --------------------------------17:45:45.112611 工作量证明完成:army4, 2018-10-13 19:10:50, 0000033a4def5f846b257391939bfcdce1034d14632416e66b52ac9be0540223, 866801068, 00000111d6dd82470d8ca5e19c0a54d97b40b5af26c1307ed80d09443bd6595f, 817:45:45.112852 工作量证明开始:army5, 2018-10-13 19:10:50, 00000111d6dd82470d8ca5e19c0a54d97b40b5af26c1307ed80d09443bd6595f, (null), (null), 017:45:45.113057 工作量证明开始:army10, 2018-10-13 19:10:50, 00000111d6dd82470d8ca5e19c0a54d97b40b5af26c1307ed80d09443bd6595f, (null), (null), 017:45:45.113275 工作量证明开始:army12, 2018-10-13 19:10:50, 00000111d6dd82470d8ca5e19c0a54d97b40b5af26c1307ed80d09443bd6595f, (null), (null), 017:45:45.604591 --------------------------------17:45:45.604780 工作量证明完成:army5, 2018-10-13 19:10:50, 00000111d6dd82470d8ca5e19c0a54d97b40b5af26c1307ed80d09443bd6595f, 2261971875, 00000a5101b3ac08f1bf9deba11ff2f1ed92c5b7681518fdcfde0967b998bc51, 917:45:45.604999 工作量证明开始:army10, 2018-10-13 19:10:50, 00000a5101b3ac08f1bf9deba11ff2f1ed92c5b7681518fdcfde0967b998bc51, (null), (null), 017:45:45.605175 工作量证明开始:army12, 2018-10-13 19:10:50, 00000a5101b3ac08f1bf9deba11ff2f1ed92c5b7681518fdcfde0967b998bc51, (null), (null), 017:45:52.371413 --------------------------------17:45:52.371583 工作量证明完成:army10, 2018-10-13 19:10:50, 00000a5101b3ac08f1bf9deba11ff2f1ed92c5b7681518fdcfde0967b998bc51, 3226954379, 000007e3f9975d6831c19f2fceece30cd3e9002f78ba1fdb4d3896cebfe42199, 1017:45:52.371788 工作量证明开始:army12, 2018-10-13 19:10:50, 000007e3f9975d6831c19f2fceece30cd3e9002f78ba1fdb4d3896cebfe42199, (null), (null), 017:46:33.848329 --------------------------------17:46:33.848507 工作量证明完成:army12, 2018-10-13 19:10:50, 000007e3f9975d6831c19f2fceece30cd3e9002f78ba1fdb4d3896cebfe42199, 3965823104, 0000078a3660bb792ce5638adf513de053c5471b8509ed83511ff5e606ba4960, 1117:46:33.848680 --------------------------证明链结果--------------------------17:46:33.848851 army2, 2018-10-13 19:10:50, 000a4018d6ad4698ea462e417c11631973a972bfd9050a68044e69ad31ae0542, 2983465534, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, 017:46:33.848965 army6, 2018-10-13 19:10:50, 0000042be25e30854c5296f897d3c93ade930b26e3857fb1adea1a50a5255bae, 3804513041, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, 117:46:33.849066 army7, 2018-10-13 19:10:50, 0000003fe541c138dad23df4a6857666b77189d88e0611f6bd7024a88ff4e811, 1470455878, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, 217:46:33.849158 army1, 2018-10-13 19:10:50, 00000e1b650e0f6966b7884d46e17f7ec30bd8fa47a7976be7b630c5dc4125d0, 2022421722, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, 317:46:33.849251 army8, 2018-10-13 19:10:50, 00000362bf6f4c4d82ed89a06db5b955ef393815c232cba880bc1d375bb60a86, 2420316984, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, 417:46:33.849367 army3, 2018-10-13 19:10:50, 0000054e86bc91192af0f7e2bb48d06c5f3d1b51f1c91d8dde999a5f6ad60b4c, 4171258196, 000000b65bdcbaf1999679ce798a74bc6a559b7bf3745d5168fbdda76ef5752c, 517:46:33.859883 army11, 2018-10-13 19:10:50, 000000b65bdcbaf1999679ce798a74bc6a559b7bf3745d5168fbdda76ef5752c, 3414610482, 000005be4e44b11433e10f08acffd19ca4ae3303b310cc54f38e02074030a8e4, 617:46:33.860019 army9, 2018-10-13 19:10:50, 000005be4e44b11433e10f08acffd19ca4ae3303b310cc54f38e02074030a8e4, 3152901986, 0000033a4def5f846b257391939bfcdce1034d14632416e66b52ac9be0540223, 717:46:33.860112 army4, 2018-10-13 19:10:50, 0000033a4def5f846b257391939bfcdce1034d14632416e66b52ac9be0540223, 866801068, 00000111d6dd82470d8ca5e19c0a54d97b40b5af26c1307ed80d09443bd6595f, 817:46:33.860260 army5, 2018-10-13 19:10:50, 00000111d6dd82470d8ca5e19c0a54d97b40b5af26c1307ed80d09443bd6595f, 2261971875, 00000a5101b3ac08f1bf9deba11ff2f1ed92c5b7681518fdcfde0967b998bc51, 917:46:33.860360 army10, 2018-10-13 19:10:50, 00000a5101b3ac08f1bf9deba11ff2f1ed92c5b7681518fdcfde0967b998bc51, 3226954379, 000007e3f9975d6831c19f2fceece30cd3e9002f78ba1fdb4d3896cebfe42199, 1017:46:33.861538 army12, 2018-10-13 19:10:50, 000007e3f9975d6831c19f2fceece30cd3e9002f78ba1fdb4d3896cebfe42199, 3965823104, 0000078a3660bb792ce5638adf513de053c5471b8509ed83511ff5e606ba4960, 1117:46:33.861685 --------------------------证明链结果--------------------------

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java8新特性(6)— 日期与时间

java8新特性(6)— 日期与时间 全新的日期与时间处理 package com.common.jdk8;import java.time.*;//Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理。 //在旧版的 Java 中,日期时间 API 存在诸多问题&#xff…

六、区块链主流共识算法浅析

转自:http://www.cocoachina.com/cms/wap.php?actionarticle&id22240。 一、概述: 1.工作量证明(Proof of Work): 通过所有节点的工作量竞争来达成一致。竞争的是运算力。 2.权益证明(Proof of S…

java8新特性(7)— Base64

java8新特性(7)— Base64 新增Base64工具类 package com.common.jdk8;import java.io.UnsupportedEncodingException; import java.util.Base64; import java.util.UUID;//在Java 8中,Base64编码已经成为Java类库的标准。 //Java 8 内置了 …

修改git历史提交的commit信息

本文是基于idea的操作,亲测可用 前言: 很多公司都会自定义 Git - 使用强制策略,那么他的commit信息就会有固定的格式,一旦不是这个格式,就会出现push失败 但是push失败,很多也只在dev和master分支做强制限…

七、区块链如何运用merkle tree验证交易真实性

转载自:https://www.tangshuang.net/4117.html 本文假设你已经知道区块链中merkle tree的原理,现在搞明白具体怎么来实现交易真实性验证。 Merkle Tree 这个小节简述一下merkle的原理。简单说,merkle tree就是一个hash二叉树,父…

idea端口占用解决记录

idea端口占用解决 每次占用,每次都要百度,路子很清晰了,记录下 报错:The port may already be in use or the connector may be misconfigured. 解决: 1.cmd 2.netstat -ano|findstr 你的端口号 举例:…

西安软件行业闲谈

尘埃落定,最终选择了西安 讲真,今年年初,就萌生了回西安的想法,毕竟北漂几年,该回了 当初还想着去上海两年,再去深圳两年,好好体验下各个一线城市的不同魅力 性格就是这样,不甘平凡…

消息队列(1):一个消息队列应该有的特点

消息队列常见场景 异步解耦 削峰填谷 日志收集分析 代替事务,最终一致 消息队列特点 消息队列之所以能异步,就是因为消息并不是实时处理的,那肯定会有一个存储消息,处理消息的地方,才能达到异步效果。 所以最简单的…

消息队列(2):常见的消息队列协议

协议很常见,只要是通信,就会用到协议,就像我们说话的语言一样,不同的语言连通着不同的人群。 所以说,消息队列也是一样,想要互相通信,就要使用同一种协议。 每个协议下的消息队列,都…

spingboot下shiro自定义过滤器roles

shiro默认的roles过滤,是与的关系,就是你的用户得有roles对应的所有角色,才算有权限。 但是实际开发过程中,更多的是或的需求,只要用户满足roles中的一个角色,就算有权限。 所以就涉及到重写过滤器roles&am…

shiro的集群动态权限更新

shiro的动态权限,一般都是将权限放在数据库中,项目启动后将权限加载给shiro 当数据库的权限数据发生改变时,重新加载权限给shiro。 单机这样做没问题,但是当项目服务是集群的时候,比如有tomcat1,tomcat2&am…

消息队列(3):RabbitMQ

RabbitMQ,基于AMQP协议实现。 特点: 消息可靠:持久化消息,传输确认,发布确认。 路由灵活:使用AMQP的Exchange来路由消息,包括RabbitMQ内置的Exchange,还有复杂的路由也可以使用多个…

java基础 --- Arrays.asList():返回指定数组支持的固定大小列表

Arrays.asList():返回指定数组支持的固定大小列表 首先看下这个方法的源码注释,注意第一句,Returns a fixed-size list backed by the specified array., 意思就是:返回指定数组支持的固定大小列表 所以:…

[设计模式] ------ 单例模式

单例模式,是众多设计模式中,写法最多,套路最多,坑最多,面试被问最多的设计模式。 基本上,单例模式在面试中已经被问烂了,依稀记得我的上家公司面试我的时候,说到设计模式&#xff0c…

分布式锁闲谈

分布式锁闲谈 前言 服务器单机情况下,要锁住某个资源,我们一般用到的是synchronized,lock等锁,这是java提供的,也确实能很有效的锁住资源。 但是在服务器集群的情况下,上面这些单机锁就不起作用了&#…

java 后端与前端Date类型与String类型互相转换(使用注解)

一:java 后端格式化输出Date类型的属性值到前端 后端返回的类型中,直接定义Date类型,加上此注解,直接将Date类型转成自定义的格式给前端 class TestDateOutput{JsonFormat(pattern "yyyy-MM-dd")private Date create…

spring boot配置对上传文件的大小限制

spring boot配置对上传文件的大小限制 spring-boot 2.0之前 Spring Boot1.4版本后配置更改为(默认单个文件最大1Mb,单次请求文件总数大小最大10Mb): spring.http.multipart.maxFileSize 20MB spring.http.multipart.maxRequestSize20MB spring-boot …

[设计模式] ------ 适配器模式

适配器把一个类的接口,强制变成另外一个类的接口实现。 个人建议,万不得已不要用适配器。但是,你一定要知道有这么个东西。 如果你的项目刚刚起步,就有人用了适配器,那基本上就是滥用。 适配器一般是项目庞大&#xff…

Notepad++中的UTF-8无BOM格式编码

Notepad中,关于utf-8的编码格式,有两种:以UTF-8无BOM格式编码和以UTF-8格式编码。 很容易给人一种错觉,第一反应会选择以UTF-8格式编码,感觉这种就是平时所说的UTF-8,然而这种编码是默认带BOM的&#xff0…

java 上传文件注意事项

java 上传文件注意事项 1、文件名有特殊字符的情况,所以最好是文件名前台url编码,后台再url解码,这点在下载的时候也一样 2、文件大小一定要设置,spring boot 有默认。 3、文件名校验: 3.1、文件后缀校验 3.2、conten…