จากงาน Blockchain Hackathon ซึ่งเขียนอธิบายไว้ที่ Blog ก่อนหน้า
นั้นอยู่ร่วมกับทีมสร้างระบบเกี่ยวกับชาวนา
โดยแนวคิดคร่าว ๆ คือ
ต้องการเก็บข้อมูลของการผลิตข้าวของชาวนา
ตั้งแต่ก่อนการปลูก การปลูก การเก็บเกี่ยว
ตลอดจนการซื้อขายข้าว
รวมไปถึงรู้ได้เลยว่าข้าวแต่ละถุงที่เรา ๆ ท่าน ๆ กินกันอยู่
มีประวัติในการปลูกอย่างไรบ้าง
เพื่อทำให้ผู้บริโภคมั่นใจในข้าวที่กินอยู่
เพื่อทำให้ชาวนาสามารถแลกเปลี่ยนข้อมูลการเกษตรได้
สุดท้ายเพื่อทำให้ชาวนามีชีวิตที่ดีขึ้น (Better Farmer)
ก่อนที่จะไปไกลมาดูขั้นตอนการพัฒนาระบบดีกว่า
ซึ่งทำได้จริง ๆ เพียง- การสร้างข้อมูลชาวนา (Farmer)
- การแสดงข้อมูลชาวนา
- การสร้างข้อมูลการปลูกข้าวของชาวนา (Story/Activity)
- การแสดงข้อมูลการปลูกข้าว
โดยการพัฒนาเริ่มจากการออกแบบ Smart Contract ใน Ethereum ก่อน
แน่นอนว่าต้องเขียนด้วยภาษา Solidity มาเริ่มสร้าง Contract กันเลย1. ตั้งชื่อ Contract ว่า BetterFarmerContract
[gist id="5c596215e24e1ad09f1f56dc9fa8c6af" file="1.sol"]2. กำหนดโครงสร้างข้อมูลของชาวนาและข้อมูลการปลูกข้าว
กำหนดโดยใช้ struct นั่นเอง [gist id="5c596215e24e1ad09f1f56dc9fa8c6af" file="2.sol"] สิ่งที่พบก็คือ เราไม่สามารถ return Struct ที่เราสร้างออกมาได้ แต่สามารถเรียกผ่านตัวแปร public ได้ นั่นก็คือ ถ้าต้องการดึงข้อมูลชาวนาและข้อมูลการปลูกข้าวทั้งหมด ต้องดึงข้อมูลผ่านตัวแปร farmers และ storiesปล. การออกแบบยังแย่มาก ๆ นะ แต่ก็ทำให้เข้าใจภาษา Solidity มากยิ่งขึ้น
3. ทำการกำหนด function การทำงาน หรือให้ใช้งานนั่นเอง
โดยประกอบไปด้วย- การสร้างข้อมูลของชาวนา
- การดึงข้อมูลของชาวนาแต่ละคน
- การสร้างข้อมูลการปลูกข้าวของชาวนาแต่ละคน
- จำนวนข้อมูลการปลูกข้าวทั้งหมดของชาวนาแต่ละคน
4. ทำการพัฒนาระบบงานด้วย web3.js
สิ่งที่น่าสนใจมี 2 เรื่องคือ- การสร้างข้อมูลทั้ง farmer และ story/activity
- การดึงข้อมูลของ farmer และ story/activity
- ระบบ refer ของโรงพยาบาล
- เกมส์เศรษฐี
- ซื้อขายสินค้า