בדף הזה מוסבר איך ליצור צומת בלוקצ'יין של Ethereum ב-Blockchain Node Engine באמצעות המסוף או קריאה ל-API.
שימוש במסוף
נכנסים לדף Blockchain Node Engine במסוף Google Cloud .
מעבר אל Blockchain Node Engine
כברירת מחדל מוצג דף הרשימה Nodes. אם לא נוצרו צמתי בלוקצ'יין, תתבקשו ליצור צומת.
כדי ליצור צומת בלוקצ'יין:
לוחצים על יצירה. ייפתח האשף Create a blockchain node.

הגדרת פרטי הצומת:
- שם של צומת בלוקצ'יין: מקלידים שם לצומת. אפשר להשתמש רק באותיות קטנות (a-z), במספרים ובמקפים. לדוגמה,
my-node. - סוג הבלוקצ'יין: בוחרים את השם של הבלוקצ'יין.
לדוגמה,
ETHEREUM. - לוחצים על Continue.
- שם של צומת בלוקצ'יין: מקלידים שם לצומת. אפשר להשתמש רק באותיות קטנות (a-z), במספרים ובמקפים. לדוגמה,
הגדרת פרטי הבלוקצ'יין: הגדרת מידע ספציפי לבלוקצ'יין. לדוגמה, כדי להגדיר צומת Ethereum, בוחרים באפשרויות הבאות. אי אפשר לשנות את הפרטים האלה בהמשך:
- רשת: שם הרשת.
לדוגמה
MAINNET. - סוג הצומת: הסוג של צומת הבלוקצ'יין. לדוגמה,
FULL. - לקוח הביצוע/ההסכמה: השם של שכבת הביצוע/ההסכמה בתוכנת הלקוח. לדוגמה,
GETH/LIGHTHOUSE. במאמר תצורות נתמכות מפורטות השילובים הנתמכים. - הפעלת מרחבי שמות נוספים: מרחב שמות JSON-RPC אופציונלי
כשמשתמשים בלקוח הביצוע של Ethereum Geth. לדוגמה,
debug. - לוחצים על Continue.
- רשת: שם הרשת.
לדוגמה
הגדרת פרטי הרשת:
- בוחרים את המיקום הגיאוגרפי שבו רוצים לארח את המשאבים. לדוגמה,
us-central1. אי אפשר לשנות את המידע הזה בהמשך. כאן מפורטים המיקומים הנתמכים. - הגדרת נקודות קצה: יצירת נקודות קצה שנגישות לכולם.
- לוחצים על Continue.
- בוחרים את המיקום הגיאוגרפי שבו רוצים לארח את המשאבים. לדוגמה,
הוספת תוויות:
- מקלידים צמד מפתח/ערך. לוחצים על הוספת פריט כדי להוסיף עוד צמדי מפתח/ערך.
- לוחצים על Continue.
לוחצים על Create (יצירה). נוצר צומת בלוקצ'יין ומוצגת רשימת Nodes (צמתים). הסטטוס Creating (יצירה) מופיע בעמודה Status (סטטוס) עד שצומת הבלוקצ'יין מוכן לשימוש, ואז הסטטוס משתנה ל-Running (פועל).
שימוש ב-API
כדי ליצור צומת בלוקצ'יין באמצעות API, שולחים בקשת POST ל-API עם מפרט צומת הבלוקצ'יין. הדוגמה הבאה מציגה שימוש בפקודה curl כדי לשלוח בקשה ל-API:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"blockchainType": "BLOCKCHAIN_TYPE",
"privateServiceConnectEnabled" : false,
"ethereumDetails": {
"consensusClient": "CONSENSUS_CLIENT",
"executionClient": "EXECUTION_CLIENT",
"apiEnableAdmin": false,
"apiEnableDebug": false,
"network": "NETWORK",
"nodeType": "NODE_TYPE"
},
"labels": {
"LABEL_KEY": "LABEL_VALUE"
}
}' \
https://blockchainnodeengine.googleapis.com/v1/projects/PROJECT_ID/\
locations/LOCATION/blockchainNodes?blockchain_node_id=NODE_NAME
צריך להחליף את המשתנים בדוגמה הזו בערכים בפועל באופן הבא:
- BLOCKCHAIN_TYPE: השם של בלוקצ'יין. לדוגמה,
ETHEREUM. - CONSENSUS_CLIENT: השם של שכבת ההסכמה בתוכנת הלקוח. לדוגמה,
LIGHTHOUSE. אפשר לעיין בהגדרות נתמכות כדי לראות אילו שילובים נתמכים. - EXECUTION_CLIENT: השם של שכבת ההרצה בתוכנת הלקוח. לדוגמה,
GETH. אפשר לעיין בהגדרות נתמכות כדי לראות אילו שילובים נתמכים. -
apiEnableAdmin: מרחב שמות אופציונלי של JSON-RPC כשמשתמשים בלקוח הביצוע של Ethereum Geth. ההגדרה מושבתת כברירת מחדל. מגדירים אתtrueכדי להפעיל. -
apiEnableDebug: מרחב שמות של JSON-RPC אופציונלי, כשמשתמשים בלקוח הביצוע של Ethereum Geth. ההגדרה מושבתת כברירת מחדל. מגדירים אתtrueכדי להפעיל. - NETWORK: השם של הרשת. לדוגמה,
MAINNET. - NODE_TYPE: הסוג של צומת הבלוקצ'יין. לדוגמה,
FULL. - PROJECT_ID: מזהה הפרויקט ב- Google Cloud . לדוגמה,
my-project-id. - LOCATION: המיקום שבו יתארחו המשאבים. אי אפשר לשנות את המידע הזה בהמשך. לדוגמה,
us-central1. כאן מפורטים המיקומים הנתמכים. - NODE_NAME: שם שאתם מציינים עבור הצומת.
אפשר להשתמש באותיות קטנות (a-z), במספרים ובמקפים. לדוגמה,
my-node.
labels: צמד מפתח/ערך. בדוגמה, המפתח הוא LABEL_KEY, לדוגמהmy-label-key, והערך הוא LABEL_VALUE, לדוגמהmy-label-value.
זוהי דוגמה לתשובה לפקודה הקודמת:
{
"name": "projects/my-project-id/locations/us-central1/operations/operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad",
"metadata": {
"@type": "type.googleapis.com/google.cloud.blockchainnodeengine.v1.OperationMetadata",
"createTime": "2023-05-09T20:40:20.979144857Z",
"target": "projects/my-project-id/locations/us-central1/blockchainNodes/my-node",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
שימו לב שהערך OPERATION_ID מוחזר בדוגמה הקודמת:
operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad
אפשר להשתמש בערך הזה כדי לקבל את הסטטוס של יצירת צומת הבלוקצ'יין.
הגדרת כלי האימות
יש אפשרויות נוספות לתמיכה בלקוחות שמשתמשים בלקוחות beacon של Blockchain Node Engine עם לקוח מאמת בניהול הלקוח.
הערה: האפשרויות האלה זמינות רק באמצעות ה-API.
כדי ליצור צומת בלוקצ'יין עם אפשרויות אימות מוגדרות, משתמשים בפקודה curl, למשל:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"blockchainType": "BLOCKCHAIN_TYPE",
"ethereumDetails": {
"consensusClient": "CONSENSUS_CLIENT",
"executionClient": "EXECUTION_CLIENT",
"apiEnableAdmin": false,
"apiEnableDebug": false,
"network": "NETWORK",
"nodeType": "NODE_TYPE",
"validatorConfig": {
"beaconFeeRecipient": "BEACON_FEE_RECIPIENT",
"mev_relay_urls": "MEV_RELAY_URL",
}
},
}' \
https://blockchainnodeengine.googleapis.com/v1/projects/PROJECT_ID/\
locations/LOCATION/blockchainNodes?blockchain_node_id=NODE_NAME
מקבל עמלת Beacon
אפשר להגדיר כברירת מחדל את מקבל העמלה בלקוח ה-beacon, והוא ישמש אם לקוח הוולידטור לא יציין מקבל עמלה. במסמכי Lighthouse מוגדר המקבל הזה כנמען מוצע של העמלה, אבל מכיוון שגם לקוחות הביצוע וגם לקוחות ה-beacon הם מהימנים, הנמען תמיד ישמש אם הוא צוין.
כתובות האימייל של מקבלי עמלות ה-Beacon חייבות להיות כתובות Ethereum עם התחילית 0x, לדוגמה: 0xb469d8b44a3f559a3386af6273ec4a71da88a15a.
כתובת URL של שרת MEV
צמתי הבלוקצ'יין כוללים שירות מנוהל של MEV-boost. האפשרות הזו מאפשרת ללקוחות להשתמש בשירות או בשירותים חיצוניים ליצירת בלוקים, לבחור את הבלוק הכי טוב מבין הבלוקים שמוצעים על ידי השירותים האלה ולהציע את הבלוק הזה.
לא מומלצים או מאושרים שירותים ספציפיים, והלקוחות אחראים לאימות השירותים שהם בוחרים כאן.
כתובות ה-URL של MEV-relay מצוינות כרשימה של כתובות URL שמופרדות באמצעות פסיקים, לדוגמה "https://mev1.example.org/,https://mev2.example.org/".
הגדרות נתמכות
Blockchain Node Engine תומך במגוון הגדרות. אפשר ליצור צמתים עם כל אחד מהשילובים הבאים:
| nodeType | network | executionClient | consensusClient |
|---|---|---|---|
| מלא | MAINNET | GETH | LIGHTHOUSE |
| מלא | TESTNET_GOERLI_PRATER | GETH | LIGHTHOUSE |
| מלא | TESTNET_SEPOLIA | GETH | LIGHTHOUSE |
| מלא | TESTNET_HOLESKY | GETH | LIGHTHOUSE |
| ARCHIVE | MAINNET | ERIGON | LIGHTHOUSE |