ติดตั้ง | สมุดผู้ใช้ | เอกสารสำหรับนักพัฒนา | เอกสารลัง
Foundry เป็นชุดเครื่องมือแบบโมดูลาร์ที่รวดเร็ว พกพาสะดวก สำหรับการพัฒนาแอปพลิเคชัน Ethereum ที่เขียนด้วยภาษา Rust
โรงหล่อประกอบด้วย:
Forge : กรอบการทดสอบ Ethereum (เช่น Truffle, Hardhat และ DappTools)
นักแสดง : มีดกองทัพสวิสสำหรับการโต้ตอบกับสัญญาอัจฉริยะ EVM การส่งธุรกรรมและรับข้อมูลลูกโซ่
ทั่งตี๋ : โหนด Ethereum ในพื้นที่คล้ายกับ Ganache, Hardhat Network
สิ่ว : REPL ที่รวดเร็ว ประโยชน์ใช้สอย และละเอียดถี่ถ้วน
ต้องการความช่วยเหลือในการเริ่มต้นใช้งาน Foundry หรือไม่? อ่าน ? หนังสือโรงหล่อ (WIP)!
ดูคู่มือการติดตั้งในหนังสือ
หากคุณประสบปัญหาใดๆ ขณะติดตั้ง โปรดดูการขอความช่วยเหลือและคำถามที่พบบ่อย
ไปป์ไลน์การคอมไพล์ที่รวดเร็วและยืดหยุ่น
การตรวจหาและติดตั้งเวอร์ชันคอมไพเลอร์ Solidity อัตโนมัติ
การคอมไพล์และการแคชแบบเพิ่มหน่วย : เฉพาะไฟล์ที่เปลี่ยนแปลงเท่านั้นที่จะถูกคอมไพล์ใหม่
การรวบรวมแบบขนาน
รองรับโครงสร้างไดเร็กทอรีที่ไม่ได้มาตรฐาน (เช่น Hardhat repos)
การทดสอบเขียนด้วย Solidity (เช่นใน DappTools)
การทดสอบฟัซซี่อย่างรวดเร็ว ด้วยการลดขนาดอินพุตและการพิมพ์ตัวนับตัวอย่าง
โหมดการฟอร์ก RPC ระยะไกลที่รวดเร็ว ใช้ประโยชน์จากโครงสร้างพื้นฐาน async ของ Rust เช่น tokio
การบันทึกการแก้ไขข้อบกพร่องที่ยืดหยุ่น
สไตล์ DappTools โดยใช้บันทึกที่ปล่อยออกมาของ DsTest
สไตล์ Hardhat โดยใช้สัญญา console.sol
ยอดนิยม
พกพาสะดวก (5-10MB) และติดตั้งง่าย โดยไม่ต้องใช้ Nix หรือตัวจัดการแพ็คเกจอื่น ๆ
CI ที่รวดเร็ว ด้วยการดำเนินการ Foundry GitHub
Forge ค่อนข้างรวดเร็วทั้งในการคอมไพล์ (ใช้ประโยชน์จาก ethers-solc) และการทดสอบ
ดูเกณฑ์มาตรฐานด้านล่าง คุณสามารถดูการวัดประสิทธิภาพเพิ่มเติมได้ในโพสต์ประกาศ v0.2.0 และในพื้นที่เก็บข้อมูล Convex Shutdown Simulation
เกณฑ์มาตรฐานการทดสอบ
โครงการ | ปลอม | DappTools | เร่งความเร็ว |
---|---|---|---|
การส่งสัญญาณ11/โซลเมต | 2.8 วินาที | 6 นาที 34 วินาที | 140x |
รีเฟล็กเตอร์-แล็บ/geb | 0.4 วินาที | 23ส | 57.5x |
Rari-ทุน/ห้องนิรภัย | 0.28 วินาที | 6.5 วินาที | 23x |
หมายเหตุ: ในการวัดประสิทธิภาพข้างต้น การคอมไพล์จะถูกข้ามไปเสมอ
เกณฑ์มาตรฐานการรวบรวม
ประเด็นสำคัญ: การคอมไพล์ Forge จะเร็วขึ้นอย่างต่อเนื่องด้วยปัจจัย 1.7-11.3x ขึ้นอยู่กับจำนวนแคชที่เกี่ยวข้อง
Cast เป็นมีดกองทัพสวิสสำหรับการโต้ตอบกับแอปพลิเคชัน Ethereum จากบรรทัดคำสั่ง
สามารถดูเอกสารเพิ่มเติมได้ในแพ็คเกจการส่ง
foundry.toml
Foundry ได้รับการออกแบบมาให้สามารถกำหนดค่าได้มาก คุณสามารถกำหนดค่า Foundry ได้โดยใช้ไฟล์ชื่อ foundry.toml
ในรูทของโปรเจ็กต์ของคุณ หรือไดเร็กทอรีหลักอื่นๆ ดูแพ็คเกจการกำหนดค่าสำหรับตัวเลือกที่มีทั้งหมด
การกำหนดค่าสามารถกำหนดเนมสเปซตามโปรไฟล์ได้ โปรไฟล์เริ่มต้นมีชื่อว่า default
(ดู "โปรไฟล์เริ่มต้น")
คุณสามารถเลือกโปรไฟล์อื่นได้โดยใช้ตัวแปรสภาพแวดล้อม FOUNDRY_PROFILE
คุณยังสามารถแทนที่การกำหนดค่าบางส่วนของคุณโดยใช้ตัวแปรสภาพแวดล้อมที่นำหน้า FOUNDRY_
หรือ DAPP_
เช่น FOUNDRY_SRC
forge init
จะสร้างไฟล์ foundry.toml
พื้นฐานที่ขยายได้
หากต้องการดูการกำหนดค่าปัจจุบันของคุณ ให้เรียกใช้ forge config
หากต้องการดูเฉพาะตัวเลือกพื้นฐาน (ตามที่ตั้งค่าไว้ด้วย forge init
) ให้เรียกใช้ forge config --basic
สามารถใช้เพื่อสร้างไฟล์ foundry.toml
ใหม่ด้วย forge config --basic > foundry.toml
ตามค่าเริ่มต้น forge config
จะแสดงโปรไฟล์โรงหล่อที่เลือกในปัจจุบันและค่าของมัน นอกจากนี้ยังยอมรับข้อโต้แย้งเดียวกันกับ forge build
คุณสามารถใช้ตัวแปรสภาพแวดล้อม .dapprc
ของคุณซ้ำได้โดยการเรียกใช้ source .dapprc
ก่อนที่จะใช้เครื่องมือ Foundry
คุณสามารถดูคู่มือการตั้งค่าและการกำหนดค่าเพิ่มเติมได้ใน Foundry Book:
การตั้งค่า VSCode
การเติมข้อมูลอัตโนมัติของเชลล์
ดูแนวทางการสนับสนุนของเรา
ขั้นแรก ดูว่าคำตอบสำหรับคำถามของคุณสามารถพบได้ในหนังสือหรือในกล่องที่เกี่ยวข้อง
หากไม่มีคำตอบ:
เข้าร่วม Telegram สนับสนุนเพื่อขอความช่วยเหลือหรือ
เปิดการสนทนาด้วยคำถามของคุณหรือ
เปิดประเด็นที่มีข้อบกพร่อง
หากคุณต้องการมีส่วนร่วมหรือติดตามการสนทนาของผู้สนับสนุน คุณสามารถใช้โทรเลขหลักของเราเพื่อพูดคุยกับเราเกี่ยวกับการพัฒนา Foundry!
Foundry เป็นการเขียนใหม่ในห้องสะอาดของเฟรมเวิร์กการทดสอบ DappTools สิ่งเหล่านี้จะไม่มีทางเกิดขึ้นได้หากปราศจากการทำงานของทีมงาน DappHub ตลอดหลายปีที่ผ่านมา
Matthias Seitz: สร้าง ethers-solc ซึ่งเป็นแกนหลักของไปป์ไลน์การคอมไพล์ของเรา เช่นเดียวกับการมีส่วนร่วมกับ ethers นับไม่ถ้วน โดยเฉพาะมาโคร abigen
Rohit Narurkar: สร้างตัวจัดการเวอร์ชัน Rust Solidity svm-rs ซึ่งเราใช้ในการตรวจจับและจัดการเวอร์ชัน Solidity หลายเวอร์ชันโดยอัตโนมัติ
Brock Elmore: สำหรับการขยายรหัสโกงของ VM และการใช้งานการติดตามการโทรที่มีโครงสร้าง ซึ่งเป็นคุณสมบัติที่สำคัญสำหรับการดีบักการโทรตามสัญญาอัจฉริยะ
ผู้ร่วมให้ข้อมูลคนอื่นๆ ทั้งหมดในคลังเก็บ ethers-rs & Foundry และห้องสนทนา