วันอังคาร, กันยายน 25

ป้ายกำกับ: Ethereum

มาพัฒนา DApp ง่าย ๆ ด้วย Truffle กันเถอะ ตอนที่ 1: What and Why?

มาพัฒนา DApp ง่าย ๆ ด้วย Truffle กันเถอะ ตอนที่ 1: What and Why?

Technical
สวัสดีค่ะ คุณผู้อ่านทุกท่าน ทุกวันนี้ Blockchain ได้ถูกพัฒนาให้สามารถทำงานร่วมกับแอปพลิเคชันที่เราเขียนได้แล้ว เราจะเรียกแอปพลิเคชันที่ทำงานกับ Blockchain ว่า DApp มันย่อมาจาก Decentralized Application แปลตรงตัวว่าแอปพลิเคชันที่ทำงานแบบกระจายนั่นเอง คุณผู้อ่านหลายคนที่เล่น Ethereum น่าจะเคยเห็นและเคยเล่น DApp กันบ้าง หากนึกไม่ออก ให้นึกถึงเว็บที่ต้องมีการซื้อเหรียญถึงจะทำงานได้ เช่น <CryptoKitties.co> เกมเพาะพันธุ์แมว, <SteemIt.com> เว็บบล็อกที่เปิดโอกาสให้คนจ่ายเหรียญ Crypto เพื่อสนับสนุนคนเขียนบทความ เป็นต้น ในบทความนี้เราจะสร้าง DApp เป็นของตัวเองง่าย ๆ ด้วย Truffle กันค่ะ แต่เดี๋ยวก่อน! เรายังไม่สร้างตอนนี้! ผู้เขียนขอแนะนำให้คุณผู้อ่านรู้จักกับ Truffle และความสำคัญของมันก่อน ซึ่งเนื้อหาค่อนข้างยาว วิธีการสร้างขอยกไปเขียนในตอนถัดไปแทนนะคะ เรื่องนี้ผู้เขียนตั
เทคโนโลยีบล็อกเชนช่วยยับยั้งการประมงที่ผิดกฏหมาย

เทคโนโลยีบล็อกเชนช่วยยับยั้งการประมงที่ผิดกฏหมาย

Idea
สวัสดีค่ะท่านผู้อ่าน วันนี้ขอนำเสนอบทความบล็อกเชนอีกรูปแบบหนึ่งที่จะช่วยให้ไม่มีการกระทำที่ผิดกฏหมาย รวมทั้งยังช่วยรักษาสิ่งแวดล้อมได้อีกด้วย ผู้คนส่วนใหญ่จะไม่ทราบแน่ชัดว่าอาหารทะเลที่นำมาประกอบอาหารแท้จริงแล้วมาจากที่ใด ยิ่งไปกว่านั้นเป็นเรื่องยากที่จะทราบได้ว่าปลาที่คุณกินนั้นมาจากการประมงที่ถูกกฏหมายหรือไม่ ในปัจจุบัน การขาดความโปร่งใสในห่วงโซ่อุปทานอาหารเป็นเรื่องที่สำคัญอย่างมาก ผู้บริโภคจำนวนมากไม่ทราบว่าอาหารที่นำมาประกอบอาหารมาจากที่ใด ซึ่งมันไม่ง่ายเลยที่จะระบุว่าอาหารทะเลเริ่มต้นจากที่ไหนหรือเดินทางไปที่ไหน โดยองค์กรสำคัญๆ อย่างเช่น The World Wildlife Fund (WWF) กำลังมองหาแนวทางแก้ไขปัญหาการขาดความโปร่งใส โดยการนำเทคโนโลยีบล็อกเชนมาใช้และกำลังเริ่มต้นใช้กับอุตสาหกรรมการประมง เนื่องจากอุตสาหกรรมประมงเป็นหนึ่งในอุตสาหกรรมที่มีการละเมิดสิทธิมนุษยชนและผิดกฎหมายมากที่สุด ซึ
สรุป Ethereum Metropolis แบบง่ายๆ

สรุป Ethereum Metropolis แบบง่ายๆ

Blockchain Platform
ในปัจจุบัน Ethereum กำลังอยู่ในขั้นตอนการก้าวเข้าสู่เวอร์ชั่นใหม่ที่มีชื่อว่า Metropolis สำหรับท่านที่ยัง งง ว่า Ethereum มีเวอร์ชั่นด้วยหรือ ใช่ครับ Ethereum มี Roadmap การพัฒนาโดยแบ่งเป็นเวอร์ชั่นๆ และตั้งชื่อไว้ ดังนี้ครับ Olympic Frontier Homestead Metropolis 18 กันยายน 2560 นี้ ในปัจจุบันกำลังอยู่ในขั้นตอนการเปลี่ยนผ่านจาก Homestead เข้าสู่ Metropolis ครับ Serenity   เป้าหมายคือ Ethereum ทำงานมีประสิทธิภาพมากขึ้น ซึ่งในเวอร์ชั่น Metropolis นี้นักพัฒนามีเป้าหมายที่จะทำให้ Ethereum รองรับการทำงานแก่คนทั้งโลกให้มากขึ้นกว่าในปัจจุบันหรือที่เราเรียกกันว่าปัญหาการ Scaling นั้นคือ การที่ธุรกรรมที่ส่งกันในเครือข่าย Ethereum ติดคอขวดกัน ซึ่งทำให้ไม่สามารถเอา Application ต่างๆ ทำงานได้เร็วดังที่ควรจะเป็นในการทำงานทั่วไป และนั้นจะทำให้ Ethereum เข้าใกล้การทำให
สำรวจ 5 Digital Currency ที่มี Market Cap ใหญ่ที่สุด

สำรวจ 5 Digital Currency ที่มี Market Cap ใหญ่ที่สุด

Idea
ในทุกวันนี้เราคงปฎิเสธไม่ได้ว่าโลก Blockchain กำลังได้รับความนิยมมากขึ้นเรื่อยๆ และนักลงทุนจากทั่วโลกต่างหันมาสนใจในเทคโนโลยีตัวนี้กันมากขึ้นๆ ส่งผลทำให้มีเงินทุนไหลเข้าในโลก Blockchain นี้ในรูปของเงินที่เข้าสู่ตลาด Digital Currency กันมากขึ้นๆ เรื่อยๆ อย่างไม่หยุดยั้ง ในวันนี้เราอยากมาลองนำเสนอ Digital Currency ที่มีมูลค่า Market Cap ใหญ่ที่สุด 5 อันดับแรก (Market Cap ในวันที่ 23 เมษายน 2560) ไปเริ่มกันเลยครับ   อันดับที่ 5 : Dash Dash เป็นสกุลเงินดิจิตอลตัวใหม่ที่ได้รับความนิยมอย่างรวดเร็วด้วยแนวคิดส่งเงินกันได้อย่างรวดเร็วไม่ต้องรอนานเหมือนอย่าง Bitcoin จึงได้รับความนิยมอย่างมากจากร้านค้าออนไลน์ต่างๆ Market Cap : $515,320,528 = 17,005,577,424 บาท (1 หมื่น 7 พันล้านบาท)   อันดับที่ 4 : LiteCoin LiteCoin นี้ได้รับการตั้งชื่อเล่นว่าเป็น "เงิน" ในโ
รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 3 (Ethereum State)

รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 3 (Ethereum State)

Technical
ในโลกของ ethereum นั้นเมื่อมีการทำ transaction เกิดขึ้นจะมีการเปลี่ยนแปลงสถานะ (Ethereum State) ของข้อมูลต่างๆที่เกี่ยวข้องกับ transaction นั้นๆ จากรูป (Cr.ethereum-state-transition-function) จะเป็นตัวอย่างทำ transaction ระหว่าง account address : 14c5f88a และ contract code : bb75a980 ซึ่งข้อมูลก่อนทำ transaction จะแสดงในกล่อง STATE และข้อมูลหลังจาก transaction ได้รับการ validate เรียบร้อยจะแสดงในกล่อง STATE’ หลักการเปลี่ยน state ของ ethereum : The Ethereum state transition function APPLY(S,TX) -> S' ตรวจสอบข้อมูลต่างๆต้องถูกต้องเช่น           1.1 format transaction           1.2 signature ของ transaction           1.3 ค่า nonce ของ transaction ตรงกับค่า nonce ของ address ที่ทำ transaction 2.คำนวนค่าธรรมเนียมที่ผู้ส่งจะต้องจ่ายเพื่อให้ miner ทำงานใน transaction จ
รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 2 (Messages and Transactions)

รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 2 (Messages and Transactions)

Technical
หลังจากที่เรารู้แล้วว่าแต่ละโหนดในวง Ethereum จะประกอบไปด้วยข้อมูลบัญชี (Account) เพื่อใช้ในการระบุตัวตนสำหรับการทำรายการต่างๆในระบบ โดยรายการต่างๆในวงเน็ตเวิร์คจะเรียกว่า Transaction หรือ Message ซึ่งจะมาดูนิยาม Transaction และ Message กันครับ นิยามของ Transactions Transaction ในโลกของ Ethereum นั้นจะหมายถึงก้อนข้อมูลที่ถูกทำ digitally sign ซึ่งบรรจุข้อความ (Message) ที่จะถูกส่งหากันไปมาระหว่าง account หนึ่งถึง account หนึ่ง โดยที่ภายใน Transaction นั้นจะประกอบไปด้วย ที่อยู่ของผู้รับ Message โดยเป็นเลขฐาน 16 ขนาด 20 ไบท์ Digital signature ที่ผู้ส่งทำการ digitally sign Message อันนี้มา เงินที่ถูกส่งมาจากผู้ส่ง ข้อมูลอื่นๆ ซึ่งสามารถเป็นข้อมูลอะไรก็ได้ทั้งตัวเลข, ตัวอักษร รวมถึงไฟล์ต่าง โดยจะอยู่ในรูปแบบเลขฐาน 16 STARTGAS – ค่าตัวเลขสูงสุดของ step การประมวลผล tran
รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 1 (Account)

รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 1 (Account)

Technical
หลังจากที่เราพอจะรู้จัก Ethereum จากบทความก่อนหน้าแล้วว่าเป้าหมายของ Ethereum เกิดจากต้องการสร้างโปรโตคอลสำหรับพัฒนาโปรแกรมบนพื้นฐานของแนวคิดการกระจายข้อมูล (Decentralized File Storage) ซึ่งเป็นวิธีการนำข้อมูลไปเก็บไว้กับทุกๆโหนด (Public Ledger) ที่อยู่ในระบบเน็ตเวิร์ค Ethereum หลังจากนั้นทุกๆคนในระบบเน็ตเวิร์คจำเป็นจะต้องมีข้อมูลบัญชี (Account) เพื่อใช้ในการระบุตัวตนสำหรับการทำรายการต่างๆในระบบครับ Account คืออะไร เป็นข้อมูลขนาด 20 ไบต์ (Byte) เป็นเหมือนบ้านเลขที่ สำหรับบอกให้ผู้อื่นรู้ว่าถ้าอยากส่งข้อมูลมาให้เราต้องระบุผู้รับปลายทางเป็นเลข 20 ไบต์ของเรานะ หรือใช้ระบุว่าเราเป็นคนส่งข้อมูลชุดนี้ไปนะ (เหมือนกับที่อยู่ตอนเราจ่าหน้าซองจดหมายเลยครับ) โดยจะเป็นตัวเลขชุดที่สร้างมาจาก private key ของ account อีกทีครับ ตัวอย่างหน้าตา address ของ account ที่แสดงบน myetherwallet.com Ac
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 4 – Deploy Smart Contract

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 4 – Deploy Smart Contract

Technical
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 4 จากคราวที่แล้ว เราเขียน Contract พร้อม function Hello world กันแล้วนั้น คราวนี้เรามาลอง Deploy ขึ้น network กันดูนะครับ แต่ก่อนอื่นเลยจะขอเล่าให้ฟังก่อนว่าในการติดต่อกับ Ethereum network นั้น มันมี Tool ที่ใช้คุยได้อยู่มากมาย แต่ที่นิยม ๆ จะมีอยู่ 3 ชื่อก็คือ web3.js, go-ethereum (หรือ Geth) และ Mist ซึ่งทั้ง 3 ตัวที่ผมเอ่ยมานั้น เอามาใช้ deploy ได้หมดเลย แต่ความยากง่ายจะต่างกันดังนี้ครับ ฉะนั้น ในบทความนี้ผมขออนุญาตแนะนำการ deploy โดยใช้ tool ที่ชื่อว่า Mist นะครับ ขอแนะนำสั้น ๆ เกี่ยวกับ Mist ให้ฟังก่อนนะครับ เจ้าตัว Mist เนี่ยมันเป็น application ที่จริงๆแล้วเหมือน web browser เลยสามารถใช้ท่องเว็บก็ได้ แถมถ้าเว็บนั้น ๆ มีการเรียก library web3.js Mist ก็จะรู้จักทันทีเพราะมัน include อยู่ในตัวเองด้วย แถมเจ้า Mist นี่เราสามารถใช้เป็นกร
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 3 – Hello world

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 3 – Hello world

Technical
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 3 สวัสดีปีใหม่ครับ มาแล้วครับ กลับมาและ ห่างหายไปนานนิดนึง เนื่องจากปีใหม่ไปเที่ยวต่างจังหวัดมาเลยไม่ได้มีเวลามาเขียนต่อเลย แหะๆ แล้วทุกท่านเป็นอย่างไรบ้างครับไปเที่ยวไหนมาหรือเปล่า ^^ ส่วนเนื้อหาในบทนี้ จากบทก่อน ๆ ที่เรารู้เรื่องพื้นฐานของการจะเขียน Smart Contract แล้วนั้น เรามาลงมือเขียน code กันเลย โดย code ที่เราจะเขียนกันนั้น จะเริ่มด้วย function พื้นฐานสามัญประจำโลกเลย นั่นก็คืออ function HelloWorld ที่แสน classic ที่ผมคิดว่าท่านที่เรียนการ Programming มาก็ต้องรู้จักเป็นอย่างดี (ฮา) ซึ่งหน้าตาของ code เป็นดังนี้   โดยจาก source code ที่ผมแปะไว้ข้างบนนั้น จะขออธิบายเป็นส่วน ๆ ดังนี้ครับ   อันนี้เป็นตัวที่กำหนด version ของ compiler เพื่อให้ compiler รู้ว่ามันควรทำงานกับ source code นี้มั๊ย เผื่อในอนาคต co
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 2 – IDE ที่จะใช้

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 2 – IDE ที่จะใช้

Technical
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 2 มาต่อกันเรื่องการเขียน code เพื่อสร้าง Smart Contract กันนะครับ โดยจากคราวที่แล้ว ผมได้เล่าถึงพวกประเภทของตัวแปรที่ใช้ได้ในภาษา solidity มาและ ถัดมาก็จะเริ่มมาลองเขียนกันเลยยย ก่อนอื่นเลยเวลาเราจะเขียน code ก็จำเป็นต้องมี editor เพื่อเขียนถูกมั๊ยครับ ซึ่งสำหรับภาษานี้จริง ๆ แล้วก็เขียนใน nodepad เลยก็ได้ แต่ถ้าต้องการสีสันหน่อยไฮไลท์ syntax หน่อย มันก็มีคนทำ editor ขึ้นมาเหมือนกันซึ่งมีเยอะแยะเลยทั้งแบบ online และ offline โดยตัว offline นั้นคือ Mix IDE ซึ่งตัวนี้ผมก็เขียนลองเขียน มันจะมี emulator จำลอง mode ขึ้นมาให้เล่นได้ใน IDE ด้วย ก็แลสะดวกดี แต่ที่ผมเจอมาคือโปรแกรมมันค้างบ่อยมาก เลยไม่น่าใช้เลย (ปัจจุบัน คนสร้างไม่ได้ดูแลต่อแล้ว) (รูปจาก http://blog.carl.pro/2016/06/building-an-ethereum-environment-with-docker/)