บทความนี้จะเป็นการต่อยอดจาก บทความเดิม การพัฒนา Ethereum Smart Contract และ Backend ด้วยภาษา Go โดยใช้ Ganache ซึ่งทำงานอยู่บน Blockchain เฉพาะเครื่องตนเองเท่านั้น
วันนี้เลยจะทดลองเปลี่ยนไปใช้ Blockchain จริงๆ โดยในบทความนี้ใช้เป็น REI chain ใครยังไม่เคยใช้สามารถเข้าไปลอง HelloWorld ได้ ตาม บทความนี้ ครับ
โดยบทความในนี้จะมีเนื้อหาดังต่อไปนี้
- ติดตั้ง Metamask
- ตั้งค่า Network เป็น REI testnet
- ขอ tREI จาก kururu
- Deploy Smart Contract ไปที่ REI chain
- รัน backend เชื่อมต่อกับ REI chain
- ทดลอง backend
ผมจะใช้ Metamask เป็นกระเป๋า (wallet) สำหรับบริหารจัดการ REI Chain โดยสามารถติดตั้งได้ที่ metamask.io จากนั้นติดตั้งตามขั้นตอน
เมื่อได้ account เรียบร้อย ต่อมาเป็นการตั้งค่า Network สำหรับ REI chain ในบทความนี้เราจะใช้เป็น testnet ครับ
จากนั้นให้ไปที่ Network ด้านบน > Show/Hide Test networks ดังนี้
ในหัวข้อ Show test networks ให้กด On ดังนี้
จากนั้นกลับเพิ่ม Network ใหม่ โดยไปที่ Network ด้านบน > Add Network ดังต่อไปนี้
ให้ตั้งค่าต่างๆ ดังนี้ครับ
● Network Name: Rei Testnet
● New RPC URL: https://rei-testnet-rpc.moonrhythm.io
● Chain ID : 55556
● Currency Symbol : tREI
● Block Explorer URL : https://testnet.reiscan.com
จากนั้น save
ทั้งนี้บน REI chain testnet จะใช้ tREI สำหรับใช้จ่ายค่าธรรมเนียมการใช้งาน chain ซึ่งเราสามารถขอได้ฟรีๆ โดยเข้าไปที่ kururu.finance จะปรากฏหน้าจอดังนี้
กด Submit > Sign จากนั้นให้เข้าไปดูที่กระเป๋าจะพบว่าได้รับ 10 tREI มาฟรีๆเลย ดังนี้
ต่อมาเราจะ deploy ไปที่ REI chain โดยใช้ code เดิมเลยจากบทความที่แล้ว สิ่งที่เราต้องเปลี่ยนมี 2 ที่ คือ 1. Private Key ของกระเป๋าใหม่ใน Metamask 2. แก้ไข code deploy.go
1. เริ่มจากเอา Private Key จาก Metamask โดยทำตามขั้นตอนดังรูป
***หมายเหตุ Private Key อันนี้สำคัญมากห้ามส่งให้ใครเด็ดขาด
2. แก้ไข code deploy.go จากบทความที่แล้ว โดยแก้ไขดังนี้
บรรทัดที่ 16: แก้ไขเป็น RPC URL ของ REI chain คือ https://rei-testnet-rpc.moonrhythm.io
บรรทัดที่ 21: ใส่ Private Key ที่ได้จาก Metamask
บรรทัดที่ 50: ใส่ GasPrice เป็น 1 gwei
จากนั้น deploy ด้วยคำสั่งเดิมได้เลย ดังนี้
> go run ./deploy/deploy.go
เมื่อรันสำเร็จเราจะได้เลข Contract Address
จากนั้นให้แก้ code ใน main.go ใน folder script
บรรทัดที่ 17: แก้ไขเป็น RPC URL ของ REI chain คือ https://rei-testnet-rpc.moonrhythm.io
บรรทัดที่ 22: เป็น Private Key จาก Metamask
บรรทัดที่ 37: เป็น Contract Address ที่ deploy ไปบน REI chain
จากนั้นรัน backend ด้วยคำสั่งต่อไปนี้
> go run ./script/main.go
ซึ่งจะได้ผลลัพธ์ดังต่อไปนี้
เริ่มผมลองเปิด Browser แล้ว เรียกไปที่ http://localhost:1324/greet จะได้ผลลัพธ์ดังนี้
ซึ่งจะแสดงผลลัพธ์เป็นคำว่า smartcontactgo
จากนั้นผมลอง set ค่า greeting เป็นคำว่า helloworldrei ใหม่โดยเรียกไปที่ http://localhost:1324/greet/helloworldrei จะได้ผลลัพธ์ดังนี้
จากนั้นผมลองรับไปเรียกที่ http://localhost:1324/greet จะได้ผลลัพธ์ดังนี้
ซึ่งจะแสดงผลลัพธ์เป็นคำว่า helloworldrei แสดงว่าเราสามารถ set ค่าไปที่ blockchain ได้สำเร็จผ่านทาง backend ที่สร้างขึ้นครับ
นอกจากนี้จริงทาง REI chain มี Block Explorer ให้เราสามารถเข้าไปตรวจสอบธุรกรรมต่างๆได้ โดยนำไปเลขกระเป๋า หรือ contract address ไปค้นที่ด้านซ่ายบนได้ดังนี้
ในบทความนี้ต่อยอดจากบทความเดิมการพัฒนา Ethereum Smart Contract และ Backend ด้วยภาษา Go โดยนำไปเชื่อมกับ REI chain
สุดท้ายนี้ เนื้อหาในบทความนี้ผิดพลาดประการใดต้องขออภัยมา ณ ที่นี้ด้วยนะครับ
บทความโดย อ.ผศ.ดร.ธรรณพ อารีพรรค
วิทยาลัยนวัตกรรมดิจิทัลเทคโนโลยี มหาวิทยาลัยรังสิต