มาสร้าง 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

Our Products


Get in Touch with us

Speak to Us or Whatsapp(+66) 83001 0222

Chat with Us on LINEiiitum1984

Our HeadquartersChanthaburi, Thailand

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Fatal error: Uncaught ErrorException: md5_file(/var/www/html/wp-content/litespeed/css/9c79e79a85be17b9d032e5d2dea31d11.css.tmp): failed to open stream: No such file or directory in /var/www/html/wp-content/plugins/litespeed-cache/src/optimizer.cls.php:121 Stack trace: #0 [internal function]: litespeed_exception_handler(2, 'md5_file(/var/w...', '/var/www/html/w...', 121, Array) #1 /var/www/html/wp-content/plugins/litespeed-cache/src/optimizer.cls.php(121): md5_file('/var/www/html/w...') #2 /var/www/html/wp-content/plugins/litespeed-cache/src/optimize.cls.php(776): LiteSpeed\Optimizer->serve('https://simplic...', 'css', true, Array) #3 /var/www/html/wp-content/plugins/litespeed-cache/src/optimize.cls.php(305): LiteSpeed\Optimize->_build_hash_url(Array) #4 /var/www/html/wp-content/plugins/litespeed-cache/src/optimize.cls.php(238): LiteSpeed\Optimize->_optimize() #5 /var/www/html/wp-includes/class-wp-hook.php(287): LiteSpeed\Optimize->finalize('...') #6 /var/www/html/wp-includes/plugin.php(206): WP_Hook->apply_ in /var/www/html/wp-content/plugins/litespeed-cache/src/optimizer.cls.php on line 121