<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    ppblock基于 Java 實(shí)現(xiàn)的區(qū)塊鏈錢包

    聯(lián)合創(chuàng)作 · 2023-09-18 15:38

     Java 實(shí)現(xiàn)的一個(gè)簡(jiǎn)易區(qū)塊鏈(聯(lián)盟鏈)項(xiàng)目,包括加密工具,錢包,P2P 傳輸,區(qū)塊同步,網(wǎng)絡(luò)共識(shí)等基礎(chǔ)實(shí)現(xiàn)。 它使用 SpringBoot + Tio 網(wǎng)絡(luò)框架實(shí)現(xiàn),是一個(gè)非常好的區(qū)塊鏈學(xué)習(xí)項(xiàng)目,目前只實(shí)現(xiàn)了 POW 共識(shí)算法,如果要用于生產(chǎn)項(xiàng)目需要根據(jù)自己的項(xiàng)目需求修改共識(shí)。

    項(xiàng)目架構(gòu)

    主程序使用 SpringBoot 實(shí)現(xiàn), P2P 傳輸這塊使用的是 t-io 網(wǎng)絡(luò)框架。

    運(yùn)行環(huán)境為 JDK1.8 以上版本。

    項(xiàng)目模塊

    • blockj-base 基礎(chǔ)公共的工具包,如加密,區(qū)塊,消息等數(shù)據(jù)模型,數(shù)據(jù)存儲(chǔ)等。
    • blockj-miner 區(qū)塊鏈主程序,如礦工,區(qū)塊同步,P2P 網(wǎng)絡(luò),RPC API 等。
    • blockj-client 客戶端命令行工具,主要就是調(diào)用 Miner 的相關(guān) API,用戶跟鏈交互。

    快速開始

    創(chuàng)建一條鏈的操作流程如下:

    1. 創(chuàng)建創(chuàng)世節(jié)點(diǎn)(創(chuàng)建一個(gè)網(wǎng)絡(luò))
    2. 啟動(dòng)創(chuàng)世節(jié)點(diǎn)(Genesis Miner)
    3. 其他節(jié)點(diǎn)要加入網(wǎng)絡(luò)的話,只需要以創(chuàng)世區(qū)塊初始化 Miner,然后再啟動(dòng) Miner 即可。

    創(chuàng)建創(chuàng)世節(jié)點(diǎn)

    首先我們需要編譯打包程序:

    git clone https://gitee.com/blackfox/blockj.git
    cd blockj
    mvn clean package
    

    然后創(chuàng)建創(chuàng)世節(jié)點(diǎn):

    ./miner genesis --repo=/data/genesis --enable-mining=true
    

    啟動(dòng)創(chuàng)世 Miner:

    ./miner run --repo=/data/genesis
    

    啟動(dòng)新 Miner

    首先需要初始化 miner,需要導(dǎo)入創(chuàng)世區(qū)塊(genesis.car)來加入網(wǎng)絡(luò):

    ./miner init --repo=/data/miner1 --genesis=genesis.car --api.port=8002 --p2p.port=3456
    

    啟動(dòng) Miner

    ./miner run --repo=/data/miner1
    

    客戶端使用

    1. 查看錢包列表

      ./client wallet list
      # 輸出
      Address                                      Balance        Nonce
      
      0x0d181310331612e107b5e0dfdf971cfb9de780bb   800               1
      0x2505bf54f3a63848e44a105e8de599ad08ae8c58   2400              0
      0xb6258bc70240ee5daa213f671c08db51e50a4cbe   50800             3
      0xcd3da3ec4195070e13a6d88b75101f6ceb427a8e   0                 0
      
    2. 創(chuàng)建新錢包

      # 創(chuàng)建普通錢包
      ./client wallet new
      0xb640636a77381b6589c78d58d629221131946dc
      # 創(chuàng)建帶助記詞的錢包,可設(shè)置密碼,生成 keystore 文件
      ./client wallet new --mnemonic=true 123456
      
      Mnemonic words: rain fog canal matrix tonight initial frog wear feel movie worry whisper
      Address: 0x42a8037f2876f649e08f7be6764b810e9a2f21da
      
    3. 查詢錢包余額

      ./client wallet balance 0x2505bf54f3a63848e44a105e8de599ad08ae8c58
      # 輸出
      Address                                      Balance
      0x2505bf54f3a63848e44a105e8de599ad08ae8c58   2400
      
    4. 轉(zhuǎn)賬

      ./client chain send --from=0x0d181310331612e107b5e0dfdf971cfb9de780bb 0x2505bf54f3a63848e44a105e8de599ad08ae8c58 123
      # 輸出
      Send message, CID: 05b6074241f1406cd1a68731d74cf612f55981692a3f4e5d9da01b13b4ee3631
      
    5. 查看當(dāng)前鏈高度

      ./client chain head
      Chain head: 1217
      
    6. 查看指定的鏈上消息

      ./client chain getMessage 05b6074241f1406cd1a68731d74cf612f55981692a3f4e5d9da01b13b4ee3631
      # 輸出
      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'}
      
    7. 查看指定高度的區(qū)塊信息

      ./client chain getBlock 1
      # 輸出
      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'}
       
    8. 查看當(dāng)前網(wǎng)絡(luò)中 P2P 節(jié)點(diǎn)列表

      ./client net peers
      
    9. 查看當(dāng)前節(jié)點(diǎn) P2P 連接信息

      ./client net listen
      # P2P 連接信息,用于被其他節(jié)點(diǎn)連接
      127.0.0.1:2345
      
    10. 手動(dòng)連接某個(gè)節(jié)點(diǎn)

    ./client net connect 192.22.33.11:3456
    瀏覽 42
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    編輯 分享
    舉報(bào)
    評(píng)論
    圖片
    表情
    推薦
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    編輯 分享
    舉報(bào)

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    日韩伊人网 | 欧美日韩在线免费看 | 无码视频播放 | 色偷偷久久一区二区三区 - 百度 涩小说校园春色图片区视频区小说区 | 另类稀缺 交在线观看 |