इस प्रोजेक्ट के बारे में
Go Ethereum (geth) एथेरियम प्रोटोकॉल का Go निष्पादन-परत कार्यान्वयन है। यह नोड्स चलाने और एथेरियम मेननेट, टेस्ट नेटवर्क या निजी चेन पर एप्लिकेशन बनाने के लिए एक कमांड-लाइन क्लाइंट, लाइब्रेरी पैकेज और डेवलपर टूल प्रदान करता है।
## बिल्डिंग
परियोजना के लिए Go 1.23 या बाद का संस्करण और एक C कंपाइलर आवश्यक है। `make geth` मुख्य क्लाइंट बनाता है, जबकि `make all` उपयोगिताओं का पूरा सूट बनाता है। पूर्व-निर्मित बाइनरी आर्काइव geth.ethereum.org/downloads पर प्रकाशित होते हैं।
## निष्पादन योग्य फ़ाइलें
रिपॉजिटरी में `cmd` डायरेक्टरी में कई कमांड शामिल हैं:
- `geth` – प्राथमिक एथेरियम CLI क्लाइंट। यह पूर्ण नोड या आर्काइव नोड के रूप में चल सकता है, मेननेट, टेस्टनेट या निजी नेटवर्क से कनेक्ट होता है, और HTTP, WebSocket और IPC पर JSON-RPC एंडपॉइंट उजागर करता है।
- `devp2p` – पूरी ब्लॉकचेन चलाए बिना नेटवर्किंग परत के साथ इंटरैक्ट करने के लिए उपयोगिताएँ।
- `abigen` – एक सोर्स-कोड जनरेटर जो एथेरियम कॉन्ट्रैक्ट ABI (और वैकल्पिक रूप से Solidity स्रोत) को कंपाइल-टाइम टाइप-सुरक्षित Go पैकेज में बदलता है।
- `evm` – एथेरियम वर्चुअल मशीन का एक डेवलपर संस्करण जो कॉन्फ़िगर करने योग्य वातावरण में बाइटकोड स्निपेट चलाने के लिए है, ऑपकोड-स्तर डिबगिंग के लिए उपयोगी।
- `rlpdump` – एक टूल जो बाइनरी RLP डंप को पठनीय पदानुक्रमित प्रतिनिधित्व में बदलता है।
## geth चलाना
सामान्य उपयोग `geth console` है, जो स्नैप-सिंक किए गए पूर्ण नोड को शुरू करता है और एक इंटरैक्टिव JavaScript कंसोल प्रदान करता है। `--sepolia` फ़्लैग अलग बूटनोड्स, नेटवर्क ID, जेनेसिस स्टेट और डेटा डायरेक्टरी का उपयोग करके Sepolia टेस्ट नेटवर्क से कनेक्ट होता है। कॉन्फ़िगरेशन `geth --config` के साथ TOML फ़ाइल के माध्यम से भी दिया जा सकता है, और मौजूदा सेटिंग्स को `dumpconfig` के साथ निर्यात किया जा सकता है।
न्यूनतम हार्डवेयर सिफ़ारिशें 4+ CPU कोर, 8GB RAM, कम से कम 2TB खाली स्थान वाला उच्च-प्रदर्शन SSD, और 8 Mbit/s डाउनलोड बैंडविड्थ हैं; दीर्घकालिक वृद्धि के लिए अनुशंसित विशिष्टताएँ अधिक हैं।
एक Docker क्विक स्टार्ट प्रदान किया गया है: `docker run -d --name ethereum-node -v /Users/alice/ethereum:/root -p 8545:8545 -p 30303:30303 ethereum/client-go`। ध्यान दें कि अन्य होस्ट से RPC एक्सेस के लिए स्पष्ट रूप से `--http.addr 0.0.0.0` सेट करना आवश्यक है।
## प्रोग्रामेटिक एक्सेस
geth HTTP, WebSocket और IPC पर JSON-RPC API का समर्थन करता है। IPC इंटरफ़ेस डिफ़ॉल्ट रूप से सक्षम होता है और सभी API उजागर करता है, जबकि HTTP और WS को स्पष्ट रूप से सक्षम करना होता है और वे सुरक्षा-सचेत उपसमूह उजागर करते हैं। सामान्य फ़्लैग में `--http`, `--http.addr`, `--http.port`, `--http.api`, `--http.corsdomain`, `--ws`, `--ws.origins`, `--ipcdisable`, और `--ipcpath` शामिल हैं। README चेतावनी देता है कि HTTP/WS API को सार्वजनिक रूप से उजागर करने में सुरक्षा जोखिम हैं, क्योंकि दुर्भावनापूर्ण अभिनेता सक्रिय रूप से उजागर एथेरियम नोड्स की जाँच करते हैं।
## निजी नेटवर्क
Merge के बाद से, geth नोड्स का निजी नेटवर्क चलाने के लिए संबंधित बीकन चेन भी सेट करना आवश्यक है। तीन विकल्प प्रलेखित हैं:
- Simulated Backend – Go CI में स्मार्ट कॉन्ट्रैक्ट्स के परीक्षण के लिए।
- Dev Mode – परीक्षण के लिए एक सुविधाजनक सिंगल-नोड वातावरण।
- Kurtosis – मल्टी-नोड टेस्ट नेटवर्क सेट करने के लिए।
## योगदान
योगदान `master` ब्रांच के विरुद्ध पुल रिक्वेस्ट के माध्यम से स्वीकार किए जाते हैं। कोड को आधिकारिक Go फ़ॉर्मेटिंग और कमेंट्री दिशानिर्देशों का पालन करना चाहिए, और कमिट संदेशों को संशोधित पैकेज(ों) के साथ उपसर्गित किया जाना चाहिए। अधिक जटिल परिवर्तनों पर Discord पर कोर डेवलपर्स के साथ चर्चा की जानी चाहिए। वेबसाइट योगदान `website` ब्रांच को लक्षित करते हैं।
## लाइसेंस
go-ethereum लाइब्रेरी (`cmd` के बाहर का कोड) LGPL v3.0 के अंतर्गत लाइसेंस प्राप्त है; बाइनरी (`cmd` के अंदर का कोड) GPL v3.0 के अंतर्गत लाइसेंस प्राप्त हैं।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.