สร้าง Blockchain ใช้เองกัน !

🤔 อยากมี Blockchain เป็นของตัวเองต้องทำไง ? ทำ ICO ง่ายๆเลย

😢 ปัญหา

หลังจากที่เราได้เข้าใจเรื่องราวความเป็นมาทั้งหมดของ Blockchain แล้วเพื่อนๆหลายๆคนก็อาจจะอยากลองสร้าง Blockchain เป็นของตัวเองบ้าง เผื่อเอาไปทำเป็น ICO เอาไว้ขายไรงี้ แต่ถ้าบอกว่าจะให้เริ่มสร้างเซิฟเวอร์ Blockchain ที่เป็นของส่วนตัวเอาไว้ใช้เองแล้วล่ะก็ อาจจะมึนๆกันอยู่ว่าจะต้องเริ่มทำอะไรบ้าง ไหนจะต้องเตรียม setup cluster ติดตั้งนู่นนั่นนี่ ทำ network security บลาๆๆ ซึ่งกว่าจะลองผิดลองถูกจนมันออกมาใช้งานได้จริงๆก็อาจจะพบว่ามันสูบพลังชีวิตของเราไปอาจจะหลายวันไม่ก็เป็นเดือนเลยทีเดียว

จากปัญหาที่ว่ามาในบทความนี้ ผมจะพาจับมือสร้าง Blockchain ของเราเองตั้งแต่เริ่มต้นจนมันสามารถใช้งานได้ภายในเวลาไม่ถึง 10 นาทีให้ดูกันครัช

แนะนำให้อ่าน บทความนี้เป็นหนึ่งในซีรี่ Blockchain ดังนั้นถ้าเพื่อนสนใจบทความทั้งหมดตั้งแต่เริ่มต้นว่า Blockchain คืออะไร แล้วจะเริ่มต้นสร้าง Blockchain เป็นของตัวเองได้ยังไง เพื่อนสามารถกดไปอ่านได้จากลิงค์นี้ครับ 👶 Blockchain และเราก็มีบทความเรื่องอื่นๆที่น่าสนใจซึ่งสามารถกดดูได้จาก Side menu เบย

😄 วิธีแก้ปัญหา

จากปัญหาที่ว่ามา วิธีแก้ง่ายๆก็คือ ไปสร้างบนคลาว์ไงล่ะ อย่างที่เคยเกริ่นไปในบทความเรื่องของคลาว์แล้วว่า ทุกปัญหา ทุกเทคโนโลยี ทุกความยุ่งยาก ส่วนใหญ่เราสามารถใช้คลาว์แก้ปัญหาเหล่านั้นได้ เพราะถ้าไม่ใช้คลาว์ เราจะต้องเจอปัญหานาๆประการ และ โดยเฉพาะเรื่อง security ซึ่งเราจะมั่นใจได้ขนาดไหนว่าของที่เรา setup มาโดยเฉพาะของที่เกี่ยวกับ public database มันจะไม่โดนมือดีเจาะเข้ามา? ซึ่งถ้าเราใช้คลาว์ปัญหาเรื่องเหล่านี้จะหมดไป (ถ้าคนตั้งเซิฟเวอร์ไม่ทำอะไรหลุดไปซะเองแบบที่เป็นข่าว ฮ่าๆ) ดังนั้นเราจะมาลองดูกันว่าถ้าอยากจะสร้าง Blockchain แล้วจะเริ่มต้นยังไงกันเลยดีกว่า

Azure Portal เนื้อหาตรงจุดนี้จะต้องเข้าไปที่ทำที่เว็บ https://portal.azure.com นี้นะครับ ซึ่งเราต้องสมัครสมาชิกก่อน แต่ถ้าใครยังไม่ได้สมัครก็ไปสมัครให้เรียบร้อยแซ๊ร (วิธีสมัครจิ้มตรงนี้)

🤔 เริ่มยังไงดี ?

ในการสร้าง Blockchain บนคลาว์นี้มันมีให้เราเลือกสร้างได้หลายตัวเลย ซึ่งผมขอแนะนำตัวที่สร้างและเอาไปใช้งานได้ง่ายๆและเป็นกลุ่ม Blockchain ของค่าย Ethereum นะครับ

1.ในขั้นตอนแรกเราจะต้องไปทำการสร้าง Blockchain บนคลาว์เสียก่อน ดังนั้นทำการ login เข้าสู่ระบบให้เรียบร้อย แล้วที่เมนูด้านซ้ายให้กดที่ + Createa resource แล้วพิมพ์ในช่องค้นหาว่า Ethereum on Azure แล้วกดปุ่ม Enter ลงไปได้เลย หรือจะลองค้นหาจากหมวดย่อยที่ชื่อว่า Blockchain ก็ได้ ตามรูปด้านล่าง

ถ้ามองไม่ชัดให้กดที่รูปนะมันจะขยายใหญ่ให้

2.ถัดมาเขาก็จะบอกรายละเอียดเกี่ยวกับ Ethereum on Azure ว่ามันคืออะไร จะไปศึกษาลองเล่นต่อได้ยังไง ราคาที่ต้องจ่ายต่อเดือนคิดยังไง บลาๆ ก็ถ้าอ่านจนหนำใจแล้วก็จิ้มปุ่ม Create เบาๆไป 1 ทีงับ

3.ถัดมาก็ใส่รายละเอียดของ Blockchain ของเรา โดยในขั้นตอนนี้มีให้กรอกเยอะหลายขั้นตอนมาก ดังนั้นเราจะลองไล่ดูทีละขั้นตอนละกันนะ

3.1.ในหมวด Basics ให้เราทำการใส่ข้อมูลต่างๆในช่องสีแดงลงไปให้ครบ โดยของที่สำคัญคือตัว VM username และ Password ซึ่งเราจะต้องทำการจดมันเอาไว้ เพื่อใช้ในการ login เข้าไปใน Cluster ของ Blockchain ของเรานั่นเอง ส่วน Resource group ถ้าใครยังไม่เคยสร้างให้กดเลือก Create new แล้วตั้งชื่ออะไรก็ได้ลงไป ตัว Location คือจะตั้ง Blockchain นี้ไว้ที่ data center โซนไหน ซึ่งเราใช้ในประเทศไทยก็เลือกเป็น Southeast Asia ไปครับมันจะได้เร็วๆ

ถ้ามองไม่ชัดให้กดที่รูปเพื่อขยายได้นะ

3.2.ในหมวด Deployment regions เขาจะถามถึงว่าแต่ละภูมิภาคจะให้สร้าง Cluster ไว้ที่ไหนบ้าง ซึ่งถ้าเราจะแค่ลองวิชาในช่อง Number of region(s) ก็เลือกแค่ 1 ก็พอ ส่วนช่อง First region ให้เลือกเป็นโซนเดียวกับในตอนแรก แต่ถ้าเราจะใช้งานจริงแนะนำว่าให้เลือกไว้เยอะๆหน่อยก็ดีครับ

3.3.ในหมวด Network size เขาจะถามถึงว่าในแต่ละ Cluster จะให้มีเครื่องอยู่ในนั้นกี่ตัว และเครื่องจะให้มันแรงขนาดไหน ยิ่งแรงมาก็ยิ่งแพงนะ ซึ่งผมแค่จะสร้างเอาไว้ลองเล่นเฉยๆดังนั้นในรอบนี้ผมปล่อยไว้แบบนี้เลย แล้วกดตกลงไป ส่วนใครอยากดูเครื่องขนาดอื่นๆก็กดที่ Change size เพื่อลองเล่นดูได้นะ

3.4.ในหมวด Ethereum Settings เขาก็จะถามถึงการตั้งเริ่มต้นของระบบ ถ้ายังไม่เคยเล่น Ethereum มาก่อนแนะนำว่าให้ใส่ COnsortium Member Id เป็นอะไรก็ได้ระหว่าง 0-255 และในช่อง Admin Ethereum Address ก็ให้ใส่บัญชีเริ่มต้นของระบบ ซึ่งบัญชีนี้จะถูกตั้งค่าให้เป็น Admin ด้วย ซึ่งรหัสบัญชีจะต้องตรงตามมาตรฐานที่เขาตั้งไว้ด้วย ส่วนถ้าไม่รู้ใส่ค่าตามด้านล่างนี้ไปก่อนก็ได้

0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413

แนะนำเพิ่มเติม ในหัวข้อ 3.4 นี้ถ้าใครอยากจะตั้งค่า Gas หรือค่าอะไรต่างๆสามารถกดได้ที่ Advanced Options ได้เลยนะ

3.5.ในหมวด Monitoring เขาก็จะถามว่าจะให้มีการบันทึก Log ต่างๆว่ามีอะไรเกิดขึ้นในระบบบ้างหรือเปล่า ซึ่งในงานจริงก็ควรจะติดตั้งไว้นะเราจะได้ดูว่ามีอะไรแปลกๆเกิดขึ้นกับระบบของเราหรือเปล่า ดังนั้นในรอบนี้ผมจะปล่อยใช้ค่าที่เขาตั้งมาให้เลย

3.6.ในหมวด Summary เขาก็จะถามยืนยันว่าเราจะทำการสร้าง Blockchain โดยมีข้อมูลแบบนี้ถูกต้องหรือไม่ ซึ่งถ้าเราตรวจสอบแล้วถูกต้องก็กดปุ่ม OK ได้เลยครับ แล้วเขาจะให้เรากดให้ยอมรับเงื่อนไขต่างๆ แล้วก็กดปุ่ม Create เพื่อเริ่มทำการสร้างได้เลย

4..เรียบร้อยครับ ที่เหลือก็แค่รอให้มันสร้าง Blockchain Cluster จนเสร็จ เราก็จะได้ Blockchain มาเล่นกันแบ้วววว

ในการสร้าง Blockchain มันจะต้องไปสร้างของขึ้นมาค่อนข้างเยอะมากราวๆ 40-50 นาทีเลย ดังนั้นเราอาจจะต้องเข้าไปดูใน Resource group ว่ามันสร้างเสร็จหรือยังด้วย ซึ่งใน Resource group มันแสดงผลว่ามี Deploying อยู่แสดงว่ามันยังสร้างไม่เสร็จนะ ตามรูปด้านล่างมันมี 2 deploying แสดงว่ายังไม่เสร็จครับ

กินหมูกระทะรอเลยครับ มันใช้เวลาสร้างเกือบชั่วโมง

ถ้ามันสร้างทุกอย่างเสร็จแล้วเขาจะทำการส่งอีเมล์มาแจ้งเรา ตามอีเมล์ที่เรากรอกไว้ในตอนที่ 3.1 เลยครับ

🤔 สร้างเสร็จแล้วไงต่อ ?

หลังจากที่เขาสร้าง Blockchain Cluster ให้เราเสร็จแล้ว ถัดไปเราก็จะลองเข้าไปเล่นกันดูบ้างละ ซึ่งการที่เราจะเข้าไปเล่นนั้นมีหลายวิธีมากเลย แต่วิธีที่ง่ายที่สุดคือ เราจะลองเข้าไปสร้าง account ขึ้นมา 2 ตัวเล่นๆดูก่อนละกัน ซึ่งมันก็จะมีขั้นตอนย่อยๆตามด้านล่างนี้เลยครัช

🔥 ติดตั้งตัว Blockchain client

เพื่อความง่ายในการเข้าไปทำอะไรต่างๆกับ Blockchain ของเรา ผมแนะนำให้เราติดตั้งตัว client ที่ชื่อว่า MetaMask เอาไว้ในเครื่อง โดยสามารถเข้าไปติดตั้งเป็น chrome extension หรือ firefox เอาไว้ก็ได้นะครับ ซึ่งสามารถติดตั้งได้จากลิงค์นี้เลย https://metamask.io ซึ่งพอเข้าไปก็กดติดตั้งให้เรียบร้อยครับ (ในตัวอย่างผมติดตั้งผ่าน Chrome นะ)

MetaMask คือตัว client ที่เอาไว้ใช้งานกับ Ethereum Blockchain ซึ่งสามารถเอาไปใช้งานกับระบบ Ethereum ตัวจริงได้เลย และมันยังสามารถเลือกทำงานกับ Ethereum ที่คนอื่นสร้างไว้ได้ด้วย ดังนั้นเราเลยเลือกตัว client นี้มาใช้งานกับ Blockchain ของเรา

หลังจากติดตั้งไปเรียบร้อยที่ด้านบนขวาก็จะมี icon มาป่าโผล่ขึ้นมา ให้เรากดมันเข้าไป 1 ทีครับ ตามรูปเลย

ถ้าใช้งานเป็นครั้งแรกเขาก็จะให้เราทำการตั้งค่าต่างๆก็กด Get Started ได้เลยครับ

ถัดมาให้เรากดสร้าง Wallet ไปเลยครับ

ทำการตั้งรหัสผ่านให้เรียบร้อยอย่างน้อย 8 ตัวอักษร

ถัดมาเขาก็จะให้เราเก็บรหัสสำหรับ backup account ที่พึ่งสร้างนี้ไว้ ซึ่งนี่คือสิ่งที่เขาสร้าง กุญแจคู่มาให้แล้วเรียบร้อยแล้ว ส่วนเจ้า backup อันนี้เอาไว้สำหรับกู้คืนถ้าเราลืมของพวกนั้นเฉยๆ ถ้าใครจะใช้ account นี้ต่อก็จดไอ้ที่อยู่ในกรอบนี้ไว้ดีๆอย่าให้ใครเห็นนะ และถ้าเราข้ามหน้านี้ไปเราจะไม่เห็นมันอีกแล้วตลอดกาลด้วย

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

ถัดมาเขาจะให้เราใส่ข้อความจากขั้นตอนเมื้อกี้เพื่อยืนยันว่าเราได้จดข้อความนั้นไปแล้วจริงๆ โดยให้เลือกข้อความไปใส่ให้ถูกต้องตามลำดับ แล้วกดถัดไป (ถ้าใครไม่ได้จดไว้ ให้กดปุ่ม Back ด้านบนได้ครับ)

เรียบร้อยพร้อมใช้งาน MetaMask กันแล้ว

เพียงเท่านี้เราก็จะมีบัญชีของ Ethereum ที่สามารถใช้งานจริงๆได้แล้ว รับเหรียญ ETH ได้จริงๆด้วยนะ (ไม่เชื่อลองโอนมาซิจ๊ะ รบกวนเมล์บอกผมด้วยฮ่าๆ)

🔥 การเข้าใช้งาน Blockchain ของเราเอง

หลังจากที่ติดตั้ง MetaMask แล้ว ถัดไปเราก็จะเข้าไปเอา like เพื่อให้ตัว MetaMask นั้นทำการเชื่อมต่อเข้ามายัง Blockchain ที่เราสร้างขึ้นกัน โดยทำตามขั้นตอนด้านล่างนี้เลย

1.กดเข้าไปที่ Resource group ที่เราพึ่งสร้างไป ดังนั้นจากข้อ 3.1 ตั้งชื่อ resource group อะไรไว้ก็ให้กดเข้าไปจากชื่อนั้นเลยนะ ซึ่งของผมตั้งชื่อไว้ว่า saladpuk-demo ดังนั้นผมก็จะเข้าไปตามชื่อนั้นตามรูปเลย

2.ถัดมาที่ด้านบนสุดให้กดที่ Deployments (ถ้ามันมีสถานะ Deploying อยู่แสดงว่ามันยังไม่เสร็จนะให้รอต่อไปหรือลองกด Refresh ดูก็ได้)

3.ถัดมาให้เลือกหาตัวที่ชื่อยาวที่สุดและใช้เวลานานที่สุดครับ ส่วนใหญ่น่าจะเป็นตัวล่าสุดตามรูปเลย

4.คราวนี้ในเมนูให้เลือก Outputs แล้วเราจะเห็นรายละเอียดการเข้าใช้งานแต่ละส่วนของ Blockchain ของเรา ซึ่งสิ่งที่เราต้องการก็คือลิงค์ที่จะเอาไว้ MetaMask เข้ามาใช้งานผ่านวง Blockchain ที่เราสร้างไว้ ดังนั้นให้กดคัดลอกด้านหลังสุดของช่องที่ชื่อว่า ethereum_rpc_endpoint แล้วเอาเก็บไว้ในใช้ในขั้นตอนถัดไปได้เลยครับ

🔥 ตั้งค่า MetaMask ให้มาใช้ Blockchain ของเรา

หลังจากที่ได้ลิงค์ของ Blockchain ส่วนตัวของเรากันแล้ว ถัดไปเราก็จะทำการตั้งค่าให้ MetaMask ชี้มายังวงของ Blockchain ตัวนี้กัน ตามขั้นตอนด้านล่างเลย

1.เข้าไปที่ตัว icon หมาป่าด้านบนขวา แล้วเลือก เครื่อขาย Main Net แล้วแลือก กำหนดค่า RPC

2.ในการตั้งค่าให้ใส่ชื่อ network ลงไปเป็นอะไรก็ได้เพื่อเป็นชื่อย่อขอ network ที่เราจะต่อเข้าไป ส่วนในช่อง New RPC URL ให้เอาลิงค์ที่ได้จากขั้นตอนก่อนหน้าวางลงไปแล้วกด บันทึก ได้เลย

3.เพียงเท่านี้ MetaMask ก็จะมาใช้งาน Blockchain ที่เราสร้างไว้เรียบร้อยแล้วครับ และตัว MetaMask ก็จะสร้างบัญชีใหม่ให้เราโดยอัตโนมัติชื่อ Account 1 ตามรูปด้านล่างเลย

🔥 สร้างบัญชีใหม่

คราวนี้เราก็จะลองสร้างบัญชีใหม่เข้ามาใน Blockchain ของเรากันดูบ้าง โดยมีขั้นตอนตามนี้เลย

1.ที่ตัว MetaMask ให้กดที่ icon ด้านบนขวา แล้วเลือก + สร้างบัญชี ตามรูปด้านล่าง

2.ทำการตั้งชื่อบัญชีให้จำง่ายๆตามใจชอบ แล้วกดสร้างได้เลย

3.เรียบร้อยแล้ว เพียงเท่านี้เราก็มีบัญชี 2 ตัวที่จะเอาไว้ลองเล่นกันละ

🎯 บทสรุป

จากบทความนี้เราก็จะเห็นแล้วว่าการสร้าง Blockchain ของตัวเองนั้นจริงๆไม่ใช่เรื่องยากเลย เมื่อเทียบกับการที่เราจะต้องมานั่งติดตั้งเซิฟเวอร์ลง security เอง เพราะการใช้งานบทคลาว์นั้นสามารถทำให้เราได้ทุกอย่างเพียงแค่คลิกไม่กี่ทีเท่านั้น ส่วนตัว client เราก็ใช้ MetaMask เพื่อเข้าไปใช้งานตัว Ethereum ของเราได้แบบง่ายๆอีกด้วย ดังนั้นเดี๋บวบทความถัดไปเราจะมาลองเขียนโปรแกรมหรือที่เรียกว่า Smart Contracts ให้กับ Blockchain ของเรากันบ้างนะ