
إطار هجوم RPC لعُقد Blockchain.
.. 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 بنية قائمة على الإضافات، لذا فإن توسيع المكتبة بإضافاتك الخاصة أمر بسيط.
يرجى ملاحظة أن هذه المكتبة لا تزال في مرحلة إثبات المفهوم وتفتقر إلى التوثيق. إذا كانت هناك إضافات ترغب في رؤيتها، فلا تتردد في التواصل معي على Twitter!
يعمل Teatime على Python 3.6+.
للبدء، قم بتشغيل
.. code-block:: console
$ pip3 install teatime
بدلاً من ذلك، قم باستنساخ المستودع وتشغيل
.. code-block:: console
$ pip3 install .
أو مباشرة من خلال :code:setuptools الخاص بـ Python:
.. 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، فلا تتردد في عمل fork للمشروع ودمجها بشكل منفصل.