
ब्लॉकचेन नोड्स के लिए एक RPC हमला फ्रेमवर्क।
.. image:: https://img.shields.io/pypi/v/teatime.svg :target: https://pypi.python.org/pypi/teatime
.. image:: https://img.shields.io/travis/dmuhs/teatime.svg :target: https://travis-ci.com/dmuhs/teatime
.. image:: https://codecov.io/gh/dmuhs/teatime/branch/master/graph/badge.svg?token=RP0WZ6NXUP :target: https://codecov.io/gh/dmuhs/teatime
.. image:: https://readthedocs.org/projects/teatime/badge/?version=latest :target: https://teatime.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
Teatime एक RPC आक्रमण ढांचा है जिसका उद्देश्य ब्लॉकचेन नोड्स में गलत कॉन्फ़िगरेशन का पता लगाना आसान बनाना है। यह सूचना लीक से लेकर खुले खातों और कॉन्फ़िगरेशन हेरफेर तक, विभिन्न प्रकार की समस्याओं का पता लगाता है।
लक्ष्य कमजोर नोड्स की स्कैनिंग करने वाले उपकरणों को सक्षम करना और सामान्य कमजोरियों के कारण नोड-आधारित हमलों के जोखिम को कम करना है। Teatime एक प्लगइन-आधारित आर्किटेक्चर का उपयोग करता है, इसलिए लाइब्रेरी को अपनी स्वयं की जाँचों के साथ विस्तारित करना सीधा है।
कृपया ध्यान दें कि यह लाइब्रेरी अभी भी एक PoC है और इसमें दस्तावेज़ीकरण का अभाव है। यदि ऐसे प्लगइन्स हैं जिन्हें आप देखना चाहेंगे, तो बेझिझक मुझसे Twitter पर संपर्क करें!
Teatime Python 3.6+ पर चलता है।
आरंभ करने के लिए, बस चलाएँ
.. code-block:: console
$ pip3 install teatime
वैकल्पिक रूप से, रिपॉजिटरी को क्लोन करें और चलाएँ
.. code-block:: console
$ pip3 install .
या सीधे Python के :code:setuptools के माध्यम से:
.. code-block:: console
$ python3 setup.py install
आरंभ करने के लिए, बस एक :code:Scanner वर्ग को इंस्टेंटिएट करें और लक्ष्य IP, पोर्ट, नोड प्रकार, और इंस्टेंटिएटेड प्लगइन्स की एक सूची पास करें। निम्नलिखित नमूना पर विचार करें कि क्या कोई नोड सिंक और माइनिंग कर रहा है:
.. code-block:: python
from teatime.scanner import Scanner
from teatime.plugins.context import NodeType
from teatime.plugins.eth1 import NodeSync, MiningStatus
TARGET_IP = "127.0.0.1"
TARGET_PORT = 8545
INFURA_URL = "Infura API Endpoint"
def get_scanner():
return Scanner(
ip=TARGET_IP,
port=TARGET_PORT,
node_type=NodeType.GETH,
plugins=[
NodeSync(infura_url=INFURA_URL, block_threshold=10),
MiningStatus(should_mine=False)
]
)
if __name__ == '__main__':
scanner = get_scanner()
report = scanner.run()
print(report.to_dict())
अधिक छोटे नमूनों के लिए उदाहरण निर्देशिका देखें! Teatime पूरी तरह से टाइप किया गया है, इसलिए यदि दस्तावेज़ीकरण पढ़ना आपकी पसंदीदा विधि नहीं है, तो अपने IDE में विकल्पों का पता लगाने के लिए स्वतंत्र महसूस करें। :)
Teatime का भविष्य अनिश्चित है, भले ही मैं RPC इंटरफेस से परे व्यापक जाँच जोड़ना पसंद करूंगा, विशेष रूप से ऐसी प्रौद्योगिकियों के लिए:
यदि आप Bitcoin या Ethereum की नकल जैसी छोटी, कम अर्थपूर्ण श्रृंखलाओं के लिए प्लगइन्स को एकीकृत करना चाहते हैं, तो परियोजना को फोर्क करने और उन्हें अलग से एकीकृत करने के लिए स्वतंत्र महसूस करें।