
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
iblockchain
Advanced tools
npm install -g iblockchain
执行iblockchain 后 进入demo页面
Welcome to iblockchain !
Commands:
help [command...] Provides help for a given command.
exit Exits application.
mine 开始挖矿
blockchain 查看整个区块链 [bc]
pending 查看还没有打包进区块的交易
trans <to> <amount> 给人转账
blance [address] 查看地址的余额
pub 本地公钥(公钥就是地址)
prv 本地私钥
detail <index> 查看第n个区块的详情
peer 查看P2P网络节点
--------我是分割线--------
hash <value> [演示] 计算sha256哈希
minedemo <data> <difficulty> [演示] 挖矿计算逻辑
getpub <value> [演示] 根据私钥计算出公钥(私钥加密 公钥解密,公钥可以从私钥计算出来)
sign <value> <prv> [演示] 用私钥加密信息 得到签名
verify <value> <pub> <sig> [演示] 使用签名 校验信息 <消息> <公钥> <签名>
valid [演示] 区块链是否合法
update <index> [演示] 篡改<index>个block的数据,第一个转账信息amount+1
mineblock <index> [演示] 对<index>个上的区块数据重新挖矿,使其变成合法的小块块
iblockchain => [信息]: UDP服务监听完毕: 0.0.0.0:51881
[信息]: 更新本地区块链
iblockchain =>
// 继续输入命令 体验功能
查看整个区块链数据
iblockchain => blockchain
// output
┌────────────────────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┐
│ index │ previousHash │ timestamp │ data │ hash │ nonce │
├────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┤
│ 0 │ "0" │ 1538669227813 │ "Welcome to ibloc… │ "00000aa1fbf27775… │ 979911 │
├────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┤
│ 1 │ "00000aa1fbf27775… │ 1538988895613 │ [ │ "0000050c2b1b65a0… │ 69438 │
│ │ │ │ { │ │ │
│ │ │ │ "from": "0", │ │ │
│ │ │ │ "to": "0414b351… │ │ │
│ │ │ │ "amount": 100, │ │ │
│ │ │ │ "sig": "3046022… │ │ │
│ │ │ │ "timestamp": 15… │ │ │
│ │ │ │ } │ │ │
│ │ │ │ ] │ │ │
├────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┤
│ 2 │ "0000050c2b1b65a0… │ 1538988929584 │ [ │ "000001ee70cd40e8… │ 766700 │
│ │ │ │ { │ │ │
│ │ │ │ "from": "0", │ │ │
│ │ │ │ "to": "0429b0e2… │ │ │
│ │ │ │ "amount": 100, │ │ │
│ │ │ │ "sig": "3044022… │ │ │
│ │ │ │ "timestamp": 15… │ │ │
│ │ │ │ } │ │ │
│ │ │ │ ] │ │ │
└────────────────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┘
挖矿,新增区块 mine
iblockchain => mine
// output
[信息]: 挖矿结束 用时4.30s , 算了806180次, 哈希值是00000c3633bd15a4b2c45bbc9373658694b55c078de4777bec28e10cea9e53fd,入账100 请笑纳
┌────────────────────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┐
│ index │ previousHash │ timestamp │ nonce │ hash │ data │
├────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┤
│ 14 │ "00000b93ccf0c0b6… │ 1539017632369 │ 806180 │ "00000c3633bd15a4… │ [ │
│ │ │ │ │ │ { │
│ │ │ │ │ │ "from": "0", │
│ │ │ │ │ │ "to": "041ad79c… │
│ │ │ │ │ │ "amount": 100, │
│ │ │ │ │ │ "sig": "3045022… │
│ │ │ │ │ │ "timestamp": 15… │
│ │ │ │ │ │ } │
│ │ │ │ │ │ ] │
└────────────────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┘
查看本地地址(公钥) pub
iblockchain => pub
//output
041ad79cddfcc575efdae26e46e14a13c600967aff1db6d7eba66f770d585c542dfaed897f72b5bc40595f5601a868837f63bface539350ac6d013b99d17a0fbeb
转账 trans
iblockchain => trans 0446b3de736bca3db5e19a7db06e56851a0a45fd07bbf74a355ef91f480151ff9ee7720367b4010c525bada702df62c98768d6a34bdd066e69653ad92e8f99f065 20
//output
┌────────────────────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┐
│ from │ to │ amount │ sig │ timestamp │
├────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┤
│ "041ad79cddfcc575… │ "0446b3de736bca3d… │ 20 │ "3045022100804809… │ 1539017836747 │
└────────────────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┘
查看还没打包的交易 pending
iblockchain => pending
//output
┌────────────────────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┐
│ from │ to │ amount │ sig │ timestamp │
├────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┤
│ "041ad79cddfcc575… │ "0446b3de736bca3d… │ 20 │ "3045022100804809… │ 1539017836747 │
├────────────────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┤
│ "041ad79cddfcc575… │ "0446b3de736bca3d… │ 12 │ "30460221008b13a5… │ 1539017874219 │
└────────────────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┘
查看地址余额(默认本地)) blance
iblockchain => blance 041ad79cddfcc575efdae26e46e14a13c600967aff1db6d7eba66f770d585c542dfaed897f72b5bc40595f5601a868837f63bface539350ac6d013b99d17a0fbeb
{
"address": "041ad79cddfcc575efdae26e46e14a13c600967aff1db6d7eba66f770d585c542dfaed897f72b5bc40595f5601a868837f63bface539350ac6d013b99d17a0fbeb",
"blance": 168
}
┌────────────────────┬────────────────────┐
│ address │ blance │
├────────────────────┼────────────────────┤
│ "041ad79cddfcc575… │ 168 │
└────────────────────┴────────────────────┘
查看网络节点列表 peer
iblockchain => peer
//output
┌────────────────────┬────────────────────┐
│ port │ address │
├────────────────────┼────────────────────┤
│ 8001 │ "47.94.5.240" │
├────────────────────┼────────────────────┤
│ 8002 │ "42.56.89.132" │
├────────────────────┼────────────────────┤
│ 59838 │ "124.127.208.135" │
├────────────────────┼────────────────────┤
│ 27122 │ "123.114.48.94" │
└────────────────────┴────────────────────┘
帮助 help
iblockchain => help
计算sha256哈希 hash
iblockchain => hash imooc
//output
5401cc2e57b309427fd10963f8b8ee58545284e35bfba0e00780369307e54849
┌────────────────────┬────────────────────┐
│ hash │ value │
├────────────────────┼────────────────────┤
│ "5401cc2e57b30942… │ "imooc" │
└────────────────────┴────────────────────┘
演示挖矿逻辑 minedemo
iblockchain => minedemo imooc 2
// output
[信息] 数据是 imooc0 哈希值是25c771cbd916307a0417ebf4f8a705e8319bb100c93db4cde74f4fbca7da54d6
[信息] 数据是 imooc1 哈希值是3b8368f43662598160ade6788b0504d789700c59574613c3dffb8b467aab8d5f
[信息] 数据是 imooc2 哈希值是f3cf53d3b2d6f83ac857e8e018ee4bbd78c1fdd5d96660b20116d2bc6a4e281e
...省略很多条
[信息] 数据是 imooc248 哈希值是e6e8c271edec6c1b6f2b4bfa9725fecc0fe50356dcec47766440da2e29837e88
[信息] 数据是 imooc249 哈希值是d1e79e718588ae125252d88c4a373934ebab3a9b1015f50d89329a151b78e406
[信息] 数据是 imooc250 哈希值是008781ebdfdff9e1660841b4ab159f2cb6c3fca3217865366c30a1912d620cc5
根据私钥算出公钥 getpub
iblockchain => getpub imooc
私钥imooc计算出的公钥 04c8d1d62200e93e7bbf4b0c65da66d343656a6aebd51c146ed60f9dbbe39a4beededb5bbeeb1660269695d5a6959470c411c07545952e93f80460e76e31fcdde0
RSA私钥加密 sign
// 字符imooc作为私钥 对信息imoocrocks进行签名
iblockchain => sign imoocrocks imooc
签名 304402206cc8d37c9e9ac3d679267aa0203550e04e7bb7ee6ba3f6c2193b597aa9bdaa58022029e54e94065c2a377a7632bdda0f51b6bd8e28c8667568459b2329683deb8db8
RSA公钥验证签名 verify
iblockchain => verify imoocrocks 04c8d....dde0 3044....8db8
true
校验区块链是否合法 valid
iblockchain => valid
校验结果: true
篡改blockchain交易数据 update
iblockchain => update 16
修改了 转账金额从20=>21
iblockchain => valid
[错误]: 第 16个区块hash不对,算出的是b2f20b3bde5fe69ab5d5092f50222ea57c980902d4709de19563e2e797759efd 区块里本来的hash是000001b0538910078e426c2989d561a4f715ab11838545ce4efe7838754f5fef 看来数据被篡改了
[错误]: 第16个区块不合法
校验结果: false
重新对一个区块挖矿修复 mineblock
iblockchain => mineblock 16
[错误]: 第 16个区块hash不对,算出的是b2f20b3bde5fe69ab5d5092f50222ea57c980902d4709de19563e2e797759efd 区块里本来的hash是000001b0538910078e426c2989d561a4f715ab11838545ce4efe7838754f5fef 看来数据被篡改了
[信息]: 区块16修复完毕
退出 exit
iblockchain => exit
[信息]: 网络一线牵,珍惜这段缘 再见
[信息]: 交易合法 新增一下 { from: '0444d....bcf1'
[信息]: 挖矿结束 用时0.50s , 算了69438次, 哈希值是0000050c2b1b65a01659e85a17dfc3ad96fe8548dfaf694ff88ae478832ac37d,入账100 请笑纳
[信息]: 大家快去和新朋友打个招呼
[信息]: 有人挖矿成功,我们恭喜这位幸运儿
....
大家可以加我微信
或者直接捐赠
MIT
FAQs
Learn blockchain by building one in node.js
The npm package iblockchain receives a total of 2 weekly downloads. As such, iblockchain popularity was classified as not popular.
We found that iblockchain demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.