java中的socket算法_GitHub - xiaohuiduan/pbft: pbft算法基于Socket的java实现
關(guān)于代碼介紹方法,可以去看我的博客。里面介紹了一些功能的實現(xiàn)思路和方法,以及使用到的一些庫的介紹。
使用方法
打包
首先在maven中更改jar包生成位置
然后使用命令生成jar包
mvn package
運行方法
在IDEA運行著將第二塊區(qū)域進行注釋(第一塊區(qū)域不要注釋),使用jar包運行則將第一塊區(qū)域進行注釋(第二塊區(qū)域不要注釋)
包運行方法
java -jar 包名 ip地址 端口號 序號 文件保存位置
ip地址和端口號代表節(jié)點作為server需要占用ip和端口號
序號:節(jié)點的序號,必須獨一無二
文件保存位置
例如:
java -jar oldpbft-jar-with-dependencies.jar 127.0.0.1 8080 0 C:\\Users\\XiaoHui\\Desktop\\data\\
因此,你可以在本機上運行多個節(jié)點(保證端口號和序號不同即可)。
在IDEA中運行的方法
首先配置啟動,允許多個main執(zhí)行
然后,每次啟動一個節(jié)點,更改 i 就可以啟動不同的節(jié)點。
int i = 0;
String ip = "127.0.0.1";
int port = 8080 + i;
StartConfig.basePath = "C:\\Users\\XiaoHui\\Desktop\\data\\";
int index = i;
注意點
程序會自動新建一個json文件,里面保存節(jié)點的ip信息,StartConfig.basePath代表json文件保存位置。
如果結(jié)束所有節(jié)點,然后重新啟動程序,需要將ip.json中的內(nèi)容全部刪除。(比如說你啟動了1節(jié)點,2節(jié)點,然后你關(guān)閉了這個程序,又想重新啟動1節(jié)點2節(jié)點就必須刪除),否則會報錯,如下圖所示:
只有主節(jié)點能夠發(fā)送消息,其他節(jié)點會發(fā)送消息失敗。如何想使用非主節(jié)點發(fā)送消息,可以去修改代碼。如下圖所示:將紅框內(nèi)的代碼注釋即可。
完成功能
實際上代碼完成的功能很少很少,就是完成了PBFT中的節(jié)點加入功能,然后還有消息發(fā)送PBFT認證功能,以及交易數(shù)據(jù)保存的功能****。其他的就emm沒有做。本人對區(qū)塊鏈也不是特別的了解,所以有些功能感覺實現(xiàn)起來的代碼怪怪的。
這個倉庫代碼大概率不會進行更新了,因為emmmmmm,考研去了。
考研結(jié)束,重新更新一波。
總結(jié)
以上是生活随笔為你收集整理的java中的socket算法_GitHub - xiaohuiduan/pbft: pbft算法基于Socket的java实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: phpstorm运行java项目_php
- 下一篇: JAVA链表返回子表_基于java的链表