วันพฤหัส, กันยายน 19

ป้ายกำกับ: Smart Contract

มาพัฒนา DApp ง่าย ๆ ด้วย Truffle กันเถอะ ตอนที่ 3: Migration

มาพัฒนา DApp ง่าย ๆ ด้วย Truffle กันเถอะ ตอนที่ 3: Migration

Technical
สวัสดีค่ะ คุณผู้อ่านทุกท่าน กลับมาพบกันอีกครั้งกับบทความตอนที่ 3 ของ “มาพัฒนา DApp ง่าย ๆ ด้วย Truffle กันเถอะ” :) หลังจากที่เราสร้าง Smart Contract เรียบร้อย เราจะต้อง Deploy ส่งไปที่ Ethereum เพื่อใช้งานต่อไปค่ะ โดยปกติแล้ว การ Deploy Contract ขึ้นไปนั้น เราจะต้องทำผ่าน web3 ที่เป็น Javascript Library ที่ช่วยติดต่อ Ethereum ให้เรา ด้วยความเป็น Library นี่แหละค่ะ เมื่อจะเรียกใช้มันนั้น เราจะต้องเขียนเป็น Script ขึ้นมา โดยนำ ABI และ Bytecode ของทุก Smart Contract ทั้งหมดที่เราต้องการ Deploy เข้ามาใน Script ด้วยตัวเอง จากนั้นก็นำสองสิ่งของแต่ละ Smart Contract มาเข้าฟังก์ชันหนึ่งของ web3 เมื่อเสร็จแล้ว เราต้องสั่งให้ Script ทำงาน หาก Script ของเราจะ Deploy Smart Contract โปรเจค Simple Ecommerce ที่ได้สร้างไปแล้วในตอนที่ 2 และใช้ web3 เวอร์ชัน 1.0.0 Script ที่ได้จะเป็นดังนี้ con
มาพัฒนา DApp ง่าย ๆ ด้วย Truffle กันเถอะ ตอนที่ 2: Make New Project

มาพัฒนา DApp ง่าย ๆ ด้วย Truffle กันเถอะ ตอนที่ 2: Make New Project

Technical
สวัสดีค่ะ คุณผู้อ่านทุกท่าน กลับมาพบกันอีกครั้งกับซีรีย์ "มาพัฒนา DApp ง่าย ๆ ด้วย Truffle กันเถอะ" ตอนนี้เป็นตอนที่ 2 แล้วนะคะ :) ก่อนที่จะไปกันต่อ หากคุณผู้อ่านยังไม่อ่าน หรือลืมเนื้อหาตอนแรกไปแล้ว ผู้เขียนขอแนะนำให้อ่านบทความ "มาพัฒนา DApp ง่าย ๆ ด้วย Truffle กันเถอะ ตอนที่ 1: What and Why?" เพื่อเข้าใจถึงความเป็นมาและความสำคัญของ Truffle ก่อนนะคะ ถึงตรงนี้แล้ว เรามาเริ่มต้นสร้าง DApp ขึ้นมาตัวหนึ่งด้วย Truffle กันเลยค่ะ ผู้เขียนจะขอยกตัวอย่างระบบง่าย ๆ ดังภาพนี้ ... จะเห็นได้ว่า มันมีลักษณะเหมือนเป็น Ecommerce ตัวหนึ่ง ...ใช่แล้วค่ะ เราจะสร้าง Ecommerce แบบง่าย ๆ ที่ทำงานร่วมกับ Blockchain กัน สำหรับในบทความตอนนี้ เราจะยังไม่ได้เห็นภาพเสร็จสมบูรณ์ดังภาพข้างบนนะคะ เราจะมาสร้างโปรเจคและเขียน Smart Contract ที่เป็นระบบเบื้องหลังกันก่อน ขั้นตอนในส่วนนี้ก็จะมีดังนี้ค่
บล็อคเชนกับการเลือกตั้ง (Blockchain voting)

บล็อคเชนกับการเลือกตั้ง (Blockchain voting)

Idea, Technical
สวัสดีครับ ท่านผู้อ่าน ทุกท่าน วันนี้ทาง Blockchain Fish มีสิ่งที่น่าสนใจมานำเสนอ ปัจจุบันนี้มีเทคโนโลยีหลายอย่างมาก ที่เข้ามามีบทบาท ต่อประเทศของเรา หรือต่อองค์กรของท่านเอง รวมทั้ง ตัว Blockchain พระเอกของเรานี้ ก็เข้ามาปรับเปลี่ยนความคิดใหม่ๆ ได้ดีเลยแหละ ไหนใครยังไม่รู้จัก Blockchain ยกมือขึ้น !! ( คลิก ลิงค์เข้าไปดูได้ที่  : https://bit.ly/2Fpu1nN  )   แต่ถ้าเป็น การเลือกตั้ง + Blockchain หละ ? จุดเด่นก็คงเป็นเรื่อง ความโปร่งใส ที่ใครหน้าไหน ก็เข้ามาเปลี่ยนแปลงข้อมูลไม่ได้     วันนี้ทางผู้เขียนขอพูดถึงบทบาทของ Blockchain กับการเลือกตั้ง ซึ่งระบบการเลือกตั้งนั้น ถ้าให้พูดง่ายๆ เลยก็คือ เราต้องมีสิทธิ พอมีสิทธิ ปุ๊ป เราก็เลือก คนที่เราชอบ พอเลือกคนที่ชอบเสร็จ ก็ประกาศผล ปั๊ป เราก็จะได้ผลลัพธ์ จากเสียงข้างมาก ของการโหวต เห็นไหมครับ  ระบบการเลือกตั้ง แบบปกติ ก็ไม่มีอ
มาพัฒนา 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
สวัสดีค่ะท่านผู้อ่าน คราวนี้มาในเรื่องอาหารกันบ้าง ต่อไปนี้พฤติกรรมพ่อบ้านแม่บ้านไปจ่ายตลาดจะเปลี่ยนไปด้วยเทคโนโลยีบล็อกเชนนี้ ตามรายงานขององค์การอนามัยโลก โรคที่เกิดจากอาหารหรืออาหารเป็นพิษนั้นสามารถเกิดขึ้นได้ทั่วโลก โดยถูกรักษาตัวอยู่ในโรงพยาบาลกว่า 700 ล้านรายและเสียชีวิตกว่า 400,000 รายต่อปี หรือพูดอีกอย่างคือในแต่ละปีนั้นมีประชากรเฉลี่ย 1 ใน 10 จะป่วยจากโรคที่เกิดจากอาหาร นอกจากนี้การขาดกระบวนการความปลอดภัยด้านอาหารยังส่งผลให้มีคนเสียชีวิตประมาณ 400,000 ราย ส่วนใหญ่เป็นเด็กที่มีอายุต่ำกว่า 5 ปี ส่วนหนึ่งมาจากการที่อาจมีสารปนเปื้อนอยู่ในอาหารสด ซึ่งเราไม่สามารถรู้ได้เลยว่าอาหารสดที่นำมาขายตามร้านหรือซุปเปอร์มาร์เก็ตนั้นมาจากที่ใด ดังนั้นจึงจำเป็นที่จะต้องหาแหล่งที่มาของอาหารเหล่านี้เพื่อที่จะได้นำไปปรับปรุงและแก้ไขให้ดียิ่งขึ้น บริษัท TE-FOOD เป็นบริษัทตัวอย่างรูปแบบใหม่ที่ใ
Sweden นำโฉนดที่ดินลง Blockchain

Sweden นำโฉนดที่ดินลง Blockchain

Idea
เป็นปัญหามากสำหรับภาคเอกชนธุรกิจและภาครัฐบาลที่จะจัดการข้อมูลเกี่ยวกับที่ดินต่างๆ ในประเทศ จึงเป็นที่มาของความร่วมมือระหว่าง Swedish National Land Survey และ Blockchain Startup ชื่อว่า ChromaWay โดยเป้าหมายในการใช้งานคือให้บริษัท องค์กร หน่วยงานต่างๆที่เกี่ยวข้องกับเรื่องการดูแลจัดการที่ดิน ทำข้อมูลขึ้นระบบเดียวกันทั้งหมดโดยใช้ Blockchain เป็นตัวกลางในการเก็บข้อมูล โดยมีกำหนดการเริ่มต้นทดลองใช้งานในเดือน July 2017 นี้ ประโยชน์ที่ได้รับนั้นมากมายหลายรูปแบบ ในปัจจุบันการประเมินที่ดิน มีความซ้ำซ้อนมากทั้งในแง่สถาบันการเงินที่ประเมินราคาและจัดเก็บข้อมูลและเมื่อที่ดินแห่งนั้นๆจะต้องเปลี่ยนมือ ทางสถาบันการเงินก็ต้องส่งทีมงานประเมินราคาที่ดินไปประเมินราคาซ้ำอีกครั้งเป็นเช่นนี้ไปเรื่อยๆ จึงทำให้เกิดค่าใช้จ่ายตามมามหาศาล การนำข้อมูลมาใส่ไว้ใน Blockchain กลางนี้จะทำให้ทุกฝ่ายสามารถเข้าถ
ว่าด้วยเรื่องการเขียนโค้ด 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/)  
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 1 – ชนิดของตัวแปร

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 1 – ชนิดของตัวแปร

Technical
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 1 จากภาคที่แล้วที่ผมได้เกริ่นเรื่องของ Smart Contract ไว้ ซึ่งก็คงเข้าใจกันบ้างไม่มากก็น้อยนะครับ กลับมาคราวนี้เลยจะเป็นภาคต่อของเรื่อง Smart Contract ซึ่งเราจะลง code กันและ ก่อนอื่นเลยจะต้องบอกก่อนว่า ถ้าจะเขียน Smart Contract เนี่ยควรจะมีพื้นฐานของภาษา Java Script อยู่บ้าง จะทำให้พอเข้าใจอะไร ๆ  ได้ง่ายขึ้น เพราะ Syntax ของภาษาที่ใช้เขียน code ของ Smart Contract หรือที่เรียกว่า Solidity นั้น มีพื้นฐานมาจาก Java Script นั้นเอง (แต่ก็ไม่ได้เหมือน 100% นะครับ) ก่อนอื่นเลยสิ่งแรกที่ควรรู้จัก ก็คือ Data type ที่มีให้เราใช้งานได้ในภาษานี้นะครับ ซึ่งถึงแม้ผมจะบอกว่าเหมือน Java Script ก็จริง แต่จริง ๆ ภาษานี้ก็ต้องประกาศ Data type ให้กับตัวแปรที่เราสร้างขึ้น (ถึงแม้จะใช้คำสั่ง var ได้เหมือนในภาษา Java Script ก็เถอะ แต่ที่ถูกที่ควร ควรใช้ Dat