มาสร้าง Blockchain ของเราเองกันเถอะ ( 1 )
Blockchain คือ การบันทึกข้อมูล ที่ยากในการแก้ไข ( แทบจะเป็นไปไม่ได้ ) ที่จะเปลี่ยนแปลงข้อมูล, hack ระบบ, หรือโกงได้
องค์ประกอบของ blockchain จะประกอบด้วย Block ซึ่งเป็นที่เก็บข้อมูลที่เราต้องการบันทึก เมื่อมี block ใหม่เข้ามา ก็จะทำการไปต่อท้ายเหมือนเป็นสายโซ่ ( chain ) เราเลยเรียกว่า Blockchain แต่การที่จะเพิ่ม block เข้าไปใหม่ใน blockchain network จะมีขั้นตอนที่เรียกว่า proof of work ( การสร้าง hash key ที่ตรงตามเงื่อนไขที่เรากำหนดไว้ เราอาจจะรู้จักขั้นตอนนี้ว่า "ขุด" mine )
เราสามารถนำ blockchain มาเป็น บัญชี digital ( digital ledger ) โดยทำการสำเนา transaction และแจกจ่าย ( distributed ) ไปในระบบเครือข่าย ( network system ) ของ blockchain ด้วยการทำงานแบบ decentralize network ทำให้ระบบมีความปลอดภัยสูง และยากในการที่จะทำการปลอมแปลงข้อมูลได้ทุก node ใน network. ในเวลาเดียวกันได้
เรามาดูว่า data structure ของ blockchain จะมีหน้าตาอย่างไร
function Blockchain() {
this.chain = [];
this.pendingTransactions = [];
this.currentNodeUrl = currentNodeUrl;
this.networkNodes = [];
this.createNewBlock(100, '0', '0');
};
มาทำความเข้าใจแต่ละ attribute ใน Blockchain class
- chains array: เป็นที่เก็บ block ใน blockchain
- pendingTransactions: ที่พัก transaction เพื่อจะถูกเก็บไว้ใน block ที่จะถูกสร้างขึ้นใหม่
- currentNodeUrl: URL ของ node นี้ ( เราจะสร้าง blockchain server ในภายหลัง )
- networkNodes: node อื่นๆ ใน blockchain network
- this.createNewBlock(100, '0', '0') คือ block แรกของ blockchain ( genesis block )
ในบทความต่อไป จะอธิบายเกี่ยวกับการจัดเก็บข้อมูลของ transaction ไปใน block อย่างไร
Articles
- การใช้เซ็นเซอร์ในฟาร์มผลไม้: เทคโนโลยีที่ช่วยแก้ไขปัญหาและเพิ่มประสิทธิภาพ
- เทคโนโลยีการเกษตรยุคใหม่: ช่วยเกษตรกรรุ่นใหม่แก้ไขปัญหาได้อย่างไร
- การพัฒนา Plugin สำหรับ Wazuh: เพิ่มความสามารถและการใช้งานที่หลากหลาย
- การใช้งาน Wazuh ในกรณีต่างๆ: การปกป้องและการตรวจสอบระบบอย่างมีประสิทธิภาพ
- แนะนำ Wazuh: ระบบความปลอดภัยและการตรวจสอบที่ครอบคลุม
- ตอนที่ 3: การผสานรวมการติดตามแบบเรียลไทม์ การรายงาน และการวิเคราะห์
- ตอนที่ 2: เจาะลึกคุณสมบัติของระบบการจัดการยานพาหนะ
- ตอนที่ 1: แนะนำระบบการจัดการยานพาหนะสำหรับธุรกิจรีไซเคิล
- เราจะเขียน OCPP server อย่างไร
- SEO ( Search Engine Optimization ) ฉบับเข้าใจง่ายๆ
- ความสามารถของระบบ SimpiEcommerce ( ECommerce System )
- เราจะทำให้ program ที่มีขั้นตอนการทำงานที่ซับซ้อน และ ต้องแบ่งงานให้กับ programmer หลายๆ คนได้อย่างไร ?
- สร้าง business workflow process system ด้วย networkx.org
- วิธีการออกแบบเพื่อลดการซับซ้อนของ software
- Facebook Pixel ทำงานอย่างไร ?
- ข้อแนะนำพัฒนา E-Commerce Website ด้วย Shopify
- บางทีความรู้ก็เป็นสิ่งที่จำกัดความคิดสร้างสรรค์ได้เหมือนกัน
- Web Socket คืออะไร
- เทคนิคที่ช่วยให้เขียน program ให้ดีขึ้นอย่างรวดเร็ว
- มาสร้าง Blockchain ของเราเองกันเถอะ ( 2 ) , Mining
- decentralized network system คืออะไร ?
- Blockchain Technology จะช่วยแก้ปัญหาของชาวสวนและผู้บริโภคได้อย่างไร ?
- เครื่องวัดอัตราไหลของน้ำด้วย Arduino และ YF-S201 Hall Effect Water Flow Meter Sensor
- เราจะเข้าใจ code ของ project ที่มีความซับซ้อนได้อย่างไร ?
- Photogrammetry และ Metaverse
- ทำแอปประชุม online ด้วย Zoom SDK และ Ionic mobile framework
- Smart Factory หรือ Industry 4.0 คืออะไร ?
- Live Sport Engagement Technology ช่วยเพิ่มประสบการณ์ของแฟนกีฬาได้อย่างไร
- 5 ข้อ ที่เข้าใจผิดในการเขียน code
- ERP ( Enterprise Resource Planning ) คืออะไร