วิธีสร้าง Blockchain Cryptocurrency อย่างง่ายใน Node.js
เผยแพร่แล้ว: 2022-03-10smashingCoin
โดยใช้แนวคิดของคลาส JavaScript และ Node.js ลองใช้เลย ง่ายกว่าที่คุณคิด!การเพิ่มขึ้นของ cryptocurrencies อย่างไม่เคยปรากฏมาก่อนและเทคโนโลยี blockchain ที่สนับสนุนได้ทำให้โลกนี้ล่มสลาย - จากจุดเริ่มต้นที่ต่ำต้อยของการเป็นแนวคิดทางวิชาการเมื่อกว่าทศวรรษที่แล้วไปจนถึงการยอมรับที่เพิ่มขึ้นในอุตสาหกรรมต่างๆ
เทคโนโลยีบล็อคเชนได้รับความสนใจอย่างมากเนื่องจากความสามารถในการปรับปรุงความปลอดภัยในสภาพแวดล้อมที่ไม่น่าเชื่อถือ บังคับใช้การกระจายอำนาจ และทำให้กระบวนการมีประสิทธิภาพ
ตามเนื้อผ้า Python เป็นภาษาการเขียนโปรแกรมโดยพฤตินัยสำหรับการพัฒนาบล็อคเชน อย่างไรก็ตาม ด้วยการแพร่หลายของเทคโนโลยีที่น่าทึ่งนี้ ตัวเลือกการพัฒนาก็เพิ่มขึ้นเช่นกัน และ Node.js ก็ไม่ได้ถูกทิ้งไว้ข้างหลัง
ในบทช่วยสอนนี้ ฉันจะพูดถึงวิธีสร้างบล็อคเชนสกุลเงินดิจิทัลอย่างง่ายใน Node.js มันจะไม่หรูหราเกินไป แต่เพียงพอที่จะช่วยให้คุณเข้าใจว่าบล็อกเชนทำงานอย่างไร
ฉันจะเรียกสกุลเงินดิจิตอลนี้ว่า smashingCoin
ง่ายๆ
หากคุณเป็นนักพัฒนา JavaScript ที่ต้องการก้าวกระโดดเข้าสู่วงการคริปโตเคอเรนซี (cryptocurrency) ที่กำลังเติบโต บทความนี้จะช่วยให้คุณมีทักษะที่จำเป็นในการเริ่มต้น หรือหากคุณสงสัยว่าสิ่งต่าง ๆ ทำงานอย่างไรในโลกของสกุลเงินดิจิทัล บทช่วยสอนนี้อาจช่วยคุณตอบคำถามบางข้อของคุณได้
การอ่านที่แนะนำ : การ ทำความเข้าใจ Subresource Integrity โดย Drew McLellan
ข้อกำหนดเบื้องต้น
เพื่อทำตามบทช่วยสอนนี้ให้สำเร็จ คุณจะต้องมีสิ่งต่อไปนี้:
- Node.js ที่ติดตั้งบนเครื่องของคุณ คุณสามารถดาวน์โหลดได้จากที่นี่;
- โปรแกรมแก้ไขโค้ด เช่น Visual Studio Code, Sublime Text หรืออื่นๆ
มาเริ่มกันเลย…
Blockchain คืออะไร?
Blockchain เป็นเทคโนโลยีที่ขับเคลื่อนสกุลเงินดิจิทัล เช่น Bitcoin และ Ethereum เป็นเทคโนโลยีบัญชีแยกประเภทสาธารณะที่เป็นนวัตกรรมใหม่ที่รักษารายการบันทึกที่เพิ่มขึ้นอย่างต่อเนื่อง เรียกว่าบล็อก ซึ่งเชื่อมต่ออย่างปลอดภัยโดยใช้การเข้ารหัส
คำว่า blockchain ได้ชื่อมาจากลักษณะที่เก็บข้อมูลการทำธุรกรรม เช่น ใน บล็อก ที่เชื่อมต่อถึงกันเพื่อสร้าง ห่วงโซ่ ขนาดของบล็อคเชนจะเพิ่มขึ้นตามจำนวนธุรกรรมที่เพิ่มขึ้น
ข้อมูลธุรกรรมที่ถูกต้องใดๆ จะถูกบันทึกลงในเครือข่ายบล็อคเชน ซึ่งควบคุมโดยกฎเพียร์ทูเพียร์ที่ผู้เข้าร่วมกำหนด ตัวอย่างเช่น ข้อมูลนี้อาจประกอบด้วย "มูลค่า" ของบล็อก เช่น ในสกุลเงินดิจิทัล บันทึกธุรกรรม (เช่น เมื่อฝ่ายต่างๆ แลกเปลี่ยนสินค้าและบริการ) หรือสิทธิ์ในการให้สิทธิ์ เช่น เมื่อเครือบันทึกข้อมูลการเป็นเจ้าของ
นอกจากข้อมูลธุรกรรมแล้ว ทุกบล็อกอาจมีแฮชเข้ารหัสของตัวเอง (ตัวระบุที่ไม่ซ้ำกันหรือรอยเท้าดิจิทัล) ค่า nonce ของตัวเอง (ตัวเลขสุ่มแบบสุ่มที่ใช้ครั้งเดียวในการคำนวณแบบเข้ารหัส) แฮชของบล็อกก่อนหน้า และการประทับเวลาของล่าสุด ธุรกรรมที่รับรองความถูกต้อง
เนื่องจากทุกบล็อกใหม่ควรชี้ไปที่บล็อกก่อนหน้า หากบล็อกถูกรวมเข้ากับเชนโดยไม่มีแฮชที่ถูกต้องของบล็อกสุดท้าย บล็อกนั้นอาจทำให้บล็อกเชนทั้งหมดไม่ถูกต้อง คุณสมบัติที่ไม่เปลี่ยนรูปนี้เป็นกุญแจสำคัญในการรักษาความปลอดภัยของบล็อคเชน
นอกจากนี้ มักจะใช้โปรโตคอลฉันทามติประเภทต่างๆ เพื่อรักษาความถูกต้องของบล็อกเชน ฉันทามติช่วยให้มั่นใจว่าผู้เข้าร่วมทุกคนเห็นด้วยกับธุรกรรมที่ตรวจสอบโดยเครือข่าย
ตัวอย่างเช่น โปรโตคอลฉันทามติที่ใช้กันทั่วไปคือการพิสูจน์การทำงาน ซึ่งมีจุดมุ่งหมายเพื่อระบุตัวเลขที่ค้นหาวิธีแก้ไขปัญหาทางคณิตศาสตร์ที่ซับซ้อนหลังจากเสร็จสิ้นการคำนวณจำนวนหนึ่ง
แนวคิดหลักของงานการพิสูจน์คือผู้เข้าร่วมในเครือข่ายบล็อคเชนควรพบว่าหมายเลขนี้ระบุได้ยาก แต่ตรวจสอบได้ง่าย ดังนั้นจึงกีดกันการสแปมและการปลอมแปลงโครงสร้างของบล็อคเชน
ในกรณีของ cryptocurrencies ส่วนใหญ่ การเพิ่มบล็อคใหม่ให้กับบล็อคเชนนั้นต้องการการแก้สมการทางคณิตศาสตร์ที่ซับซ้อน ซึ่งจะเพิ่มความยากเมื่อเวลาผ่านไปเมื่อบล็อคเชนเติบโตขึ้น ดังนั้น บุคคลใดก็ตามที่พิสูจน์ว่าพวกเขาได้ทำงานโดยการแก้ปัญหานี้จะได้รับการชดเชยด้วยสกุลเงินดิจิทัล ในกระบวนการที่เรียกว่า "การขุด"
วิธีการสร้างบล็อก
หลังจากที่ได้แนะนำเทคโนโลยีบล็อคเชนและวิธีการทำงานแล้ว มาดูกันว่าเราจะนำแนวคิดไปประยุกต์ใช้ในการสร้างบล็อคได้อย่างไร ดังที่ได้กล่าวไว้ก่อนหน้านี้ บล็อคเป็นสิ่งที่เชื่อมโยงถึงกันเพื่อสร้างบล็อคเชน
ในการสร้างสกุลเงิน smashingCoin
ฉันจะใช้คลาส JavaScript ซึ่งเปิดตัวใน ES6
พร้อม?
มาล้างมือกันเถอะ…
นี่คือรหัสสำหรับคลาส CryptoBlock
:
const SHA256 = require('crypto-js/sha256'); class CryptoBlock{ constructor(index, timestamp, data, precedingHash=" "){ this.index = index; this.timestamp = timestamp; this.data = data; this.precedingHash = precedingHash; this.hash = this.computeHash(); } computeHash(){ return SHA256(this.index + this.precedingHash + this.timestamp + JSON.stringify(this.data)).toString(); } }
ดังที่คุณเห็นในโค้ดด้านบน ฉันได้สร้างคลาส CryptoBlock
และเพิ่มเมธอด constructor()
เข้าไป เช่นเดียวกับที่ทำในคลาส JavaScript อื่นๆ จากนั้น เพื่อเริ่มต้นคุณสมบัติของมัน ฉันได้กำหนดพารามิเตอร์ต่อไปนี้ให้กับเมธอดตัว constructor
:
index | เป็นหมายเลขเฉพาะที่ติดตามตำแหน่งของทุกบล็อกในบล็อกเชนทั้งหมด |
timestamp | มันเก็บบันทึกเวลาที่เกิดขึ้นของการทำธุรกรรมแต่ละครั้งที่เสร็จสมบูรณ์ |
data | ให้ข้อมูลเกี่ยวกับธุรกรรมที่เสร็จสมบูรณ์ เช่น รายละเอียดผู้ส่ง รายละเอียดผู้รับ และปริมาณที่ทำธุรกรรม |
precedingHash | มันชี้ไปที่แฮชของบล็อกก่อนหน้าในบล็อคเชน ซึ่งเป็นสิ่งสำคัญในการรักษาความสมบูรณ์ของบล็อคเชน |
นอกจากนี้ ฉันใช้วิธี computeHash
เพื่อคำนวณแฮชของบล็อกตามคุณสมบัติของบล็อก ตามที่ระบุในข้อมูลด้านบน
อย่างที่คุณเห็น ฉันนำเข้าไลบรารี JavaScript ของ crypto-js และใช้โมดูล crypto-js/sha256
เพื่อคำนวณแฮชของแต่ละบล็อก เนื่องจากโมดูลส่งคืนวัตถุตัวเลข ฉันจึงใช้วิธี toString()
เพื่อแปลงเป็นสตริง
หากต้องการเพิ่มไลบรารี่ crypto-js ให้กับโปรเจ็กต์ของคุณ ให้ไปที่เทอร์มินัลแล้วรันคำสั่งต่อไปนี้เพื่อติดตั้งโดยใช้ npm
:
npm install --save crypto-js
หลังจากรันคำสั่งข้างต้น ไดเร็กทอรีโหนดโมดูลซึ่งมีไลบรารีและไฟล์ที่จำเป็นอื่นๆ จะถูกเพิ่มลงในโฟลเดอร์ของโปรเจ็กต์ของคุณ
วิธีสร้างบล็อคเชน
ตามที่ได้อธิบายไว้ก่อนหน้านี้ เทคโนโลยีบล็อคเชนมีพื้นฐานมาจากแนวคิดที่ว่าบล็อคทั้งหมดถูกเชื่อมโยงเข้าด้วยกัน ดังนั้น มาสร้างคลาส CryptoBlockchain
ที่จะรับผิดชอบในการจัดการการดำเนินงานของห่วงโซ่ทั้งหมด นี่คือที่ที่ยางกำลังจะไปบรรจบกับถนน
คลาส CryptoBlockchain
จะรักษาการทำงานของบล็อคเชนโดยใช้วิธีตัวช่วยที่ทำงานต่าง ๆ ให้สำเร็จ เช่น การสร้างบล็อกใหม่และเพิ่มลงในเชน
นี่คือรหัสสำหรับคลาส CryptoBlockchain
:
class CryptoBlockchain{ constructor(){ this.blockchain = [this.startGenesisBlock()]; } startGenesisBlock(){ return new CryptoBlock(0, "01/01/2020", "Initial Block in the Chain", "0"); } obtainLatestBlock(){ return this.blockchain[this.blockchain.length - 1]; } addNewBlock(newBlock){ newBlock.precedingHash = this.obtainLatestBlock().hash; newBlock.hash = newBlock.computeHash(); this.blockchain.push(newBlock); } }
ให้ฉันพูดถึงบทบาทของแต่ละวิธีช่วยเหลือที่ประกอบเป็นคลาส CryptoBlockchain
1. วิธีการสร้าง
วิธีนี้จะสร้างอินสแตนซ์ของบล็อกเชน ภายในตัวสร้าง ฉันสร้างคุณสมบัติ blockchain
ซึ่งหมายถึงอาร์เรย์ของบล็อก ขอให้สังเกตว่าฉันส่งผ่าน startGenesisBlock()
ซึ่งสร้างบล็อกเริ่มต้นในสายโซ่
2. การสร้างบล็อกปฐมกาล
ในบล็อกเชน บล็อกกำเนิดหมายถึงบล็อกแรกที่สร้างขึ้นบนเครือข่าย เมื่อใดก็ตามที่บล็อกถูกรวมเข้ากับส่วนที่เหลือของเชน บล็อกนั้นควรอ้างอิงถึงบล็อกก่อนหน้า
ในทางกลับกัน ในกรณีของบล็อกเริ่มต้นนี้ ไม่มีบล็อกก่อนหน้าที่จะชี้ไป ดังนั้นบล็อกแหล่งกำเนิดมักจะถูกฮาร์ดโค้ดลงในบล็อคเชน วิธีนี้สามารถสร้างบล็อกที่ตามมาได้ มักจะมีดัชนีเป็น 0

ฉันใช้ startGenesisBlock()
เพื่อสร้างบล็อกการกำเนิด ขอให้สังเกตว่าฉันสร้างมันโดยใช้คลาส CryptoBlock
ที่สร้างไว้ก่อนหน้านี้และส่งผ่าน index
, timestamp
, data
และพารามิเตอร์ Hash precedingHash
3. รับบล็อกล่าสุด
การรับบล็อกล่าสุดในบล็อกเชนช่วยให้มั่นใจว่าแฮชของบล็อกปัจจุบันจะชี้ไปที่แฮชของบล็อกก่อนหน้า จึงเป็นการรักษาความสมบูรณ์ของเชน
ฉันใช้วิธี obtainLatestBlock()
เพื่อดึงข้อมูล
4. การเพิ่มบล็อคใหม่
ฉันใช้วิธี addNewBlock()
เพื่อเพิ่มบล็อกใหม่ให้กับเชน ในการทำสิ่งนี้ให้สำเร็จ ฉันตั้งค่าแฮชก่อนหน้าของบล็อกใหม่ให้เท่ากับแฮชของบล็อกสุดท้ายในเชน - เพื่อให้แน่ใจว่าเชนนั้นป้องกันการงัดแงะ
เนื่องจากคุณสมบัติของบล็อกใหม่จะเปลี่ยนไปทุกครั้งที่มีการคำนวณใหม่ การคำนวณแฮชการเข้ารหัสอีกครั้งจึงเป็นสิ่งสำคัญ หลังจากอัปเดตแฮชแล้ว บล็อกใหม่จะถูกผลักเข้าไปในอาเรย์บล็อคเชน
ในความเป็นจริง การเพิ่มบล็อคใหม่ให้กับบล็อคเชนนั้นไม่ใช่เรื่องง่ายเนื่องจากมีการตรวจสอบหลายอย่าง อย่างไรก็ตาม สำหรับสกุลเงินดิจิทัลง่ายๆ นี้ ก็เพียงพอที่จะแสดงให้เห็นว่าบล็อกเชนทำงานอย่างไร
การทดสอบ Blockchain
ตอนนี้ มาทดสอบบล็อคเชนอย่างง่ายของเราและดูว่าได้ผลหรือไม่
นี่คือรหัส:
let smashingCoin = new CryptoBlockchain(); smashingCoin.addNewBlock(new CryptoBlock(1, "01/06/2020", {sender: "Iris Ljesnjanin", recipient: "Cosima Mielke", quantity: 50})); smashingCoin.addNewBlock(new CryptoBlock(2, "01/07/2020", {sender: "Vitaly Friedman", recipient: "Ricardo Gimenes", quantity: 100}) ); console.log(JSON.stringify(smashingCoin, null, 4));
ดังที่คุณเห็นในโค้ดด้านบน ฉันได้สร้างอินสแตนซ์ใหม่ของคลาส CryptoBlockchain
และตั้งชื่อเป็น smashingCoin
จากนั้น ฉันเพิ่มสองช่วงตึกในบล็อกเชนโดยใช้ค่าต่างๆ ตามอำเภอใจ ในพารามิเตอร์ data
ฉันใช้วัตถุและเพิ่มรายละเอียดผู้ส่ง รายละเอียดผู้รับ และปริมาณที่ทำธุรกรรม
ถ้าฉันรันโค้ดบนเทอร์มินัล นี่คือผลลัพธ์ที่ฉันได้รับ:

นั่นคือสิ่งที่ smashingCoin
ดูเหมือน! เป็นอ็อบเจ็กต์ที่มีคุณสมบัติ blockchain
เชน ซึ่งเป็นอาร์เรย์ที่มีบล็อกทั้งหมดในเชน ดังที่คุณเห็นในภาพด้านบน แต่ละบล็อกอ้างอิงแฮชของบล็อกก่อนหน้า ตัวอย่างเช่น บล็อกที่สองอ้างอิงแฮชของบล็อกแรก หลังจากทดสอบและเห็นว่าบล็อกเชนของเราใช้งานได้ เรามาเพิ่มฟังก์ชันการทำงานบางอย่างเพื่อปรับปรุงคุณสมบัติของ smashingCoin
กัน
วิธีการตรวจสอบความสมบูรณ์ของบล็อคเชน
ดังที่ได้กล่าวไว้ก่อนหน้านี้ คุณลักษณะสำคัญของบล็อคเชนคือเมื่อบล็อกถูกเพิ่มเข้าไปในเชนแล้ว จะไม่สามารถเปลี่ยนแปลงได้โดยไม่ทำให้ความสมบูรณ์ของเชนที่เหลือเป็นโมฆะ
ดังนั้นเพื่อตรวจสอบความสมบูรณ์ของบล็อคเชน ฉันจะเพิ่ม checkChainValidity()
ให้กับคลาส CryptoBlockchain
แฮชมีความสำคัญต่อการรับรองความถูกต้องและความปลอดภัยของบล็อคเชน เนื่องจากการเปลี่ยนแปลงใดๆ ในเนื้อหาของบล็อกจะส่งผลให้มีการผลิตแฮชใหม่ทั้งหมด และทำให้บล็อกเชนเป็นโมฆะ
ดังนั้น วิธี checkChainValidity()
จะใช้คำสั่ง if
เพื่อตรวจสอบว่าแฮชของทุกบล็อกถูกดัดแปลงหรือไม่ เริ่มจากบล็อกแรกที่สร้างขึ้น มันจะวนรอบบล็อกเชนทั้งหมดและตรวจสอบความถูกต้อง โปรดทราบว่าเนื่องจากบล็อกการกำเนิดถูกฮาร์ดโค้ดแล้ว ระบบจะไม่ตรวจสอบบล็อกนั้น
นอกจากนี้ เมธอดจะตรวจสอบว่าแฮชของบล็อกสองบล็อคที่ต่อเนื่องกันชี้ไปยังอีกบล็อกหนึ่งหรือไม่ หากความสมบูรณ์ของบล็อคเชนไม่ถูกบุกรุก มันจะกลับกลายเป็นจริง มิฉะนั้น ในกรณีของความผิดปกติ จะส่งกลับค่าเท็จ
นี่คือรหัส:
checkChainValidity(){ for(let i = 1; i < this.blockchain.length; i++){ const currentBlock = this.blockchain[i]; const precedingBlock= this.blockchain[i-1]; if(currentBlock.hash !== currentBlock.computeHash()){ return false; } if(currentBlock.precedingHash !== precedingBlock.hash) return false; } return true; }
วิธีเพิ่มหลักฐานการทำงาน
ดังที่ได้กล่าวไว้ก่อนหน้านี้ หลักฐานการทำงานเป็นแนวคิดที่ใช้เพื่อเพิ่มความยากลำบากในการขุดหรือเพิ่มบล็อกใหม่ให้กับบล็อคเชน
ในกรณีของ smashingCoin
ฉันจะใช้อัลกอริธึมง่ายๆ ที่จะขัดขวางผู้คนจากการสร้างบล็อคใหม่อย่างง่ายดายหรือสแปมบล็อคเชน
ดังนั้นในคลาส CryptoBlock
ฉันจะเพิ่มวิธีอื่นที่เรียกว่า proofOfWork().
โดยพื้นฐานแล้ว อัลกอริธึมอย่างง่ายนี้จะระบุตัวเลข ซึ่งส่งผ่านเป็นคุณสมบัติ difficulty
ดังนั้นแฮชของทุกบล็อกจะมีเลขศูนย์นำหน้าซึ่งสอดคล้องกับระดับ difficulty
นี้
การตรวจสอบให้แน่ใจว่าแฮชของทุกบล็อกเริ่มต้นด้วยจำนวนศูนย์ตามที่กำหนดไว้ในระดับ difficulty
ต้องใช้พลังในการคำนวณเป็นจำนวนมาก ยิ่งระดับความยากสูงขึ้นเท่าใด ก็ยิ่งใช้เวลาในการขุดบล็อคใหม่มากขึ้นเท่านั้น
นอกจากนี้ ฉันจะเพิ่มค่า nonce
แบบสุ่มให้กับทุกบล็อกที่ถูกแฮช เพื่อให้เมื่อทำการแฮชใหม่ ยังคงสามารถปฏิบัติตามข้อจำกัดระดับความยากได้
นี่คือรหัส:
proofOfWork(difficulty){ while(this.hash.substring(0, difficulty) !==Array(difficulty + 1).join("0")){ this.nonce++; this.hash = this.computeHash(); } }
และนี่คือ computeHash()
ที่อัปเดตพร้อมตัวแปร nonce
:
computeHash(){ return SHA256(this.index + this.precedingHash + this.timestamp + JSON.stringify(this.data)+this.nonce).toString(); }
นอกจากนี้ เพื่อนำกลไกการพิสูจน์การทำงานไปใช้ในการสร้างบล็อคใหม่ ฉันจะรวมไว้ใน addNewBlock()
:
addNewBlock(newBlock){ newBlock.precedingHash = this.obtainLatestBlock().hash; //newBlock.hash = newBlock.computeHash(); newBlock.proofOfWork(this.difficulty); this.blockchain.push(newBlock); }
ห่อ
นี่คือรหัสทั้งหมดสำหรับการสร้าง cryptocurrency smashingCoin
โดยใช้ Node.js:
const SHA256 = require("crypto-js/sha256"); class CryptoBlock { constructor(index, timestamp, data, precedingHash = " ") { this.index = index; this.timestamp = timestamp; this.data = data; this.precedingHash = precedingHash; this.hash = this.computeHash(); this.nonce = 0; } computeHash() { return SHA256( this.index + this.precedingHash + this.timestamp + JSON.stringify(this.data) + this.nonce ).toString(); } proofOfWork(difficulty) { while ( this.hash.substring(0, difficulty) !== Array(difficulty + 1).join("0") ) { this.nonce++; this.hash = this.computeHash(); } } } class CryptoBlockchain { constructor() { this.blockchain = [this.startGenesisBlock()]; this.difficulty = 4; } startGenesisBlock() { return new CryptoBlock(0, "01/01/2020", "Initial Block in the Chain", "0"); } obtainLatestBlock() { return this.blockchain[this.blockchain.length - 1]; } addNewBlock(newBlock) { newBlock.precedingHash = this.obtainLatestBlock().hash; //newBlock.hash = newBlock.computeHash(); newBlock.proofOfWork(this.difficulty); this.blockchain.push(newBlock); } checkChainValidity() { for (let i = 1; i < this.blockchain.length; i++) { const currentBlock = this.blockchain[i]; const precedingBlock = this.blockchain[i - 1]; if (currentBlock.hash !== currentBlock.computeHash()) { return false; } if (currentBlock.precedingHash !== precedingBlock.hash) return false; } return true; } } let smashingCoin = new CryptoBlockchain(); console.log("smashingCoin mining in progress...."); smashingCoin.addNewBlock( new CryptoBlock(1, "01/06/2020", { sender: "Iris Ljesnjanin", recipient: "Cosima Mielke", quantity: 50 }) ); smashingCoin.addNewBlock( new CryptoBlock(2, "01/07/2020", { sender: "Vitaly Friedman", recipient: "Ricardo Gimenes", quantity: 100 }) ); console.log(JSON.stringify(smashingCoin, null, 4));
ถ้าฉันรันโค้ดบนเทอร์มินัล นี่คือผลลัพธ์ที่ฉันได้รับ:

smashingCoin
ของเรา! (ตัวอย่างขนาดใหญ่)ดังที่คุณเห็นในภาพด้านบน ตอนนี้แฮชเริ่มต้นด้วยศูนย์สี่ตัว ซึ่งสอดคล้องกับระดับความยากที่กำหนดไว้ในกลไกการพิสูจน์การทำงาน
บทสรุป
แค่นั้นแหละ! นั่นเป็นวิธีที่คุณสามารถสร้างบล็อคเชนสกุลเงินดิจิทัลอย่างง่ายโดยใช้ Node.js
แน่นอน smashingCoin
cryptocurrency นั้นยังห่างไกลจากความสมบูรณ์ ที่จริงแล้ว หากคุณปล่อยมันโดยไม่ทำการปรับปรุงเพิ่มเติม ก็ไม่น่าจะเป็นไปตามความต้องการของตลาดในปัจจุบันสำหรับสกุลเงินดิจิทัลที่ปลอดภัย เชื่อถือได้ และใช้งานง่าย — ทำให้คุณเป็นคนเดียวที่ใช้มัน!
อย่างไรก็ตาม ฉันหวังว่าบทช่วยสอนนี้จะช่วยให้คุณมีทักษะพื้นฐานที่จะช่วยให้คุณก้าวเข้าสู่โลกแห่งคริปโตอันน่าตื่นเต้น
หากคุณมีความคิดเห็นหรือคำถามใด ๆ โปรดโพสต์ไว้ด้านล่าง
แหล่งข้อมูลเพิ่มเติม
- “Blockchain 101” CoinDesk
- “Bitcoin: ระบบเงินสดอิเล็กทรอนิกส์แบบ Peer-to-Peer” Satoshi Nakamoto, Bitcoin.org