मुख्य सामग्री पर जाएं

कनेक्शन

कोटा, सीमाएँ और कीमतें HTTP जैसी ही हैं। किसी कॉल को उसी फ़ॉर्मूले से उसके protobuf रिस्पॉन्स के आकार के हिसाब से तौला जाता है — देखें कोटा इकाइयाँ।

.proto फ़ाइलें

सर्वर में रिफ़्लेक्शन नहीं है: आपके क्लाइंट को TRON की .proto फ़ाइलें चाहिए। ये tronprotocol/protocol रिपॉज़िटरी में प्रकाशित हैं; सेवाएँ api/api.proto में हैं।
grpcurl में -import-path को क्लोन की गई डायरेक्टरी पर और -proto को api/api.proto पर सेट करें:
कोड में, अपनी भाषा के gRPC टूल से इन्हीं फ़ाइलों से स्टब जनरेट करें, 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 को केवल एक बार निष्पादित करता है।