依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

【好消息,好消息,好消息】VIP会员可以发表文章赚积分啦 !
查看: 106|回复: 0

Java 实现的一个简易区块链(联盟链)项目,包括加密工具,钱包,P2P 传输,区块同步,网络共识等基础实现。

[复制链接] 主动推送

1万

主题

1万

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
15435
发表于 2025-4-9 10:31:14 | 显示全部楼层 |阅读模式
一个简易区块链(联盟链)项目,基础区块链(联盟链)项目,实现了包括加密工具,钱包,P2P 传输,区块同步,POW 共识等基础区块链功能。
它使用 SpringBoot + Tio 网络框架实现,是一个非常好的区块链学习项目,目前只实现了 POW 共识算法,如果要用于生产项目需要根据自己的项目需求修改共识。
项目架构
主程序使用 SpringBoot 实现, P2P 传输这块使用的是 t-io 网络框架(附件中包含)
运行环境为 JDK1.8 以上版本。
项目模块
  • base 基础公共的工具包,如加密,区块,消息等数据模型,数据存储等。
  • miner 区块链主程序,如矿工,区块同步,P2P 网络,RPC API 等。
  • client 客户端命令行工具,主要就是调用 Miner 的相关 API,用户跟链交互。
快速开始
创建一条链的操作流程如下:
  • 创建创世节点(创建一个网络)
  • 启动创世节点(Genesis Miner)
  • 其他节点要加入网络的话,只需要以创世区块初始化 Miner,然后再启动 Miner 即可。
创建创世节点
首先我们需要编译打包程序:
  1. mvn clean package
复制代码
然后创建创世节点:
  1. ./miner genesis --repo=/data/genesis --enable-mining=true
复制代码
启动创世 Miner:
  1. ./miner run --repo=/data/genesis
复制代码
启动新 Miner
首先需要初始化 miner,需要导入创世区块(genesis.car)来加入网络:
  1. ./miner init --repo=/data/miner1 --genesis=genesis.car --api.port=8002 --p2p.port=3456
复制代码
启动 Miner
  1. ./miner run --repo=/data/miner1
复制代码
客户端使用
  • 查看钱包列表
    1. ./client wallet list
    2. # 输出
    3. Address                                      Balance        Nonce

    4. 0x0d181310331612e107b5e0dfdf971cfb9de780bb   800               1
    5. 0x2505bf54f3a63848e44a105e8de599ad08ae8c58   2400              0
    6. 0xb6258bc70240ee5daa213f671c08db51e50a4cbe   50800             3
    7. 0xcd3da3ec4195070e13a6d88b75101f6ceb427a8e   0                 0
    复制代码

  • 创建新钱包
    1. # 创建普通钱包
    2. ./client wallet new
    3. 0xb640636a77381b6589c78d58d629221131946dc
    4. # 创建带助记词的钱包,可设置密码,生成 keystore 文件
    5. ./client wallet new --mnemonic=true 123456

    6. Mnemonic words: rain fog canal matrix tonight initial frog wear feel movie worry whisper
    7. Address: 0x42a8037f2876f649e08f7be6764b810e9a2f21da
    复制代码

  • 查询钱包余额
    1. ./client wallet balance 0x2505bf54f3a63848e44a105e8de599ad08ae8c58
    2. # 输出
    3. Address                                      Balance
    4. 0x2505bf54f3a63848e44a105e8de599ad08ae8c58   2400
    复制代码

  • 转账
    1. ./client chain send --from=0x0d181310331612e107b5e0dfdf971cfb9de780bb 0x2505bf54f3a63848e44a105e8de599ad08ae8c58 123
    2. # 输出
    3. Send message, CID: 05b6074241f1406cd1a68731d74cf612f55981692a3f4e5d9da01b13b4ee3631
    复制代码

  • 查看当前链高度
    1. ./client chain head
    2. Chain head: 1217
    复制代码

  • 查看指定的链上消息
    1. ./client chain getMessage 05b6074241f1406cd1a68731d74cf612f55981692a3f4e5d9da01b13b4ee3631
    2. # 输出
    3. Message{version=1, from='0x0d181310331612e107b5e0dfdf971cfb9de780bb', to='0x2505bf54f3a63848e44a105e8de599ad08ae8c58', value=123, timestamp=1672826743640, pubKey='PZ8Tyr4Nx8MHsRAGMpZmZ6TWY63dXWSCw5EXe33S25zZDT25sNYu1bjtBfaCwEGSgnGhJiE31fCfDsyE3pNFw7cC87VfQZQqiEdntMmztfpiDcRe1gv3aJJ4', cid='05b6074241f1406cd1a68731d74cf612f55981692a3f4e5d9da01b13b4ee3631', status=APPENDING, nonce=2, params='null', height=0, sign='30460221009A8B2750A6D986EB926B67163B740BBACDD07FE2D87F8FA9AE2F08424989477602210082C1C36EAEEC6367C023847F995291873F305B867E9B65A5C68ED8A4293DB890'}
    复制代码

  • 查看指定高度的区块信息
    1. ./client chain getBlock 1
    2. # 输出
    3. Block{header=BlockHeader{height=1, difficulty=28269553036454149273332760011886696253239742350009903329945699220681916416, nonce=703, createTime=1672813674, hash='0004c262f7ead28cc66c9336d7a8335cb8fea5a06b0b1fd7488c3c9b140987cc', previousHash='ed5126ddd65f39a17739b8e26ea3edecfff6bf196148dc259d9a3eddeefc23d5'}, messages=[Message{version=0, from='B099', to='0xb6258bc70240ee5daa213f671c08db51e50a4cbe', value=50, timestamp=1672813674163, pubKey='PZ8Tyr4Nx8MHsRAGMpZmZ6TWY63dXWSD1ErKp8AqSj4Ph9Jsj2Gvk7w1pyLgqDRiguC7JvjeGZJZ1si1qRYCAsVmu1UvYRqvhiCBgYDpmyuWK5VzD5KK4RNY', cid='3e1f8987b0d66b2de155e78aeef6984ab7cb6c3acdf03c835c01f4b4088fb90d', status=SUCCESS, nonce=0, params='Miner Reward.', height=1, sign='304402202DF6EABBF5C81C41996C44F8E1230D44CAE8ADA9184B466D9B708ADC8B050225022049D74E4E99E0EA8E56208AD2E4B7B17C2320DC3E6461A17C94D1820818559CA9'}], blockSign='3046022100C04714C00642527AF6AA1DB2B537E5FD887F52999F66929AA2A928D4C6A4897A022100AF98888FDC825FFB0683E8D65494363790E5173F3991AF61AB86DEEFEAF15D81'}
    复制代码

  • 查看当前网络中 P2P 节点列表
    1. ./client net peers
    复制代码

  • 查看当前节点 P2P 连接信息
    1. ./client net listen
    2. # P2P 连接信息,用于被其他节点连接
    3. 127.0.0.1:2345
    复制代码

  • 手动连接某个节点

  1. ./client net connect 192.22.33.11:3456
复制代码

TODOLIST
  • blockj-miner api 实现
  • 消息同步和打包
  • blockj-client(客户端)功能实现:网络,钱包,转账
  • 文档完善




链接:https://pan.quark.cn/s/13a6742a15ad
提取码下载:
文件名称:提取码下载.txt 
下载次数:0  文件大小:16 Bytes  售价:49金钱 [记录]
下载权限: 不限 [购买VIP]   [充值]   [在线充值]   【VIP会员6折;永久VIP4折】
安全检测,请放心下载





相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员6折;永久VIP4折
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2025-4-30 10:51

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表