Skip to content

bybywudi/blockChain_Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

blockChain_Server

区块链中心服务器的JAVA实现 服务端:一个servlet负责用httpURLconnenct接收请求,请求参数为一个数字,是客户端计算出的hash值,和其余信息。然后服务端读取xml文件的最后一个值,并且计算hash是不是当前参数的值,如果是,则将当前值所包含的所有信息添加到xml文件的最后一个节点,如果不是,则通知客户端未同步,并强制客户端同步数据。 客户端:不需要成为一个公网服务器,只需要安装Tomcat,哈希的计算在客户端本地进行,中心服务器负责进行验证,所以客户端无法在区块信息上作弊。

中心服务器:要求成为一个公网服务器,有固定的公网IP地址,有足够大的容量,计算能力和带宽。 中心服务器奖励:每次为客户端添加一个区块后,为该客户端服务的中心服务器会获得一定的奖励,并广播到所有节点上。 中心服务器信誉:每次为客户端添加区块,或者客户端要求添加区块后,都会对所有的中心服务器进行一次区块对比操作,选择随机的两个区块,测试该区块以及该区块前后两个区块的哈希,这样,大部分中心服务器的区块信息都是一样的,如果出现有中心服务器对哈希进行篡改,则认为该服务器信誉程度下降,给予扣除一定的信誉值并广播到所有节点。信誉值过低的服务器的IP会自动的被踢出网络,并进入网络黑名单,其所有的账户会被封锁。

要想重新改写整个区块的网络,必须同时控制百分之90以上的中心服务器,并同时修改数据为一致。 应对网络攻击:每次中心服务器同步的时候,需要百分之九十以上的中心服务器数据是同步的,如果不满足这个条件,就需要中心服务器去找用户节点同步数据。如果用户开启了区块备份功能,则会在中心服务器记住一份相应的用户地址,并通过多个用户节点进行同步,等所有的中心服务器同步完成后,然后在中心服务器网络中继续同步。开启了数据备份的用户,每次被中心服务器使用备份都可以获得一定的奖励。

About

区块链中心服务器的JAVA实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages