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