มาสร้าง Blockchain ของเราเองกันเถอะ ( 2 ) , Mining

Mining ( ขุด ) คือกระบวนการสร้าง block. ใหม่ แล้วเพิ่มเข้าไปใน blockchain
มีขั้นตอนการทำงานดังต่อไปนี้
const nonce = bitcoin.proofOfWork(previousBlockHash, currentBlockData);
const blockHash = bitcoin.hashBlock(previousBlockHash, currentBlockData, nonce);
const newBlock = bitcoin.createNewBlock(nonce, previousBlockHash, blockHash);
เรามาดู code ของ function เหล่านี้กันดีกว่า
Blockchain.prototype.createNewBlock = function(nonce, previousBlockHash, hash) {
const newBlock = {
index: this.chain.length + 1,
timestamp: Date.now(),
transactions: this.pendingTransactions,
nonce: nonce,
hash: hash,
previousBlockHash: previousBlockHash
};
this.pendingTransactions = [];
this.chain.push(newBlock);
return newBlock;
};
Blockchain.prototype.hashBlock = function(previousBlockHash, currentBlockData, nonce) {
const dataAsString = previousBlockHash + nonce.toString() + JSON.stringify(currentBlockData);
const hash = sha256(dataAsString);
return hash;
};
Blockchain.prototype.proofOfWork = function(previousBlockHash, currentBlockData) {
let nonce = 0;
let hash = this.hashBlock(previousBlockHash, currentBlockData, nonce);
while (hash.substring(0, 4) !== '0000') {
nonce++;
hash = this.hashBlock(previousBlockHash, currentBlockData, nonce);
}
return nonce;
};
เราควรจะเริ่มดูที่ hashBlock function ซึ่งถูกเรียกใช้บ่อย function นี้ไม่มีอะไรซับซ้อนมาก แค่ทำการ hash ค่าของ previousBlockHash + nonce + currentBlockData ด้วย sha256
proofOfWork function คือการหา hash ที่ขึ้นต้นด้วย 0000 ให้เจอ เราจะเห็นว่า nonce คือตัวแปรที่เพิ่มค่าไปเรื่อยๆ ใน while loop เมื่อเราเจอ nonce ที่ถูกต้องแล้ว function ก็จะ return
const nonce = bitcoin.proofOfWork(previousBlockHash, currentBlockData);
const blockHash = bitcoin.hashBlock(previousBlockHash, currentBlockData, nonce);
const newBlock = bitcoin.createNewBlock(nonce, previousBlockHash, blockHash);
กลับมาดู code ที่พูดในตอนแรกจะเห็นได้ว่า createNewBlock เพียงแค่รับ parameter ที่ได้จาก output ของ proofOfWork และ hashBlock
Get in Touch with us
Related Posts
- SimpliMES Lite — 面向中国中小型制造企业的轻量化 MES 解决方案
- SimpliMES Lite — Lightweight MES for Small & Mid-Sized Manufacturers
- Nursing-Care Robots: How Open-Source Technology Is Powering the Future of Elderly Care
- 为什么中国大模型正在成为电商系统的新引擎?
- 为什么成功的线上卖家都选择 SimpliShop:打造、成长、并持续领先你的市场
- Why Successful Online Sellers Choose SimpliShop: Build, Grow, and Win Your Market
- AI 垂直整合:未来企业竞争力的核心引擎
- Vertical Integration of AI: The Next Breakthrough in Modern Business
- AI 预测系统 —— 让你的决策拥有「超级力量」
- AI Prediction Systems — Turn Your Decisions Into Superpowers
- 如果 AI 泡沫破裂,会发生什么?(现实、理性、不夸张的深度分析)
- If the AI Bubble Ends, What Will Actually Happen? (A Realistic, No-Hype Analysis)
- 深度学习 + 新闻情绪分析进行股票价格预测(完整实战指南)
- Using Deep Learning + News Sentiment to Predict Stock Prices (A Practical Guide)
- 用 AI 改造 COI 管理:真实工厂案例解析(Hybrid Rasa + LangChain)
- How AI Transforms COI Management: A Real Factory Use Case (Hybrid Rasa + LangChain)
- SimpliAgentic —— 新一代自律智能工厂,从这里开始
- SimpliAgentic — The Future of Autonomous Factory Automation Has Arrived
- 为什么理解 Android Internals(安卓内部机制)如此重要?——帮助企业打造高价值系统级服务
- Why Android Internals Matter — And the High-Value Services Your Business Can Build With Them













