Trending News

BTC
$23,768.13
+3.21
ETH
$1,644.67
+4.6
LTC
$95.00
+5.85
DASH
$56.58
+11.64
XMR
$186.76
+1.53
NXT
$0.00
-6.17
ETC
$22.65
+4.28

सी++ डीईवी अपडेट – जुलाई संस्करण

0


पिछले C++ DEV अपडेट के बाद से, इंजन रूम में बहुत सी चीजें हुईं जो वास्तव में बाहर से दिखाई नहीं दे रही थीं। यह पोस्ट इस बारे में एक सिंहावलोकन देना चाहता है कि हम वर्तमान में किस पर काम कर रहे हैं।

सुविधाओं के अलावा, बॉब अपाचे 2.0 के लिए सी ++ रनटाइम क्लाइंट कोड के पुन: लाइसेंसिंग के लिए प्रस्तावित प्रक्रिया पर काम कर रहा है, जैसा कि पिछले एक या दो महीने में कुछ बार उल्लेख किया गया है। बहुत जल्द उस पर और ख़बरों की अपेक्षा करें।

एथ यूनिट-टेस्ट मोड

केवल इसलिए नहीं कि यह IPC के माध्यम से हमारे सॉलिडिटी एंड-टू-एंड टेस्ट करने में सक्षम होने के लिए आवश्यक है, दिमित्री खोखलोव और अन्य ने एथ क्लाइंट के लिए कुछ नए RPC एंडपॉइंट जोड़े हैं जो स्मार्ट कॉन्ट्रैक्ट्स के परीक्षण के लिए बहुत अधिक लचीलेपन की अनुमति देते हैं। यदि आप eth –test -d /tmp/test का उपयोग करते हैं और /tmp/test/geth.ipc पर ipc पोर्ट से कनेक्ट करते हैं (हम उपयोग करने की अनुशंसा करते हैं ethereum-console उसके लिए क्योंकि इसमें पहले से ही ये सुविधाएँ जोड़ी गई हैं) आप यह कर सकते हैं:

  • ब्लॉकचेन मापदंडों को बदलें (उदाहरण के लिए काम की जाँच का प्रमाण हटाएं और कुछ खातों को प्री-फंड करें)
  • एक निश्चित मात्रा में ब्लॉक (लगभग 30 ब्लॉक प्रति सेकंड)
  • वर्तमान ब्लॉक के टाइमस्टैम्प को संशोधित करें (उदाहरण के लिए अपने अनुबंधों में टाइमआउट का परीक्षण करें)
  • ब्लॉकचेन को दिए गए ब्लॉक नंबर पर वापस लाएं

यह हमें एक मध्यम कंप्यूटर पर लगभग 46 सेकंड में हमारे वर्तमान में 305 सॉलिडिटी एंड-टू-एंड टेस्ट चलाने की अनुमति देता है। इनमें से प्रत्येक परीक्षण में कम से कम दो (अक्सर अधिक) लेनदेन और समान मात्रा में खनन ब्लॉक शामिल हैं।

इन सुविधाओं के बारे में अधिक जानकारी पर प्राप्त की जा सकती है https://github.com/ethereum/ethereum-console.

कृपया ध्यान दें कि यह वर्तमान में केवल बाइनरी के लिए उपलब्ध है जो कि उबंटू देव पीपीए.

वर्चुअल मशीन स्पीडअप

ग्रेग कोल्विन ने पिछले महीने ईवीएम दुभाषिया के सी ++ कार्यान्वयन को तेज करने में बिताया। उन्होंने कम लटकने वाले फलों को काटा (उन्होंने पहले जावा दुभाषिया पर ओरेकल के लिए काम किया …)। अब तक के सबसे महत्वपूर्ण सुधार गैस मीटरिंग के लिए 64-बिट गणनाओं के साथ 256-बिट गणनाओं को बदलना और यह सुनिश्चित करना है कि प्रत्येक वीएम ऑपरेशन के लिए आवश्यकता से अधिक मीटरिंग गणना नहीं की जाती है। इन और अन्य परिवर्तनों के परिणामस्वरूप Paweł Bylica के नवजात शिशु के लिए निम्नलिखित परिणाम सामने आए बेंचमार्क सूट. निम्न चार्ट पुराने सीपीपी एथेरियम दुभाषिया (सीपीपी इंट (पुराना)) के सापेक्ष स्पीडअप दिखाता है।

निष्पक्ष होने के लिए हमें यह बताना होगा कि ये बेंचमार्क क्या मापते हैं। पहला बेंचमार्क (जहां evmjit 472x के स्पीडअप के साथ पैमाने से बाहर हो जाता है) एक लाख खाली लूप करता है, और दिखाता है कि EVM के कंप्यूटेड गोटो की तुलना JIT की सीधी छलांग से कितनी धीमी है – फिक्सिंग जो स्टैक पर अगला है। दूसरा बेंचमार्क एक खराब यादृच्छिक संख्या जनरेटर है जो प्रति लूप चार गुणन और चार परिवर्धन के साथ एक लाख लूप करता है। यह 256-बिट गणनाओं का प्रभुत्व है, इसलिए एक JIT कम अंतर बनाता है। (ध्यान दें कि गो जेआईटी मूल कोड को संकलित नहीं करता है, लेकिन तेजी से व्याख्या किए गए प्रतिनिधित्व के लिए।)

प्रयोग मेंये स्पीडअप करेंगे केवल “नंबर-क्रंचिंग” अनुबंधों के लिए प्रासंगिक हो क्योंकि गणना समय अन्यथा बड़े पैमाने पर भंडारण पहुंच से प्रभावित होता है। दूसरी ओर, “आरएनजी” बेंचमार्क क्रिप्टोग्राफ़िक ऑपरेशंस के समान है जो ऐसी चीजों को वास्तविक ऑन-चेन कार्यान्वयन के दायरे में आगे खींचता है।

Paweł Bylica एक पर काम कर रहा है सी-भाषा इंटरफ़ेस वर्चुअल मशीन कार्यान्वयन और इसे होस्ट करने वाले क्लाइंट के बीच, विभिन्न वीएम को एथेरियम क्लाइंट में प्लग करने में सक्षम होने के लक्ष्य के साथ। इस तरह, geth C++ वर्चुअल मशीन और विशेष रूप से LLVM जस्ट-इन-टाइम कंपाइलर में हमारे परिवर्तनों से संभावित रूप से लाभान्वित हो सकता है।

ध्यान दें कि ये परिवर्तन अभी जारी नहीं किए गए हैं, लेकिन वे इसका हिस्सा हैं उबंटू देव पीपीए.

रीमिक्स

Yann Levreau और Liana Husikyan हमारे नए EVM डीबगर रीमिक्स पर काम कर रहे हैं। हमने कुछ दिन पहले अल्फा संस्करण जारी किया था:

आवेदननिर्देश

अभी के लिए, आप ब्लॉकचेन में किसी भी लेन-देन के निष्पादन में हर एक चरण का निरीक्षण करने के लिए “केवल” इसका उपयोग कर सकते हैं, वर्तमान स्टैक, मेमोरी और स्टोरेज सामग्री को देख सकते हैं और निर्देशों का क्रम देख सकते हैं। अगला कदम स्रोत-स्तर डिबगिंग की अनुमति देना भी होगा जहां आप स्रोत कोड में वर्तमान स्थिति, लाइन या निर्देश स्तर पर चरण देख सकते हैं और चर के डिकोड किए गए मान देख सकते हैं (केवल कच्चे हेक्स मानों के बजाय)।

डिबगर आपके लिए, समुदाय के लिए है, और हमें यह सुनकर खुशी हुई कि इथरस्कैन ने पहले ही रीमिक्स को अपने में एकीकृत कर लिया है ब्लॉकचेन एक्सप्लोरर.

रिपोजिटरी पुनर्गठन

बॉब समरविल C++-Ethereum को उसके पुराने घर, https://github.com/ethereum/cpp-ethereum पर वापस लाने के लिए समर्पित है और इस प्रकार कई सब-रिपॉजिटरी में अनावश्यक और भ्रामक विभाजन को हटा देता है। हम वहां बहुत प्रगति कर रहे हैं, वास्तव में दिखाई देने वाले पहले कदमों में से एक वर्चुअल मशीन के कार्यान्वयन से सॉलिडिटी के परीक्षण बुनियादी ढांचे को अलग करना था। सॉलिडिटी टेस्ट अब वर्चुअल मशीन के बिना संकलित किए जा सकते हैं और वे नियमित IPC इंटरफ़ेस पर विशेष रूप से कॉन्फ़िगर की गई नैतिक प्रक्रिया (ऊपर उल्लिखित) के साथ संचार करके चलाए जाते हैं।

यहां अगले चरण बाकी कोड को अलग करने के लिए हैं, परीक्षण स्वचालन को संशोधित करें और तदनुसार निरंतर एकीकरण करें और वास्तविक कदम उठाएं।

इस कदम के साथ, हमें दुर्भाग्य से करना होगा मिक्स और एलेथजीरो को अलविदा कहें (मिश्रण की भावना नए रीमिक्स प्रोजेक्ट में जीवित रहेगी)। वे जो बोझ खींचते हैं वह बहुत बड़ा होगा, क्योंकि इसमें क्यूटी और सॉलिडिटी के साथ एक तंग युग्मन शामिल है। जैसा कि पहले की पोस्टों में पहले ही समझाया जा चुका है, एक छोटे ग्राहक कार्यान्वयन के लिए इन उपकरणों का एक ढीला आईपीसी-आधारित युग्मन हमें और अधिक लचीला बनाता है और जावास्क्रिप्ट और वेब-आधारित टूल जैसे रीमिक्स और ब्राउज़र-सॉलिडिटी में बदलाव के साथ आने वाला सामुदायिक समर्थन बस है तुलना में भारी।

औपचारिक सत्यापन

हम सॉलिडिटी के साथ एकीकृत मौजूदा औपचारिक सत्यापन टूल को क्रॉस-कॉन्ट्रैक्ट कॉल्स तक बढ़ा रहे हैं। यह स्वचालित प्रमाण सक्षम करेगा कि उदाहरण के लिए एक निश्चित अनुबंध के विरुद्ध एक पुनरावर्ती कॉल आक्रमण संभव नहीं है। इसके अलावा, Why3 (भारी उठाने के लिए हम जिस उपकरण का उपयोग करते हैं) को हाल ही में पोर्ट किया गया था ब्राउज़रोंहम शायद यह उम्मीद कर सकते हैं कि यह ब्राउज़र-सॉलिडिटी और ब्लॉकचेन एक्सप्लोरर जैसे अन्य टूल के अंदर उपलब्ध होगा!

एक पहला है अवधारणा का सबूत स्पष्टीकरण सहित जो दिखाता है कि कैसे स्वचालित सत्यापन का उपयोग यह दिखाने के लिए किया जा सकता है कि पुनरावर्ती कॉल की अनुमति होने पर भी सॉलिडिटी अनुबंध से पैसा चुराना असंभव है।

आशा है कि अवधारणा का यह प्रमाण अगले सप्ताहों में एक उपयोगी उपकरण के रूप में विकसित होगा।

सॉलिडिटी टूल्स

समुदाय और फाउंडेशन के अंदर से कई लोग वर्तमान में सॉलिडिटी या सामान्य रूप से ईवीएम के लिए उपकरणों पर काम कर रहे हैं। इसमें शामिल है:

  1. डेव हूवर (@redsquirrel) द्वारा चेतावनियों के लिए सॉलिडिटी एएसटी विश्लेषण
  2. रेनियोरशाइन द्वारा सॉलिडिटी का रीड-इवल-प्रिंट संस्करण: दृढ़ता-प्रति
  3. नियंत्रण-प्रवाह विश्लेषण ग्राफ रेनियोरशाइन द्वारा भी
  4. ईवीएम डिसअसेंबलर निक जॉनसन द्वारा



Source link

Leave A Reply

Your email address will not be published.

Shares