ppblock 基于 Java 实现的区块链钱包开源项目

我要开发同款
阳建2018年07月14日
63阅读
开发技术Java
所属分类Web3、区块链
授权协议MIT

作品详情

 Java实现的一个简易区块链(联盟链)项目,包括加密工具,钱包,P2P传输,区块同步,网络共识等基础实现。它使用SpringBoot+Tio网络框架实现,是一个非常好的区块链学习项目,目前只实现了POW共识算法,如果要用于生产项目需要根据自己的项目需求修改共识。

项目架构主程序使用SpringBoot实现,P2P传输这块使用的是 t-io网络框架。

运行环境为JDK1.8以上版本。

项目模块blockj-base基础公共的工具包,如加密,区块,消息等数据模型,数据存储等。blockj-miner区块链主程序,如矿工,区块同步,P2P网络,RPCAPI等。blockj-client客户端命令行工具,主要就是调用Miner的相关API,用户跟链交互。快速开始创建一条链的操作流程如下:

创建创世节点(创建一个网络)启动创世节点(GenesisMiner)其他节点要加入网络的话,只需要以创世区块初始化Miner,然后再启动Miner即可。创建创世节点首先我们需要编译打包程序:

gitclonehttps://gitee.com/blackfox/blockj.gitcdblockjmvncleanpackage然后创建创世节点:

./minergenesis--repo=/data/genesis--enable-mining=true启动创世Miner:

./minerrun--repo=/data/genesis启动新Miner首先需要初始化miner,需要导入创世区块(genesis.car)来加入网络:

./minerinit--repo=/data/miner1--genesis=genesis.car--api.port=8002--p2p.port=3456启动Miner

./minerrun--repo=/data/miner1客户端使用查看钱包列表

./clientwalletlist#输出AddressBalanceNonce0x0d181310331612e107b5e0dfdf971cfb9de780bb80010x2505bf54f3a63848e44a105e8de599ad08ae8c58240000xb6258bc70240ee5daa213f671c08db51e50a4cbe5080030xcd3da3ec4195070e13a6d88b75101f6ceb427a8e00创建新钱包

#创建普通钱包./clientwalletnew0xb640636a77381b6589c78d58d629221131946dc#创建带助记词的钱包,可设置密码,生成keystore文件./clientwalletnew--mnemonic=true123456Mnemonicwords:rainfogcanalmatrixtonightinitialfrogwearfeelmovieworrywhisperAddress:0x42a8037f2876f649e08f7be6764b810e9a2f21da查询钱包余额

./clientwalletbalance0x2505bf54f3a63848e44a105e8de599ad08ae8c58#输出AddressBalance0x2505bf54f3a63848e44a105e8de599ad08ae8c582400转账

./clientchainsend--from=0x0d181310331612e107b5e0dfdf971cfb9de780bb0x2505bf54f3a63848e44a105e8de599ad08ae8c58123#输出Sendmessage,CID:05b6074241f1406cd1a68731d74cf612f55981692a3f4e5d9da01b13b4ee3631查看当前链高度

./clientchainheadChainhead:1217查看指定的链上消息

./clientchaingetMessage05b6074241f1406cd1a68731d74cf612f55981692a3f4e5d9da01b13b4ee3631#输出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'}查看指定高度的区块信息

./clientchaingetBlock1#输出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='MinerReward.',height=1,sign='304402202DF6EABBF5C81C41996C44F8E1230D44CAE8ADA9184B466D9B708ADC8B050225022049D74E4E99E0EA8E56208AD2E4B7B17C2320DC3E6461A17C94D1820818559CA9'}],blockSign='3046022100C04714C00642527AF6AA1DB2B537E5FD887F52999F66929AA2A928D4C6A4897A022100AF98888FDC825FFB0683E8D65494363790E5173F3991AF61AB86DEEFEAF15D81'} 查看当前网络中P2P节点列表

./clientnetpeers查看当前节点P2P连接信息

./clientnetlisten#P2P连接信息,用于被其他节点连接127.0.0.1:2345手动连接某个节点

./clientnetconnect192.22.33.11:3456
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论