कनेक्शन
कोटा, सीमाएँ और कीमतें HTTP जैसी ही हैं। किसी कॉल को उसी फ़ॉर्मूले से उसके protobuf रिस्पॉन्स के आकार
के हिसाब से तौला जाता है — देखें कोटा इकाइयाँ।
.proto फ़ाइलें
सर्वर में रिफ़्लेक्शन नहीं है: आपके क्लाइंट को TRON की.proto फ़ाइलें चाहिए। ये
tronprotocol/protocol रिपॉज़िटरी में प्रकाशित हैं; सेवाएँ
api/api.proto में हैं।
-import-path को क्लोन की गई डायरेक्टरी पर और -proto को api/api.proto पर सेट करें:
node.tronrental.com:443 तक TLS
चैनल खोलें, और हर कॉल के मेटाडेटा में कुंजी भेजें।
मेथड के नाम और बाइट
-
मेथड के नाम केस-सेंसिटिव हैं, जैसे
.protoमें:protocol.Wallet/GetAccount, न किgetAccount। जो मेथड नोड में नहीं है, वह कॉलUNIMPLEMENTED,x-node-api-reason: method_not_foundऔरx-node-api-wu: 0के साथ खत्म होती है — इसका कोई शुल्क नहीं लगता। -
पते और ID बाइट हैं। grpcurl JSON में बाइट base64 होते हैं। TRON पता 21 बाइट का होता है:
41और उसके बाद 20 बाइट। उसके hex रूप को base64 में बदलने के लिए: -
रिक्वेस्ट संदेश अधिकतम 512 KB का हो सकता है। इससे बड़ा संदेश प्रोसेस होने से पहले ही
RESOURCE_EXHAUSTEDके साथ अस्वीकार हो जाता है।
ट्रेलिंग मेटाडेटा
स्टेटस कोड
अस्वीकृतियाँ अपने HTTP स्टेटस के आधार पर gRPC स्टेटस में बदली जाती हैं। कोड खुदx-node-api-reason
में होता है; पूरी सूची सीमाएँ और त्रुटियाँ में है।
नोड खुद जो त्रुटि लौटाता है (उदाहरण के लिए, गलत बने ट्रांज़ैक्शन पर
INVALID_ARGUMENT), वह आपको जैसी
की तैसी भेजी जाती है और उसकी कीमत 1 WU है: काम नोड ने किया। अगर नोड जवाब नहीं देता, तो कॉल
UNAVAILABLE और x-node-api-reason: node_error के साथ खत्म होती है और इसका कोई शुल्क नहीं लगता।
x-node-api-reason के बिना RESOURCE_EXHAUSTED खुद gRPC सर्वर से आता है: रिक्वेस्ट संदेश 512 KB से
बड़ा है, या सर्वर एक साथ बहुत ज़्यादा कॉल संभाल रहा है। दूसरी स्थिति में थोड़ा रुककर दोबारा कोशिश
करें।दोबारा कोशिश और ब्रॉडकास्ट
कोई कॉल आपकी जानकारी के बिना किसी दूसरे नोड पर कभी दोहराई नहीं जाती:UNAVAILABLE का मतलब यह हो
सकता है कि नोड को रिक्वेस्ट मिलने के बाद कनेक्शन टूट गया। वही साइन किया हुआ ट्रांज़ैक्शन
BroadcastTransaction पर दोबारा भेजना सुरक्षित है — नेटवर्क किसी ट्रांज़ैक्शन ID को केवल एक बार
निष्पादित करता है।