วันอังคาร, กรกฎาคม 17

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

ในโลกของ 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.1 format transaction

          1.2 signature ของ transaction

          1.3 ค่า nonce ของ transaction ตรงกับค่า nonce ของ address ที่ทำ transaction

2.คำนวนค่าธรรมเนียมที่ผู้ส่งจะต้องจ่ายเพื่อให้ miner ทำงานใน transaction จากค่า STARTGAS * GASPRICE

3.หักค่าธรรมเนียมที่คำนวนได้จากข้อ 2 และเพิ่มค่า nonce ให้กับ address ที่ทำ transaction

4.คำนวนค่า GAS ตั้งต้นสำหรับใช้ในการทำงานของ transaction

5.หัก eth จาก address ต้นทางและนำ eth ไปเพิ่มให้ address ปลายทาง

6.กรณีที่ไม่สามารถทำ transaction ได้เพราะ address ต้นทางมี eth ไม่เพียงพอหรือค่า GAS ไม่เพียงพอสำหรับใช้งานของ transaction ระบบจะ rollback ข้อมูล state ทั้งหมดยกเว้นค่าธรรมเนียมที่จะนำไปให้ miner’s account

วันนี้เราก็ทำความรู้จักคร่าวๆแล้วว่าในการทำ transaction 1 ครั้งในโลก Ethereum จะมีกิจกรรมอะไรที่เกี่ยวกับการเปลี่ยน state เกิดขึ้นบ้าง แล้วพบกันใหม่คร่าวหน้าซึ่งจะเป็นตอนสุดท้ายของบทความนี้ครับ

Facebook Comments