อีวีเอ็มซี
API ตัวเชื่อมต่อไคลเอ็นต์-VM ของ Ethereum
EVMC เป็น ABI ระดับต่ำระหว่าง Ethereum Virtual Machines (EVM) และไคลเอนต์ Ethereum ในด้าน EVM รองรับ EVM1 แบบคลาสสิกและ ewasm ฝั่งไคลเอ็นต์จะกำหนดอินเทอร์เฟซสำหรับการใช้งาน EVM เพื่อเข้าถึงสภาพแวดล้อมและสถานะของ Ethereum
การใช้งาน
เอกสารประกอบ
กรุณาเยี่ยมชมเอกสาร
รองรับภาษา
ภาษา | เวอร์ชันที่รองรับ | คอมไพเลอร์ที่รองรับ | การสนับสนุนคุณสมบัติ |
---|
ค | ค99, ค11 | GCC 8+, เสียงดังกราว 9+, MSVC 2017+ | โฮสต์และฝั่ง VM |
ซี++ | ค++17 | GCC 8+, เสียงดังกราว 9+, MSVC 2017+ | โฮสต์และฝั่ง VM |
ไป (ผูกพัน) | 1.11+ (พร้อมโมดูล) | | ฝั่งโฮสต์เท่านั้น |
สนิม (การยึดเกาะ) ¹ | ฉบับปี 2018 | 1.47.0 และใหม่กว่า | ฝั่ง VM เท่านั้น |
Java (การเชื่อมโยง) ² | 11 | | ฝั่งโฮสต์เท่านั้น |
- ↑ การรองรับ Rust นั้นมีจำกัดและยังไม่เสร็จสมบูรณ์ แต่ส่วนใหญ่ใช้งานได้แล้ว การเปลี่ยนแปลงที่แตกหักเป็นไปได้ในขั้นตอนนี้
- ↑ การสนับสนุน Java อยู่ในระหว่างดำเนินการ และอินเทอร์เฟซยังคงอยู่ในฟลักซ์ การเปลี่ยนแปลงที่แตกหักเป็นไปได้ในขั้นตอนนี้
เครื่องมือทดสอบ
- evmc run (tools/evmc) — รัน bytecode ในการใช้งาน VM ที่เข้ากันได้กับ EVMC
- evmc-vmtester (tools/vmtester) — สามารถทดสอบการใช้งาน EVM ใดๆ ว่าเข้ากันได้กับ EVMC
โครงการที่เกี่ยวข้อง
EVM
- aleth-ล่าม
- เดย์โทนา
- eip1962-evmc (พรีคอมไพล์สไตล์ EIP-2003)
- เอฟมจิต
- เอฟโมน
- เฮร่า
- เฮรา.อาร์
- ssvm-evmc
ลูกค้า
- เอเลธ
- core-geth (กำลังดำเนินการ)
- เอริกอน (กับหนอนไหม)
- evmc-js
- go-ethereum (กำลังดำเนินการ)
- nim-evmc
- phant (กำลังดำเนินการ)
- เปียฟม์ (กำลังดำเนินการ)
- ไพอีเรียม (ละทิ้ง)
- rust-ssvm (ฝั่งโฮสต์ของสนิม)
- ไหม
- ความแข็งแกร่ง (สำหรับการทดสอบการรวมระบบ)
ผู้ดูแล
- อเล็กซ์ เบเรกซาสซี่ @axic
- พาเวล บิลิกา @chfast
ดูเพิ่มเติมที่รายชื่อผู้เขียน EVMC
มีส่วนร่วม
พูดคุยกับเราในการแชท EVMC Gitter
ใบอนุญาต
ได้รับอนุญาตภายใต้ Apache License เวอร์ชัน 2.0
ภายใน
กำลังออกรุ่นใหม่
- อัปเดต CHANGELOG.md ใส่วันที่เผยแพร่ อัปเดตลิงก์การเผยแพร่
-
git add CHANGELOG.md
- แท็กรุ่นใหม่:
bumpversion --allow-dirty prerel
- เตรียม CHANGELOG สำหรับรุ่นถัดไป: เพิ่มส่วนและลิงก์ที่ยังไม่ได้เผยแพร่
-
git add CHANGELOG.md
- เริ่มซีรีส์ออกใหม่:
bumpversion --allow-dirty --no-tag minor