Skip to content

ลำดับการเรียนรู้เทคโนโลยีบล็อคเชน

Notifications You must be signed in to change notification settings

raspberrypk/blockchain-learning-path

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 

Repository files navigation

บล็อคเชน

แหล่งความรู้บล็อคเชน สำหรับตั้งแต่คนที่ไม่รู้จัก ไปจนถึงคนที่ต้องการเขียนเหรียญตัวเอง

สารบัญ:

ความรู้พื้นฐาน(non technical)

Ethereum(intermediate)

การเขียนแอพบนบล็อคเชนอีเธอเรียม(technical)

บล็อคเชนคืออะไร?

บล็อคเชนคือฐานข้อมูลสาธารณะ คลิปวีดีโออธิบาย Blockchain#1

ฐานข้อมูลกระจาย(Distributed Ledgers)

บล็อคเชนถือเป็น Distributed Ledger รูปแบบหนึ่ง ฐานข้อมูลประเภทนี้จะเก็บข้อมูลชุดเดียวกันไว้หลายๆฐานเพื่อใช้เปรียบเทียบกัน

ข้อตกลงร่วมในระบบ(Consensus Mechanism)

Consensus Mechanism คือข้อตกลงที่ใช้ร่วมกันระหว่าง node ในการทำให้ข้อมูลทั้งหมดเป็นชุดเดียวกัน

การขุดเหรียญคริปโต(Mining)

เราเรียกกระบวนการในการเขียนข้อมูลเพิ่มลงบนบล็อคเชนว่า เป็นการต่อบล็อคใหม่ การขุดเหรียญคริปโต คือกระบวนการในการค้นหาผู้มีสิทธิ์เพียงคนเดียวที่จะสามารถเขียนข้อมูลใหม่ 1 บล็อคลงบนบล็อคเชนได้

บล็อคเชนสาธารณะและบล็อคเชนส่วนตัว

ส่วนมากบล็อคเชนส่วนตัวจะเป็นที่นิยมใช้กันเองระหว่างองค์กรประเภทธนาคารการเงินที่มีการทำธุรกรรมร่วมกัน โดยทั่วไปจะเรียกตามชื่อเทคโนโลยี เช่น Hyper Ledger เป็นต้น จะไม่เรียกว่าบล็อคเชน นิยาม ในกรณีทั่วไปแล้ว บล็อคเชน จะหมายถึงบล็อคเชนสาธารณะเท่านั้น

คุณสมบัติบล็อคเชน

คุณสมบัติที่สำคัญในการนิยามเทคโนโลยีนี้

ข้อดีของแอพบล็อคเชน

จุดเด่น 5 ประการในการเอาบล็อคเชนเข้ามาประยุกต์ใช้ในธุรกิจ

ความเข้าใจผิดเกี่ยวกับบล็อคเชน

เทคโนโลยีบล็อคเชนยังถือว่าใหม่มาก หลายคนที่ไม่เข้าใจในเทคโนโลยีนี้ทำให้เกิด ความเข้าใจผิดไปต่างๆมากมาย เช่น บล็อคเชนเป็นภาพลวงตา เป็นแหล่งฟอกเงิน เป็นแชร์ลูกโซ่หลอกลวง

เหรียญคริปโต

เราสามารถติดตามศึกษาข้อมูลเหรียญคริปโตทุกเหรียญบนโลกได้จากเว็บ coinmarketcap โดยเว็บเรียงลำดับสกุลเงินให้ตามมูลค่าปัจจุบัน

Bitcoin

เหรียญคริปโตเหรียญแรกที่ใช้ได้จริง มีมูลค่าสูงที่สุดในตระกูลเหรียญคริปโต

Ethereum

อีเธอเรียมเป็นบล็อคเชนที่สามารถเขียนแอพลงไปได้

XRP

XRP เป็นเหรียญที่เน้นการโอนเงินระหว่างธนาคารข้ามประเทศ เน้นความเสถียรในการใช้งาน XRP

Litecoin

ไลท์คอยเป็นเหรียญที่ต่อยอดไอเดียระบบมาจากบิทคอยโดยใช้ algorithm ที่ซับซ้อนกว่าแต่เร็วกว่าบิทคอย Litecoin

EOS

อีออสเป็นบล็อคเชนที่เน้นความเร็วในการเขียนข้อมูลโดยยอมลดระดับความปลอดภัยลง EOS

อีเธอเรียมคืออะไร

ปัจจุบัน(มีนาคม 2562)อีเธอเรียมเป็นบล็อคเชนที่มี community ใหญ่ที่สุดในบรรดาบล็อคเชนทุกตระกูล มีนักพัฒนาทั่วโลกช่วยกันคิดผลิตเครื่องมือต่างๆเพื่อผลักดันให้เทคโนโลยีนี้สามารถเข้ามามีบทบาทเปลี่ยนยุคสมัยของคนทุกคนบนโลกในวันข้างหน้า บทความอธิบาย Ethereum

บัญชีบนบล็อคเชน(accounts)

บัญชีหรือ accounts เป็นพื้นฐานการทำงานของระบบอีเธอเรียม

การเชื่อมต่อข้อมูลบนบล็อคเชน(transactions)

ลักษณะข้อมูลบนอีเธอเรียม Ethereum transaction

ค่าธรรมเนียมแก๊ส

ค่าธรรมเนียม ในการเขียนข้อมูลลงบนบล็อคเชนคือรายได้ของนักขุดเหมืองเหรียญคริปโตนั่นเอง

โครงสร้างอีเธอเรียม

อีเธอเรียมเป็นบล็อคเชนสาธารณะ แปลว่าใครก็ได้สามารถเปิด node ขึ้นมาเพื่อรับข้อมูลเชนทั้งหมดมาเก็บไว้ ใครก็ได้สามารถเปิด node มาเพื่อขุดเหรียญ(ต่อบล็อค)อีเธอเรียมตามระเบียบที่วางไว้ได้เช่นกัน a gentle introduction to Ethereum

สมาร์ทคอนแทรค

สมาร์ทคอนแทรคคือข้อตกลงร่วม สัญญาร่วมกันระหว่างแต่ละฝ่าย เงื่อนไขที่ถูกเขียนเป็นกฎลงบนบล็อคเชน smart contracts simply explained

เครื่องมือต่างๆที่ใช้เขียนสมาร์ทคอนแทรค

Tools และ Frameworks ต่างๆที่ใช้เขียนสมาร์ทคอนแทรค What are the development tools for Ethereum?

ขั้นตอนการเขียนสมาร์ทคอนแทรค

เรียนรู้การเขียนสมาร์ทคอนแทรคจากศูนย์ Create a Hello World Contract in Ethereum

บล็อคเชนทำงานอย่างไร?

บล็อคเชนคือสมุดจดบันทึกที่แก้ไขบรรทัดที่จดไปแล้วไม่ได้

การเข้ารหัสแฮช

การเข้ารหัสแฮช เป็นวิธีเรียงลำดับข้อมูล(data structure)แบบหนึ่ง แต่ด้วยคุณสมบัติพิเศษของผลลัพธ์แฮช ทำให้มันถูกนำมาใช้ในการ รักษารหัสผ่าน Password & hash functions รวมถึงใช้เทียบข้อมูลระหว่าง node ในบล็อคเชนอีกด้วย

การอนุญาตและสิทธิ์ในการเข้าถึงข้อมูล(public key)

การรับส่งข้อมูลในที่สาธารณะจำเป็นต้องใช้ Public and Private Keys เพื่อความปลอดภัยจากผู้ดักฟัง

เมอร์เคิลทรี(Merkle tree)

เมอร์เคิลทรีเป็นวิธีการเก็บข้อมูลรูปแบบหนึ่งซึ่งมีคุณสมบัติwhat is Merkle tree

โครงสร้างของบล็อคเชน

โครงสร้างของบล็อคเชนเป็นเมอร์เคิลทรีกิ่งเดียว(แยกกิ่งเวลามีการ fork)

ฐานข้อมูลบล็อคเชน(nodes)

node ในบริบทบล็อคเชนคือ ฐานข้อมูล 1 จุด มีหน้าที่ร่วมเป็นส่วนหนึ่งในการตรวจสอบสิทธิ์การเขียนข้อมูล และสามารถขอสิทธิ์เขียนข้อมูลได้ตามเงื่อนไขของแต่ละบล็อคเชน full node จะหมายถึง node ที่เก็บข้อมูลทั้งหมดตั้งแต่บล็อคแรกของบล็อคเชน light node จะเก็บข้อมูลเพียงบางส่วน Blockchain Nodes

การอัพเดทระบบบล็อคเชน(fork)

โดยทั่วไปแล้วการ fork จะเกิดขึ้นเมื่อนักพัฒนาเห็นตรงกันว่าระบบควรอัพเดทเพื่อให้มีประสิทธิภาพดีขึ้น เมื่อระบบมีการเปลี่ยนแปลง คนขุดเหรียญ(คนต่อบล็อค)ก็จำเป็นต้องแก้ไขระบบตามเพื่อให้ตรงกันกับระบบปัจจุบัน การเปลี่ยนแปลงดังกล่าวทำให้เกิดการแยก(fork)บล็อคออกมาอีกสาย โดยถ้าสายเก่าไม่มีคนใช้ก็จะถูกปล่อยคาทิ้งไว้ตามเดิม Blockchain Forks Explained

setting up environment ในการเขียน smart contracts

การเขียนแอพลงบนบล็อคเชนยังถือเป็นเรื่องใหม่และยังมีการเปลี่ยนแปลงอยู่ตลอดเวลา เนื่องจากเทคโนโลยีบล็อคเชนเป็นของสาธารณะไม่มีใครสามารถเป็นเจ้าของครอบครองมันได้ ทำให้การพัฒนาเทคโนโลยีนี้จำเป็นต้องพึ่งพากลุ่มคนที่เชื่อมั่นในศักยภาพของเทคโนโลยีนี้ ช่วยกันแบ่งปันความรู้และพัฒนาไปด้วยกัน ดังนั้นอีเธอเรียมจึงเป็นบล็อคเชนที่มีความเป็นไปได้มากที่สุดจากการที่มี community กลุ่มใหญ่ที่สุด

สำหรับ Mac

การติดตั้งแอพต่างๆเพื่อเขียนแอพบล็อคเชนบน Mac

สำหรับ Windows

การติดตั้งแอพต่างๆเพื่อเขียนแอพบล็อคเชนบน Windows

สำหรับ Linux

การติดตั้งแอพต่างๆเพื่อเขียนแอพบล็อคเชนบน Linux

Truffle

ทรัฟเฟิล เป็น framework ที่ช่วยเขียนสมาร์ทคอนแทรคที่มีชื่อเสียงมากที่สุด

Ganache

กานาช เป็นบล็อคเชนจำลองสำหรับนักพัฒนาไว้ใช้เขียนและทดสอบในเครื่องตัวเอง

MetaMask

เมต้ามาสค์ เป็นกระเป๋าตังที่ใช้เก็บอีเธอเรียมได้จริงๆ เป็นอุปกรณ์หนึ่งที่ใช้ในการเขียนแอพบล็อคเชน

เขียน smart contracts แรกด้วย Truffle 4.0

แบบฝึกหัดสอนเขียน DApps

Solidity

Solidity เป็นภาษาโปรแกรมมิ่งที่ใช้เขียนสมาร์ทคอนแทรคบนอีเธอเรียมโดยเฉพาะ syntax จะคล้ายกับภาษา JavaScript เรียนรู้การเขียน Solidity ฟรีผ่านเกม cryptozombies

การ deploy contract แบบทำเอง

การเริ่มต้นใช้งานแอพบล็อคเชน การ deploy contract แบบทำเอง(manually)จะช่วยให้เราสามารถเข้าใจในระบบการทำงานของบล็อคเชนได้ดี

การ deploy contract ด้วย Truffle

Truffle เป็น framework ที่โดดเด่นที่สุดในการย่นย่อขั้นตอนต่างๆในการเริ่มต้นใช้แอพบล็อคเชน

การจัดการ error

วิธีการดูแล error ต่างๆอย่างเป็นระบบ(best practice)

block & transactions

การดูแลจัดการ block และ transactions ในโค้ด

ค่าธรรมเนียมแก๊ส

แก๊สคือค่าธรรมเนียมในการเขียนข้อมูลลงบล็อคเชนให้กับ node ที่ได้สิทธิ์ในการเขียนในแต่ละบล็อค

การส่งอีเธอเรียมถึงกันและกัน

หลักการในการรับส่งอีเธอเรียมถึงกันและกัน

การออกแบบและพัฒนาแอพบล็อคเชน

การเขียน UI ด้วย web3.js

web3.js เป็น framework ที่เชื่อมข้อมูลจากอีเธอเรียมมาเป็น JavaScript

การเรียกใช้ MetaMask

การจัดการกระเป๋าเงิน MetaMask ในโค้ด

การเรียกใช้งาน events

จุดประสงค์และวิธีใช้ events ในโค้ดเพื่อความง่ายในการดูแล

การยกเลิก contracts

การจัดการและยกเลิก contracts ที่ปล่อยออกไปแล้ว

Infura

ปกติแล้วการจะ deploy smart contracts ลงอีเธอเรียมนั้นเราจะต้องเปิด node ตัวเองเพื่อเข้าร่วมระบบบล็อคเชน Infura ช่วยทำหน้าที่ตรงนี้ให้

About

ลำดับการเรียนรู้เทคโนโลยีบล็อคเชน

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published