มาสร้าง 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 อย่างไร
Related Posts
- การสร้างรายงาน Excel แบบกำหนดเองด้วย Python: คู่มือฉบับสมบูรณ์
- Pythonを使ったカスタムExcelレポートの生成:完全ガイド
- Generating Custom Excel Reports with Python: A Comprehensive Guide
- CeleryとRabbitMQの連携方法: 総合的な概要
- วิธีการทำงานร่วมกันระหว่าง Celery และ RabbitMQ: ภาพรวมที่ครอบคลุม
- How Celery and RabbitMQ Work Together: A Comprehensive Overview
- วิธีเริ่มต้นโครงการ Django ด้วย Vim, Docker Compose, MySQL, และ Bootstrap
- How to Start a Django Project with Vim, Docker Compose, MySQL, and Bootstrap
- OCPPシステムをゼロから構築するための包括的ガイド
- ทำไมการเข้าใจ Design Pattern จึงสำคัญสำหรับโครงการขนาดใหญ่เช่น Odoo
Articles
- SMEがオープンソースAIモデルを活用してビジネスを拡大する方法
- วิธีที่ SMEs สามารถใช้โมเดล AI โอเพ่นซอร์สเพื่อขยายธุรกิจของตน
- How SMEs Can Use Open-Source AI Models to Grow Their Business
- 的中文翻译为: "如何使用 Python 和 PLC 数据自动化工业流程
- PythonとPLCデータを活用した産業プロセスの自動化
- วิธีการทำให้กระบวนการอุตสาหกรรมเป็นอัตโนมัติด้วย Python และข้อมูลจาก PLC
- How to Automate Industrial Processes with Python and PLC Data
- วิธีเชื่อมต่อและดึงข้อมูล PLC จากฐานข้อมูลด้วย Python
- PythonでPLCデータをデータベースから取得・統合する方法
- How to Connect and Integrate PLC Data from a Database with Python
- AIモデルの仕組みを理解する: すべての読者向けガイド
- ทำความเข้าใจการทำงานของโมเดล AI: คู่มือสำหรับทุกคน
- Understanding How AI Models Work: A Guide for All Readers
- 次世代のAI開発 オープンソースモデルを活用したカスタムAIアプリケーションの構築
- สร้างแอปพลิเคชัน AI ที่ปรับแต่งได้ตามต้องการด้วยโมเดลโอเพ่นซอร์ส
- Next-Gen AI Development: Build Custom AI Applications with Open-Source Models
- AI時代で価値がないと感じる?それはあなただけではありません
- รู้สึกไม่มีคุณค่าในยุค AI? คุณไม่ได้รู้สึกแบบนี้คนเดียว
- Feeling Valueless as a Developer in the Age of AI? You’re Not Alone.
- Generative AI と Multimodal Models の比較: 主な違いと応用
Our Products
Related Posts
- การสร้างรายงาน Excel แบบกำหนดเองด้วย Python: คู่มือฉบับสมบูรณ์
- Pythonを使ったカスタムExcelレポートの生成:完全ガイド
- Generating Custom Excel Reports with Python: A Comprehensive Guide
- CeleryとRabbitMQの連携方法: 総合的な概要
- วิธีการทำงานร่วมกันระหว่าง Celery และ RabbitMQ: ภาพรวมที่ครอบคลุม
- How Celery and RabbitMQ Work Together: A Comprehensive Overview
- วิธีเริ่มต้นโครงการ Django ด้วย Vim, Docker Compose, MySQL, และ Bootstrap
- How to Start a Django Project with Vim, Docker Compose, MySQL, and Bootstrap
- OCPPシステムをゼロから構築するための包括的ガイド
- ทำไมการเข้าใจ Design Pattern จึงสำคัญสำหรับโครงการขนาดใหญ่เช่น Odoo
Articles
- SMEがオープンソースAIモデルを活用してビジネスを拡大する方法
- วิธีที่ SMEs สามารถใช้โมเดล AI โอเพ่นซอร์สเพื่อขยายธุรกิจของตน
- How SMEs Can Use Open-Source AI Models to Grow Their Business
- 的中文翻译为: "如何使用 Python 和 PLC 数据自动化工业流程
- PythonとPLCデータを活用した産業プロセスの自動化
- วิธีการทำให้กระบวนการอุตสาหกรรมเป็นอัตโนมัติด้วย Python และข้อมูลจาก PLC
- How to Automate Industrial Processes with Python and PLC Data
- วิธีเชื่อมต่อและดึงข้อมูล PLC จากฐานข้อมูลด้วย Python
- PythonでPLCデータをデータベースから取得・統合する方法
- How to Connect and Integrate PLC Data from a Database with Python
- AIモデルの仕組みを理解する: すべての読者向けガイド
- ทำความเข้าใจการทำงานของโมเดล AI: คู่มือสำหรับทุกคน
- Understanding How AI Models Work: A Guide for All Readers
- 次世代のAI開発 オープンソースモデルを活用したカスタムAIアプリケーションの構築
- สร้างแอปพลิเคชัน AI ที่ปรับแต่งได้ตามต้องการด้วยโมเดลโอเพ่นซอร์ส
- Next-Gen AI Development: Build Custom AI Applications with Open-Source Models
- AI時代で価値がないと感じる?それはあなただけではありません
- รู้สึกไม่มีคุณค่าในยุค AI? คุณไม่ได้รู้สึกแบบนี้คนเดียว
- Feeling Valueless as a Developer in the Age of AI? You’re Not Alone.
- Generative AI と Multimodal Models の比較: 主な違いと応用