คำเตือน
ซอฟต์แวร์นี้อยู่ในช่วงเริ่มต้นของการพัฒนา และไม่พร้อมสำหรับสภาพแวดล้อมการใช้งานจริง
Hoppipolla (ภาษาไอซ์แลนด์สำหรับ "การกระโดดลงไปในแอ่งน้ำ" ) เป็นเฟรมเวิร์กแบบกระจายสำหรับเครือข่ายที่รับผิดชอบฝั่งผู้ใช้โดยใช้โปรโตคอลอินเทอร์เน็ต SCION โดยจะใช้ส่วนหนึ่งของข้อเสนอ Responsible Internet ด้วยแนวทางที่ได้รับแรงบันดาลใจจากสถาปัตยกรรมที่ได้รับการออกแบบในรายงานผลด้านมูลค่าทางบัญชีสำหรับเครือข่ายที่มีความรับผิดชอบ และโดยการตรวจสอบและควบคุมเส้นทางที่ขับเคลื่อนโดยผู้ใช้สำหรับโครงการเครือข่ายระหว่างโดเมน (UPIN)
เมื่อติดตั้งแล้ว Hoppipolla จะอนุญาตให้ผู้ใช้เผยแพร่นโยบายที่แสดงใน Answer Set Programming (ASP) เพื่อเลือกโหนดเครือข่าย (เช่น ระบบอัตโนมัติ) ที่สอดคล้องกับนโยบายเหล่านี้เมื่อกำหนดเส้นทางแพ็กเก็ตไปยังที่อยู่ระยะไกลอื่นๆ ในเครือข่าย SCION
ตัวอย่างของนโยบายดังกล่าวในภาษาธรรมชาติ:
Do not route network traffic through nodes that are located in country X
ซึ่งการใช้ไวยากรณ์ ASP เฉพาะของ Hoppipolla จะมีลักษณะดังนี้:
-valid(Path) :- country(Hop, "X"), hop(Hop), path(Path), contains(Path, Hop).
เฟรมเวิร์กนี้ประกอบด้วยชุดบริการและ SDK เฉพาะภาษาที่ใช้ในการโต้ตอบกับบริการเหล่านั้นจากฝั่งไคลเอ็นต์ บริการทั้งหมดเปิดเผย gRPC API ที่กำหนดไว้ในโฟลเดอร์ protos
ที่สามารถใช้ได้โดยตรงแทนที่ SDK ที่เลือก
ในแง่ของการพึ่งพาภายนอก Hoppipolla ขึ้นอยู่กับ SCION โดยเฉพาะ ผู้ใช้ได้รับการคาดหวังให้จัดเตรียมจุดเข้าใช้งานสแต็ก SCION ผ่านการเชื่อมต่อที่เสถียรกับ SCION daemon
ปฏิบัติตามคำแนะนำนี้เพื่อติดตั้ง SCION และใช้ภายในโปรแกรมทดสอบ SCIONLab
ในขั้นตอนนี้ Hoppipolla ยังไม่พร้อมสำหรับการผลิตในสภาพแวดล้อมที่มีการกระจายอย่างเต็มรูปแบบ ดังนั้น สำหรับงานทดลอง ขอแนะนำให้คุณเรียกใช้งานภายในเครื่องโดยใช้ docker compose
คุณสามารถดูตัวอย่างตัวเลือกการกำหนดค่าที่สามารถส่งผ่านไปยังบริการต่างๆ ได้ในไฟล์ . .env.example
สำคัญ
สิ่งที่โดดเด่นที่สุดคือ ตัวแปร env HOPPIPOLLA_SCIOND_URI
ควรตั้งค่าเป็นที่อยู่ของ SCION daemon (เช่น 127.0.0.1:30255)
พื้นที่เก็บข้อมูลประกอบด้วยไฟล์ docker-compose.yml
ซึ่งเรียกใช้บริการที่จำเป็นทั้งหมด คุณสามารถหมุน Hoppipolla บนเครื่องของคุณได้ง่ายๆ เพียงเรียกใช้:
docker compose up
คำเตือน
จะแจ้งภายหลัง
ตัวอย่างต่อไปนี้แสดงการใช้งาน Python SDK อย่างง่าย:
config = hp.HoppipollaClientConfig () # ค่าเริ่มต้น ลูกค้า = hp.HoppipollaClient.from_config (config) ผู้ออก = client.get_default_issuer ()policy1 = client.publish_policy (ผู้ออก '-valid (Path) : - ประเทศ (Hop, "X") , hop(Hop), path(Path), มี(Path, Hop).')result = ลูกค้า.ping("1-ff00:0:110,10.0.0.1")
Hoppipolla ได้รับอนุญาตจาก GNU GPL v3.0