Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

xiaohuiduan/pbft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

25 Commits

Repository files navigation

关于代码介绍方法,可以去看我的博客。里面介绍了一些功能的实现思路和方法,以及使用到的一些库的介绍。

使用方法

打包

首先在maven中更改jar包生成位置

然后使用命令生成jar包

mvn package

运行方法

IDEA运行着将第二块区域进行注释(第一块区域不要注释),使用jar包运行则将第一块区域进行注释(第二块区域不要注释)

包运行方法

java -jar 包名 ip地址 端口号 序号 文件保存位置
  • ip地址和端口号代表节点作为server需要占用ip和端口号
  • 序号:节点的序号,必须独一无二
  • 文件保存位置

例如:

java -jar oldpbft-jar-with-dependencies.jar 127.0.0.1 8080 0 C:\\Users\\XiaoHui\\Desktop\\data\\

因此,你可以在本机上运行多个节点(保证端口号和序号不同即可)。

在IDEA中运行的方法

首先配置启动,允许多个main执行

然后,每次启动一个节点,更改 i 就可以启动不同的节点。

int i = 0;
String ip = "127.0.0.1";
int port = 8080 + i;
StartConfig.basePath = "C:\\Users\\XiaoHui\\Desktop\\data\\";
int index = i;

注意点

  1. 程序会自动新建一个json文件,里面保存节点的ip信息,StartConfig.basePath代表json文件保存位置。

  2. 如果结束所有节点,然后重新启动程序,需要将ip.json中的内容全部删除。(比如说你启动了1节点,2节点,然后你关闭了这个程序,又想重新启动1节点2节点就必须删除),否则会报错,如下图所示:

  3. 只有主节点能够发送消息,其他节点会发送消息失败。如何想使用非主节点发送消息,可以去修改代码。如下图所示:将红框内的代码注释即可。

完成功能

实际上代码完成的功能很少很少,就是完成了PBFT中的节点加入功能,然后还有消息发送PBFT认证功能,以及交易数据保存的功能**<只写了函数,需要自己去调用>**。其他的就emm没有做。本人对区块链也不是特别的了解,所以有些功能感觉实现起来的代码怪怪的。

这个仓库代码大概率不会进行更新了,因为emmmmmm,考研去了。

考研结束,重新更新一波。

About

pbft算法基于Socket的java实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /