الخميس، 10 مايو 2018

طول عنوان البيتكوين


طول عنوان البيتكوين.


عنوان Bitcoin ، أو عنوان ببساطة ، هو معرف من 27-34 حرفًا أبجديًا رقميًا ، بدءًا بالرقم 1 أو 3 ، والذي يمثل وجهة محتملة لدفع Bitcoin. يمكن إنشاء العناوين دون أي تكلفة من قبل أي مستخدم Bitcoin. على سبيل المثال ، باستخدام Bitcoin-Qt ، يمكن النقر فوق "عنوان جديد" وتعيين عنوان. من الممكن أيضًا الحصول على عنوان Bitcoin باستخدام حساب في خدمة تبادل أو عبر الإنترنت.


مثال على عنوان Bitcoin هو 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy.


يشبه عنوان Bitcoin عنوان البريد الإلكتروني.


مثل البريد الإلكتروني ، يمكنك إرسال bitcoins إلى شخص عن طريق إرسال bitcoins إلى أحد عناوينها. يمكن أن يكون لدى الشخص العديد من عناوين Bitcoin المختلفة ، ولزيادة الخصوصية ، والطريقة الوحيدة لمعرفة ما يتم تلقيه من bitcoins أو من ، يوصى باستخدام عنوان فريد لكل معاملة. تساعد معظم برامج Bitcoin ومواقع الويب في ذلك عن طريق إنشاء عنوان جديد تمامًا في كل مرة تجري فيها معاملة. توفر بعض الخدمات وسيلة لطلب عنوان Bitcoin جديد للاستخدام مع خدمتهم عند الرغبة.


عند استخدام موقع ويب يقبل Bitcoins أو يحتفظ بأرصدة Bitcoin بالنيابة عنك ، سيقوم موقع الويب هذا بتعيين عنوان Bitcoin لحسابك ، بحيث يمكنك تحويل الأموال إلى حسابك على الموقع. على عكس البريد الإلكتروني ، قد يتغير هذا العنوان في كل مرة تأتي فيها الأموال ، لذا يجب توخي الحذر عند إرسال أموال إضافية إلى عنوان تم استخدامه مسبقًا. عند إرسال Bitcoins إلى حسابك على موقع ويب ، ستتم إضافتها عادة إلى حسابك في موقع الويب هذا بعد تأكيد المعاملة.


يمكن إنشاء العناوين دون اتصال.


يمكن إنشاء العناوين بدون اتصال بالإنترنت ولا يتطلب أي اتصال أو تسجيل مع شبكة Bitcoin. تبدأ الشبكة في تتبع عنوان عندما يظهر لأول مرة في معاملة دفع صالحة.


بيانات عنوان بيتكوين.


بيتكوين AUD الصرف.


Bitcoin Addnode.


أداة عنوان Bitcoin.


بيتكوين Ticker كروم.


تحذير: دون استخدام ™ TickЂњBTC-e Bitcoin (BTC) Live Ticker” من سوق Chrome الإلكتروني ، فإنه يستحوذ على معاملات BTC من Coinbase (ربما أكثر؟).


قامت Apple بتحديث إرشادات مراجعة متجر التطبيقات الخاصة بها للسماح بالعملات الافتراضية المعتمدة في التطبيقات ، مما يمهد الطريق لأنواع جديدة من العملات التي يتم تداولها.


لقد قمت بتثبيت حزمة القيمة المطلقة مع بكمن. عندما أحاول تشغيل البرنامج النصي ، أحصل على الخطأ: Code: [bitcoin @ alarm-01.


] $ sudo abs [sudo] كلمة مرور للبيتكوين.


وفي 364 يومًا حتى يواجه معظم الأمريكيين موعدًا نهائيًا لتقديم ضرائبهم ، إلا أن تيريزا وارمكي لديها بالفعل خطة يوم الضرائب 2014: Shes going.


60 GH / s Bitcoin Miner.


كن جزءًا من المستقبل الرقمي. لا تدفع سنة مقدما ومشاهدة بلوق من الأعذار مثلما فعلت. اطلب اليوم و المنجم غدا! 25 bitcoins هي.


في الوقت الذي اعتدنا فيه على رؤية تحطم الانظمة في أسواق الأسهم شديدة التنظيم والجديرة بالثقة ، عانى العالم الرقمي غير المنظم لبيتكوين آخر.


<h1> طول عنوان البتوين </ h1>


الحصول على عبر متجر التطبيقات قراءة هذه المشاركة في التطبيق لدينا!


ما هي الحدود الدنيا والقصوى لعنوان مينت بيتكوين؟


أتلقى إجابات مختلطة على هذا السؤال. على سبيل المثال ، يقول هذا المصدر أن العناوين تختلف من 27 إلى 34 حرفًا. الويكي يقول 26-35 حرفا. لا يستشهد أي من المصادر بشيء يسمح لي بتأكيد الأرقام بشكل مستقل.


ما هي الحدود الدنيا والقصوى لعنوان Bitcoin على mainnet ، وكيف يتم اشتقاق هذه الأرقام؟


الويكي هو الصحيح! يجب أن يكون المصدر الذي ربطته يفترض أن العنوان مع أصغر ترميز له version_byte = 00 ، data = 20 * 00 ، checksum = 94A00911.


طول تجزئة 27. هذا العنوان صالح وقد تم استخدامه على blockchain! لكنه ليس أقصر العنوان.


كتبت هذا البرنامج النصي باش قصير للعثور على الحد الأدنى من عنوان الطول. ووجدت أن هناك 266 عنوانًا لطول 26. لأي شخص لديه فضول ، هذه هي العناوين 266 بطول 26.


يحتوي عنوان الطول الأقصى على version_byte = 00 ، data = 20 * FF ، checksum = FA06820B:


طول التجزؤ 34. وقد استخدم هذا أيضا لتلقي العملات المعدنية ، كما يمكن ملاحظته هنا.


المفتاح الخاص والمفتاح العمومي لهما حجم ثابت. المفاتيح الخاصة هي دائما 32 بايت ، والمفاتيح العمومية دائما 65 بايت. ومع ذلك يتم إنشاء عناوين bitcoin من المفتاح العام باستخدام ترميز Base58.


ينشئ Base58 عنوان أحرف 35 ولكن كما هو مذكور في الارتباط ويتم التعبير عن صفر بايت البايت كـ مفرد "1".


استنادًا إلى عدد الأصفار البادئة ، يمكن أن يكون العدد الأدنى مختلفًا. من الناحية النظرية ، يمكن أن يكون أصغر من 20 حرفًا بحيث لا يمكنك تحديد الحد الأدنى للطول لعناوين البت كوين.


عنوان.


عنوان Bitcoin ، أو عنوان ببساطة ، هو معرف من 26-35 حرفًا أبجديًا رقميًا ، بدءًا بالرقم 1 أو 3 ، الذي يمثل وجهة محتملة لدفع Bitcoin. يمكن إنشاء العناوين دون أي تكلفة من قبل أي مستخدم Bitcoin. على سبيل المثال ، باستخدام Bitcoin Core ، يمكنك النقر فوق "عنوان جديد" وتعيين عنوان. من الممكن أيضًا الحصول على عنوان Bitcoin باستخدام حساب في خدمة تبادل أو عبر الإنترنت.


يوجد حاليًا تنسيقان للعنوان في الاستخدام الشائع:


P2PKH الشائعة التي تبدأ بالرقم 1 ، على سبيل المثال: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2. نوع P2SH الأحدث بدءاً من الرقم 3 ، على سبيل المثال: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy.


عنوان Bitcoin هو رمز الاستخدام المفرد.


مثل عناوين البريد الإلكتروني ، يمكنك إرسال bitcoins إلى شخص عن طريق إرسال bitcoins إلى أحد عناوينها. ومع ذلك ، بخلاف عناوين البريد الإلكتروني ، يكون لدى الأشخاص العديد من عناوين Bitcoin مختلفة ويجب استخدام عنوان فريد لكل معاملة. تساعد معظم برامج Bitcoin ومواقع الويب في ذلك عن طريق إنشاء عنوان جديد تمامًا في كل مرة تنشئ فيها فاتورة أو طلب دفع.


يمكن إنشاء العناوين دون اتصال.


يمكن إنشاء العناوين بدون اتصال بالإنترنت ولا يتطلب أي اتصال أو تسجيل مع شبكة Bitcoin. من الممكن إنشاء مجموعات كبيرة من العناوين دون اتصال باستخدام أدوات البرامج المتوفرة مجانًا. يعتبر إنشاء مجموعات من العناوين مفيدًا في العديد من السيناريوهات ، مثل مواقع الويب للتجارة الإلكترونية حيث يتم الاستغناء عن عنوان فريد تم إنشاؤه مسبقًا لكل عميل يختار خيار "الدفع باستخدام Bitcoin". يمكن أن تولد "محفظات HD" الأحدث رمزًا مميزًا "للبذور" يمكن استخدامه للسماح للأنظمة غير الموثوق بها (مثل خوادم الويب) بإنشاء عدد غير محدود من العناوين دون القدرة على إنفاق bitcoins المتلقاة.


العناوين حساسة لحالة الأحرف ودقيقة.


عناوين Bitcoin حساسة لحالة الأحرف. يجب نسخ عناوين Bitcoin ولصقها باستخدام حافظة الكمبيوتر كلما أمكن ذلك. إذا قمت بتدوين عنوان Bitcoin يدويًا ، ولم يتم نسخ كل حرف بالضبط - بما في ذلك الكتابة بالأحرف الكبيرة - فسيتم على الأرجح رفض العنوان غير الصحيح بواسطة برنامج Bitcoin. سيكون عليك التحقق من مشاركتك والمحاولة مرة أخرى.


احتمال أن يتم قبول عنوان غير صحيح هو 1 في 2 32 ، أي حوالي 1 في 4.29 مليار.


إثبات أنك تتلقى مع عنوان.


لدى معظم محافظ بيتكوين وظيفة "لتوقيع" رسالة ، مما يثبت أن الكيان الذي يتلقى الأموال مع عنوان قد وافق على الرسالة. يمكن استخدام هذا ، على سبيل المثال ، لوضع اللمسات الأخيرة على عقد بطريقة موثقة بطريقة مشفرة قبل إجراء الدفع له.


وستقوم بعض الخدمات أيضًا بالاستفادة من هذه الإمكانية من خلال تخصيص عنوان محدد للمصادقة فقط ، وفي هذه الحالة يجب عدم استخدام العنوان معاملات Bitcoin الفعلية. عند تسجيل الدخول إلى الخدمة أو استخدامها ، ستقوم بتوفير توقيع يثبت أنك الشخص نفسه مع العنوان الذي تم التفاوض عليه مسبقًا.


من المهم أن نلاحظ أن هذه التوقيعات لا تثبت سوى واحد يتلقى مع عنوان. نظرًا لأن معاملات Bitcoin لا تحتوي على عنوان "من" ، فلا يمكنك إثبات أنك مرسل الأموال.


المعايير الحالية لتواقيع الرسائل متوافقة فقط مع عناوين bitcoin "version zero" (التي تبدأ بالرقم 1).


إذا كنت ترغب في التحقق من صحة عنوان Bitcoin في تطبيق ما ، فمن المستحسن استخدام طريقة من هذا الموضوع بدلاً من مجرد التحقق من طول السلسلة ، أو الأحرف المسموح بها ، أو أن العنوان يبدأ بـ 1 أو 3. قد يكون التحقق من الصحة أيضًا يتم استخدام شفرة مفتوحة المصدر متاحة بلغات مختلفة أو باستخدام أداة تحقق عبر الإنترنت.


عناوين متعددة التوقيع.


يمكن إنشاء العناوين التي تتطلب مجموعة من مفاتيح خاصة متعددة. وبما أن هذه الميزات تستفيد من الميزات الأحدث ، فإنها تبدأ بالبادئة الأحدث من 3 بدلاً من الأقدم. ويمكن اعتبار هذه المعادلة بمثابة مكافئ لكتابة الشيك إلى طرفين - "الدفع لأمر شخص ما وآخر لشخص آخر" - حيث يجب على كلا الطرفين الموافقة على الشيك من أجل الحصول على الأموال.


المتطلبات الفعلية (عدد المفاتيح الخاصة المطلوبة ، مفاتيحها العمومية المقابلة ، وما إلى ذلك) التي يجب أن تستوفي لإنفاق الأموال يتم تحديدها مسبقًا من قبل الشخص الذي يولد هذا النوع من العناوين ، وبمجرد إنشاء عنوان ، لا يمكن أن يكون المتطلب تغيرت دون توليد عنوان جديد.


معظم عناوين Bitcoin هي 34 حرفًا. وهي تتكون من أرقام عشوائية وأحرف كبيرة وأحرف صغيرة ، باستثناء أن الحرف الكبير "O" ، الحرف الكبير "I" ، الحرف الصغير "l" ، ولا يتم استخدام الرقم "0" أبداً لمنع الغموض المرئي.


يمكن أن تكون بعض عناوين Bitcoin أقصر من 34 حرفًا (أقل من 26 حرفًا) ولا تزال صالحة. نسبة كبيرة من عناوين Bitcoin هي 33 حرفًا فقط ، وربما تكون بعض العناوين أقصر. كل عنوان بيتكوين يرمز إلى رقم. هذه العناوين الأقصر صالحة لمجرد أنها تقف للأرقام التي تبدأ بصفر ، وعندما يتم حذف الأصفار ، يصبح العنوان المشفر أقصر.


يتم استخدام العديد من الأحرف داخل عنوان Bitcoin كمجموع تدقيقي حتى يمكن العثور على الأخطاء المطبعية ورفضها تلقائيًا. يسمح أيضًا المجموع الاختباري لبرنامج Bitcoin بالتأكد من أن العنوان المكون من 33 حرفًا (أو أقصر) هو في الحقيقة صالح وليس مجرد عنوان بحرف مفقود.


يتم إنشاء العناوين على Bitcoin Testnet بإصدار عنوان مختلف ، مما يؤدي إلى بادئة مختلفة. انظر قائمة البادئات العنوان و Testnet لمزيد من التفاصيل.


إعادة استخدام العنوان.


لا يُقصد استخدام العناوين أكثر من مرة ، ويكون لذلك العديد من المشكلات المرتبطة بها. راجع المقالة المخصصة حول إعادة استخدام العنوان لمزيد من التفاصيل.


عناوين ليست محافظ ولا حسابات ، ولا تحمل أرصدة. فهم يتلقون الأموال فقط ، ولا ترسل "من" عنوانًا في أي وقت. عرض خدمات وبرمجيات مختلفة مربكة مع بيتكوين ، مع طرح البيتكوينات في معاملات عشوائية غير مرتبطة ك "رصيد عنوان" ، لكن هذا الرقم ليس ذا مغزى: لا يعني أن المستلم من البتكوين المرسل إلى العنوان قد صرفه ، ولا يزال لديهم bitcoins وردت.


مثال على فقدان بيتكوين الناتج عن سوء الفهم هذا هو عندما يعتقد الناس أن عنوانهم يحتوي على 3btc. أمضىوا 0.5btc ويعتقد أن العنوان الآن يحتوي على 2.5btc عندما كان في الواقع يحتوي على صفر. تم نقل ما تبقى من 2.5btc إلى عنوان التغيير الذي لم يتم دعمه وبالتالي فقده. وقد حدث هذا في مناسبات قليلة لمستخدمي محافظ الورق.


لا تحتوي معاملات Bitcoin على أي نوع من أنواع المصدر أو المصدر أو "من". راجع المقالة المخصصة حول "من العنوان" لمزيد من التفاصيل.


بيتكوين.


13 117 пользователей находятся здесь.


مرحبًا بك في Reddit ،


الصفحة الأولى من الإنترنت.


والاشتراك في واحدة من آلاف المجتمعات.


то архивированный пост. Вы не можете голосовать или комментировать.


تريد أن تضيف إلى المناقشة؟


[-] luke-jr Luke Dashjr - Bitcoin Expert 3 очка 4 очка 5 очков 2 منذ شهر (0 يومًا)


помощь правила сайта центр поддержки вики реддикет mod guidelines связаться с нами.


приложенияи инструменты Reddit for iPhone Reddit for Android mobile website кнопки.


Использование данного сайта означает، что вы принимаете пользовательского соглашения и Политика конфиденциальности. &نسخ؛ 2018 reddit инкорпорейтед. Все права защищены.


REDDIT وشعار ALIEN هي علامات تجارية مسجلة لشركة reddit inc.


وبي. المقدمة بواسطة PID 43453 على التطبيق 623 في 2018-01-10 09: 56: 39.902332 + 00: 00 30f17F رمز البلد: DE.


وثائق البروتوكول.


تصف هذه الصفحة سلوك العميل المرجعي. يتم تحديد بروتوكول Bitcoin من خلال سلوك العميل المرجعي ، وليس من خلال هذه الصفحة. على وجه الخصوص ، على الرغم من اكتمال هذه الصفحة تمامًا في وصف بروتوكول الشبكة ، فإنها لا تحاول سرد جميع القواعد الخاصة بصلاحية الحظر أو المعاملة.


أسماء الأنواع المستخدمة في هذا المستند هي من معيار C99.


للبروتوكول المستخدم في التعدين ، انظر getblocktemplate.


معايير مشتركة.


عادة ، عندما يتم حساب التجزئة في bitcoin ، يتم حسابها مرتين. يتم استخدام معظم الوقت SHA-256 التجزئة ، ولكن يتم استخدام RIPEMD-160 أيضا عندما يكون من المستحسن تجزئة أقصر (على سبيل المثال عند إنشاء عنوان بت كوين).


مثال على تشفير مزدوج SHA-256 للسلسلة "hello":


بالنسبة لعناوين bitcoin (RIPEMD-160) ، فإن هذا يعطي:


أشجار Merkle هي أشجار ثنائية من التجزئات. تستخدم أشجار Merkle في bitcoin مزدوج SHA-256 ، تجزئة SHA-256 من تجزئة SHA-256 لشيء ما.


إذا ، عند تشكيل صف في الشجرة (بخلاف جذر الشجرة) ، سيكون له عدد فردي من العناصر ، يتم تكرار التجزئة المزدوجة الأخيرة للتأكد من أن الصف يحتوي على عدد زوجي من التجزئات.


أولاً شكل الصف السفلي من الشجرة مع تجزئات SHA-256 المزدوجة مرتبة من تدفقات البايت للمعاملات في الكتلة.


ثم يتكون الصف أعلاه من نصف هذا العدد من التجزئة. كل إدخال هو مزدوج SHA-256 لسلسلة 64 بايت من اثنين من التجزئة المقابلة تحته في الشجرة.


يتكرر هذا الإجراء بشكل متكرر حتى نصل إلى صف يتكون من تجزئة مزدوجة واحدة فقط. هذا هو الجذر Merkle من الشجرة.


على سبيل المثال ، تخيل كتلة تحتوي على ثلاث معاملات a و b و c. شجرة Merkle هي:


d7 هو جذر Merkle لـ 3 معاملات في هذا الجزء.


ملاحظة: إن الزحمة في Merkle Tree المعروضة في Block Explorer ذات تدوين بسيط. بالنسبة لبعض التطبيقات والحسابات ، يجب عكس البتات قبل تجزئتها ، ومرة ​​أخرى بعد عملية التجزئة.


المفاتيح العامة (في النصوص) تُعطى كـ 04 & lt؛ x & gt؛ العلامة & lt؛ ذ و GT. حيث تمثل x و y عددًا صحيحًا من الأعداد الكبيرة من end-endion التي تمثل 32 بايت والتي تمثل إحداثيات نقطة ما على المنحنى أو في شكل مضغوط مع & lt؛ sign & gt؛ العلامة & lt؛ س و GT. حيث & lt؛ sign & gt؛ هو 0x02 إذا كان y و 0x03 حتى إذا y هو فردي.


تستخدم التوقيعات ترميز DER لحزم مكونات r و s في دفق بايت واحد (وهذا أيضًا ما ينتج OpenSSL بشكل افتراضي).


التحقق من المعاملات.


المعاملات هي سجلات موقعة مشفرة تقوم بإعادة تعيين ملكية Bitcoins لعناوين جديدة. المعاملات لديها مدخلات - السجلات التي تشير إلى الأموال من معاملات سابقة أخرى - والمخرجات - السجلات التي تحدد المالك الجديد لل Bitcoins التي تم تحويلها ، والتي سيتم الإشارة إليها كمدخلات في المعاملات المستقبلية حيث أن تلك الأموال تكون آمنة.


يجب أن يكون لكل إدخال توقيع رقمي تشفير يفتح الأموال من المعاملة السابقة. فقط الشخص الذي يمتلك المفتاح الخاص المناسب قادر على خلق توقيع مرض ؛ هذا في الواقع يضمن أن الأموال يمكن أن تنفق فقط من قبل أصحابها.


يحدد كل مخرج أي عنوان Bitcoin (أو معايير أخرى ، راجع Script) هو متلقي الأموال.


في المعاملة ، يجب أن يكون مجموع كل المدخلات مساويًا أو أكبر من مجموع كل المخرجات. إذا تجاوزت المدخلات المخرجات ، يعتبر الفرق بمثابة رسوم معاملات ، ويمكن استبدالها من قِبل كل من يقوم أولاً بإدراج المعاملة في سلسلة الكتلة.


نوع خاص من المعاملة ، يسمى معاملة coinbase ، ليس له مدخلات. يتم إنشاؤه من قبل عمال المناجم ، وهناك واحد المعاملات coinbase لكل كتلة. لأن كل كتلة تأتي بمكافأة Bitcoins المنشأة حديثًا (على سبيل المثال ، 50 BTC للكتل الأولى البالغ عددها 210،000) ، فإن المعاملة الأولى لكتلة هي ، مع استثناءات قليلة ، المعاملة التي تمنح تلك العملات لمتلقيها (عامل التعدين). بالإضافة إلى Bitcoins التي تم إنشاؤها حديثًا ، تُستخدم أيضًا معاملات coinbase لتعيين متلقي أي رسوم معاملات تم دفعها ضمن المعاملات الأخرى التي يتم تضمينها في نفس المجموعة. يمكن أن تقوم معاملة coinbase بتعيين المكافأة بالكامل لعنوان Bitcoin واحد ، أو تقسيمها في أجزاء بين عناوين متعددة ، تمامًا مثل أي معاملة أخرى. تحتوي معاملات Coinbase دائمًا على مخرجات مجموعها مجموع مكافأة الكتلة بالإضافة إلى جميع رسوم المعاملات التي يتم جمعها من المعاملات الأخرى في نفس المجموعة.


لا يمكن إنفاق معاملة العملة في كتلة الصفر. ويرجع ذلك إلى تقصير تنفيذ العميل المرجعي الذي من شأنه أن يفتح احتمالية حدوث شوكة سلسلة كتلة إذا قبلت بعض العقد الإنفاق ولم يفعل الآخرون [1].


معظم نواتج Bitcoin ترهن القطع النقدية التي تم نقلها حديثًا بمفتاح خاص واحد من ECDSA. ليس بالضرورة أن يكون السجل الفعلي الذي تم حفظه باستخدام المدخلات والمخرجات هو مفتاح ، بل برنامج نصي. يستخدم Bitcoin نظامًا نصيًا مفسرًا لتحديد ما إذا كانت معايير المخرجات قد استوفيت ، والتي يمكن إجراء عمليات أكثر تعقيدًا بها ، مثل المخرجات التي تتطلب توقيعين ECDSA ، أو نظامين من ثلاثة توقيع. الإخراج الذي يشير إلى عنوان Bitcoin واحد هو الإخراج النموذجي؛ يحتوي الإخراج بالفعل على هذه المعلومات في شكل نص برمجي يتطلب توقيع ECDSA واحد (انظر OP_CHECKSIG). يحدد البرنامج النصي للمخرجات ما يجب توفيره لإلغاء تأمين الأموال في وقت لاحق ، وعندما يحين الوقت في المستقبل لإنفاق المعاملة في مدخلات أخرى ، يجب أن توفر هذه المدخلات كل الشيء (الأشياء) التي تفي بالمتطلبات المحددة بالمخرج الأصلي النصي.


عنوان Bitcoin هو في الواقع تجزئة المفتاح العمومي لـ ECDSA ، ويتم حسابه بهذه الطريقة:


الترميز Base58 المستخدم هو المنزل ، ولديه بعض الاختلافات. خاصةً ، يتم الاحتفاظ بأصفار الأعمدة كأصفار فردية عند حدوث التحويل.


يتم ترميز كل الأعداد الصحيحة تقريبًا في نهايات صغيرة. يتم ترميز فقط IP أو رقم المنفذ endian كبيرة.


القيم السحرية المعروفة:


طول متغير العدد الصحيح.


يمكن ترميز عدد صحيح بالاعتماد على القيمة الممثلة لتوفير المساحة. دائمًا تسبق الأعداد الصحيحة المتغيرة طولًا صفيف / متجه لنوع من البيانات التي قد تختلف في الطول. يتم ترميز أرقام أطول في نهاية قصيرة.


إذا كنت تقرأ رمز العميل Satoshi (BitcoinQT) فإنه يشير إلى هذا الترميز بأنه "CompactSize". يحتوي BitcoinQT الحديث أيضاً على فئة CVarInt التي تقوم بتنفيذ عدد صحيح أكثر تكاملاً لغرض التخزين المحلي (وهو غير متوافق مع "CompactSize" الموصوف هنا). CVarInt ليس جزءا من البروتوكول.


سلسلة طول متغير.


يمكن تخزين سلسلة الطول المتغير باستخدام عدد صحيح متغير الطول متبوعًا بالسلسلة نفسها.


عند الحاجة إلى عنوان شبكة في مكان ما ، يتم استخدام هذا الهيكل. لا يتم بدء عناوين الشبكة بطابع زمني في رسالة الإصدار.


(12 bytes 00 00 00 00 00 00 00 00 00 00 00 FF FF ، تليها 4 بايت من عنوان IPv4).


مثال Hexdump لهيكل عنوان الشبكة.


يتم استخدام موجهات المخزون لإعلام العقد الأخرى حول الكائنات التي لديهم أو البيانات التي يتم طلبها.


تتألف نواقل المستودع من نسق البيانات التالي:


يتم تعريف نوع الكائن حاليًا كإحدى الاحتمالات التالية:


تعتبر قيم نوع البيانات الأخرى محفوظة للتطبيقات المستقبلية.


يتم إرسال رؤوس الحظر في حزمة رؤوس استجابة لرؤوس getheaders.


الترميز التفاضلي.


استخدامات متعددة من CompactSize أدناه هي "ترميز بشكل مختلف". لهذه ، بدلاً من استخدام الفهارس الأولية ، الرقم الذي تم ترميزه هو الفرق بين الفهرس الحالي والفهرس السابق ناقص واحد. على سبيل المثال ، يشير الرقم الأول من 0 إلى مؤشر حقيقي قدره 0 ، بينما يشير الرقم الثاني من صفر بعد ذلك إلى مؤشر حقيقي يبلغ 1 ، إلخ.


PrefilledTransaction.


يتم استخدام بنية PrefilledTransaction في HeaderAndShortIDs لتوفير قائمة بمعاملات قليلة بشكل صريح.


انظر BIP 152 لمزيد من المعلومات.


يتم استخدام بنية HeaderAndShortIDs لترحيل رأس كتلة ، معرفات المعاملات القصيرة المستخدمة لمطابقة المعاملات المتوفرة بالفعل ، وعدد قليل من المعاملات التي نتوقع وجود نظير مفقود.


انظر BIP 152 لمزيد من المعلومات.


BlockTransactionsRequest.


يتم استخدام بنية BlockTransactionsRequest لإدراج فهارس المعاملة في كتلة يتم طلبها.


انظر BIP 152 لمزيد من المعلومات.


يتم استخدام بنية BlockTransactions لتوفير بعض المعاملات في كتلة ، كما هو مطلوب.


انظر BIP 152 لمزيد من المعلومات.


معرف المعاملة قصير.


يتم استخدام معرفات المعاملة القصيرة لتمثيل المعاملة دون إرسال تجزئة كاملة 256 بت. يتم حسابها بواسطة:


واحد SHA256 تجزئة رأس كتلة مع ملحق ملحقة (في نهاية قليل) تشغيل SipHash-2-4 مع الإدخال كونه معرف المعاملة والمفاتيح (k0 / k1) لتعيين أول عدد صحيح من الأعداد الصحيحة 64 بت من التجزئة المذكورة أعلاه ، على التوالي. إسقاط البايتين الأكثر أهمية من إخراج SipHash لجعله 6 بايت.


انظر BIP 152 لمزيد من المعلومات.


الإصدار.


عندما تنشئ العقدة اتصالًا صادرًا ، فإنها ستعلن فورًا عن نسختها. سوف تستجيب العقدة البعيدة مع نسختها. لا مزيد من التواصل ممكن حتى يتبادل الأقران نسختهم.


يتم إرسال حزمة "verack" إذا تم قبول حزمة الإصدار.


يتم تعيين الخدمات التالية حاليًا:


مثال Hexdump لرسالة الإصدار (OBSOLETE EXAMPLE: هذا المثال يفتقد المجموع الاختباري وكيل المستخدم):


وإليك نسخة حديثة من بروتوكول العميل (60002) تعلن عن نفسها لنظير محلي.


يتضمن البروتوكول الأحدث المجموع الاختباري الآن ، وهذا من عميل رئيسي (satoshi) أثناء اتصال صادر إلى عميل محلي آخر ، لاحظ أنه لا يملأ معلومات العنوان على الإطلاق عندما يكون المصدر أو الوجهة "غير قابل للتسجيل".


يتم إرسال رسالة verack ردًا على الإصدار. تتكون هذه الرسالة من رأس رسالة فقط بسلسلة الأوامر "verack".


Hexdump من رسالة verack:


تقديم معلومات حول العقد المعروفة للشبكة. يجب أن تُنسى العقد غير المُعلن عنها بعد 3 ساعات عادةً.


ملاحظة: بدءًا من الإصدار 31402 ، تكون العناوين مسبوقة بطابع زمني. في حالة عدم وجود طابع زمني ، يجب عدم ترحيل العناوين إلى نظراء آخرين ، ما لم يتم تأكيدها بالفعل.


مثال Hexdump لرسالة addr:


للسماح للعقدة بالإعلان عن معرفتها لكائن واحد أو أكثر. يمكن استقباله بدون طلب ، أو ردا على getblocks.


الحمولة الصافية (بحد أقصى 50000 إدخال ، وهو ما يزيد قليلاً عن 1.8 ميغابايت):


يتم استخدام getdata كاستجابة ل inv ، لاسترداد محتوى كائن معين ، وعادة ما يتم إرساله بعد استلام حزمة inv ، بعد تصفية العناصر المعروفة. يمكن استخدامها لاسترداد المعاملات ، ولكن فقط إذا كانت موجودة في مستودع الذاكرة أو مجموعة الترحيل - لا يُسمح بالوصول التعسفي إلى المعاملات في السلسلة لتجنب أن يبدأ العملاء في الاعتماد على العقد التي تحتوي على فهارس كاملة للمعاملات (التي لا تقوم بها العقد الحديثة ).


الحمولة الصافية (بحد أقصى 50000 إدخال ، وهو ما يزيد قليلاً عن 1.8 ميغابايت):


notfound عبارة عن استجابة ل getdata ، يتم إرسالها في حالة تعذر ترحيل أي عناصر بيانات مطلوبة ، على سبيل المثال ، بسبب عدم وجود المعاملة المطلوبة في مجموعة الذاكرة أو مجموعة الترحيل.


قم بإرجاع حزمة فاتورة تحتوي على قائمة الكتل التي تبدأ بعد آخر تجزئة معروفة في كائن محدد موقع الكتلة ، حتى hash_stop أو 500 قالب ، أيهما يأتي أولاً.


تتم معالجة تجزئة محدد المواقع بواسطة عقدة في الترتيب كما تظهر في الرسالة. إذا تم العثور على تجزئة كتلة في السلسلة الرئيسية للعقدة ، يتم إرجاع قائمة بأطفالها مرة أخرى عبر رسالة inv ، ويتم تجاهل المواقع المتبقية ، بغض النظر إذا تم الوصول إلى الحد المطلوب ، أم لا.


لتلقي تجزئة القطع التالية ، يحتاج المرء إلى إصدار getblocks مرة أخرى باستخدام كائن محدد كتلة جديد. ضع في اعتبارك أن بعض العملاء قد يوفرون كتل غير صالحة إذا كان كائن محدد موقع الكتلة يحتوي على تجزئة على الفرع غير الصالح.


لإنشاء تجزئة محدد الكتلة ، استمر في دفع التجزئة حتى تعود إلى كتلة التكوين. بعد دفع 10 تجزئات مرة أخرى ، تتضاعف الخطوة إلى الوراء مع كل حلقة:


لاحظ أنه يُسمح بإرسال عدد أقل من التجزئات المعروفة إلى حد أدنى واحد فقط. ومع ذلك ، فإن الغرض من كائن محدد الكتلة هو اكتشاف فرع خاطئ في السلسلة الرئيسية للمتصل. إذا اكتشف النظير أنك خارج السلسلة الرئيسية ، فسيتم إرسالها في تجزيئات الحظر التي تكون أقدم من آخر كتلة معروفة لديك. لذلك إذا كنت ترسل فقط في آخر تجزئة معروفة لديك وهي خارج السلسلة الرئيسية ، يبدأ النظير في المربع رقم 1.قم بإرجاع حزمة رؤوس تحتوي على رؤوس الكتل التي تبدأ مباشرة بعد آخر تجزئة معروفة في كائن محدد الكتلة ، حتى كتل hash_stop أو 2000 ، أيهما يأتي أولاً. لتلقي رؤوس الحظر التالية ، يحتاج المرء إلى إصدار getheaders مرة أخرى باستخدام كائن محدد كتلة جديد. يتم استخدام الأمر getheaders بواسطة عملاء نحيف لتحميل سلسلة الكتلة بسرعة حيث تكون محتويات المعاملات غير ذات صلة (لأنها ليست تابعة لنا). ضع في اعتبارك أن بعض العملاء قد يوفروا رؤوس الكتل غير الصالحة إذا كان كائن محدد الكتلة يحتوي على تجزئة على الفرع غير الصالح.


بالنسبة لعنصر محدد الكتلة في هذه الحزمة ، تنطبق نفس القواعد على حزمة getblocks.


يصف tx معاملة bitcoin ، ردًا على getdata.


إذا كانت كافة مدخلات TxIn تحتوي على أرقام تسلسل (0xffffffff) نهائية ، فإن lock_time غير ذي صلة. خلاف ذلك ، قد لا تتم إضافة المعاملة إلى كتلة حتى بعد lock_time (راجع NLockTime).


يتكون TxIn من الحقول التالية:


تتكون بنية OutPoint من الحقول التالية:


يتكون هيكل Script من سلسلة من المعلومات والعمليات المتعلقة بقيمة المعاملة.


(سيتم توسيع الهيكل في المستقبل ... انظر script. h و script. cpp و Script لمزيد من المعلومات)


تتكون بنية TxOut من الحقول التالية:


تتكون بنية TxWitness من عدد var_int لمكونات بيانات الشهود ، متبوعة (لكل مكون بيانات الشهود) بطول var_int للمكون وبيانات المكون الخام نفسها.


مثال على رسالة tx:


يتم إرسال الرسالة كتلة استجابة لرسالة getdata التي تطلب معلومات المعاملة من تجزئة كتلة.


يتم حساب تجزئة SHA256 الذي يحدد كل كتلة (والتي يجب أن يكون لها تشغيل 0 بت) من أول 6 حقول في هذه البنية (الإصدار ، prev_block ، merkle_root ، الطابع الزمني ، البت ، nonce ، وحشو SHA256 القياسي ، مما يجعل اثنين من 64- قطع بايت في كل) وليس من كتلة كاملة. لحساب التجزئة ، تحتاج إلى معالجة قطعتين فقط بواسطة خوارزمية SHA256. بما أن الحقل nonce موجود في القطعة الثانية ، يبقى الجزء الأول ثابتًا أثناء التعدين ، وبالتالي يحتاج الجزء الثاني فقط إلى معالجته. ومع ذلك ، تجزئة البت كوين هي تجزئة التجزئة ، لذلك هناك حاجة إلى اثنين من جولات SHA256 لكل التكرار التعدين. راجع حظر خوارزمية التجزئة للحصول على التفاصيل ومثال.


إرجاع حزمة رؤوس رؤوس كتلة استجابة إلى حزمة getheaders.


لاحظ أن رؤوس الحظر في هذه الحزمة تتضمن عدد معاملات (var_int ، لذا يمكن أن يكون هناك أكثر من 81 بايت لكل رأس) على عكس رؤوس الحظر التي يتم تجزئتها بواسطة عمال المناجم.


ترسل رسالة getaddr طلبًا إلى عقدة تطلب معلومات حول النظراء النشطين المعروفين للمساعدة في العثور على العقد المحتملة في الشبكة. تتمثل الاستجابة لاستقبال هذه الرسالة في إرسال واحد أو أكثر من الرسائل الإضافية مع نظير واحد أو أكثر من قاعدة بيانات لأقران نشطين معروفين. يتمثل الافتراض النموذجي في أنه من المرجح أن تكون العقدة نشطة إذا كانت ترسل رسالة خلال الساعات الثلاث الأخيرة.


لا يتم إرسال بيانات إضافية مع هذه الرسالة.


ترسل رسالة mempool طلبًا إلى عقدة تطلب معلومات حول المعاملات التي تم التحقق منها ولكن لم يتم تأكيدها بعد. إن الاستجابة لتلقي هذه الرسالة هي رسالة افتراضية تحتوي على تجزئات المعاملة لجميع المعاملات في الذاكرة المذكرة في العقدة.


لا يتم إرسال بيانات إضافية مع هذه الرسالة.


تم تحديده في BIP 35. منذ BIP 37 ، إذا تم تحميل مرشح bloom ، يتم رد المعاملات التي تطابق عامل التصفية فقط.


تم استخدام هذه الرسالة معاملات IP. نظرًا لإيقاف عمل معاملات IP ، لم يعد يتم استخدامها.


تم استخدام هذه الرسالة معاملات IP. نظرًا لإيقاف عمل معاملات IP ، لم يعد يتم استخدامها.


تم استخدام هذه الرسالة معاملات IP. نظرًا لإيقاف عمل معاملات IP ، لم يعد يتم استخدامها.


يتم إرسال رسالة ping بشكل أساسي للتأكيد على أن اتصال TCP / IP لا يزال صالحًا. يفترض خطأ في الإرسال أن يكون اتصال مغلق ويتم إزالة العنوان كنظير الحالية.


يتم إرسال رسالة pong ردًا على رسالة ping. في إصدارات البروتوكول الحديثة ، يتم إنشاء استجابة pong باستخدام nonce المتضمنة في ping.


يتم إرسال رسالة الرفض عندما يتم رفض الرسائل.


filterload ، filteradd ، filterclear ، merkleblock.


ترتبط هذه الرسائل بتصفية بلوم للاتصالات ويتم تعريفها في BIP 0037.


يتم تعريف الأمر filterload على النحو التالي:


انظر أدناه للحصول على وصف لخوارزمية عامل تصفية Bloom وكيفية تحديد nHashFuncs وحجم المرشح لمعدل موجب كاذب المطلوب.


عند تلقي أمر filterload ، سيقيد النظير البعيد معاملات البث التي يعلن عنها (في حزم الحزم) إلى المعاملات التي تطابق عامل التصفية ، حيث يتم تحديد خوارزمية المطابقة أدناه. تتحكم العلامات في سلوك تحديث خوارزمية المطابقة. يتم تعريف الأمر filteradd كما يلي:


يجب أن يكون حقل البيانات أصغر من أو يساوي 520 بايت في الحجم (الحجم الأقصى لأي كائن يمكن مطابقته).


سيتم إضافة عنصر البيانات المحدد إلى مرشح Bloom. يجب أن يكون المرشح قد تم تقديمه مسبقًا باستخدام فلتر التحميل. يفيد هذا الأمر إذا تمت إضافة مفتاح أو برنامج نصي جديد إلى محفظة عملاء أثناء اتصاله بالشبكة المفتوحة ، إلا أنه يتجنب الحاجة إلى إعادة حساب وإرسال مرشح جديد تمامًا إلى كل نظير (على الرغم من أنه من المستحسن عادة استخدام الحفاظ على عدم الكشف عن هويته).


لا يحتوي الأمر filterclear على أي وسيطات على الإطلاق.


بعد تعيين عامل تصفية ، لا تتوقف العُقد فقط عن الإعلان عن المعاملات غير المتطابقة ، بل يمكن أيضًا أن تعرض قطعًا مفلترة. يتم تعريف الكتلة التي تمت تصفيتها بواسطة رسالة merkleblock ويتم تعريفها على النحو التالي:


ملاحظة: تمت إزالة دعم رسائل التنبيه من مركز بيتكوين في مارس 2016. اقرأ المزيد هنا.


يتم إرسال تنبيه بين العقد لإرسال رسالة إعلام عامة عبر الشبكة. إذا أمكن تأكيد التنبيه بالتوقيع على أنه جاء من مجموعة التطوير الأساسية في برنامج Bitcoin ، فستقترح الرسالة ليتم عرضها للمستخدمين النهائيين. يقترح وقف محاولات إجراء المعاملات ، ولا سيما المعاملات الآلية من خلال العميل. يجب ترحيل النص الموجود في سلسلة الرسائل إلى ملفات السجل وأي واجهات مستخدم.


يستخدم مطورو عميل Satoshi هذا المفتاح العام لتوقيع التنبيهات:


يتم تسلسل الحمولة إلى uchar [] للتأكد من أن الإصدارات التي تستخدم تنسيقات التنبيه غير المتوافقة لا يزال بإمكانها ترحيل التنبيهات بين بعضها البعض. تنسيق البيانات الحالية للتنبيه الحالي هو:


ملاحظة: تعيين العلامة & lt؛ اكتب & gt؛ في الجدول أعلاه هو عدد صحيح متغير الطول متبوعًا بعدد الحقول من النوع المحدد (إما int32_t أو سلسلة طول متغير)


تنبيه عينة (لا يوجد رأس رسالة):


طلب إعلان رؤوس الرسائل المباشرة.


عند استلام هذه الرسالة ، يُسمح بالعقدة ، ولكن ليس مطلوبًا ، للإعلان عن فدرات جديدة بأوامر الرؤوس (بدلاً من أمر الأمر).


هذه الرسالة مدعومة من قبل إصدار البروتوكول & gt؛ = 70012 أو إصدار Bitcoin Core & gt؛ = 0.12.0.


انظر BIP 130 لمزيد من المعلومات.


لا يتم إرسال بيانات إضافية مع هذه الرسالة.


يبلغ طول الحمولة دائمًا 8 بايت ويتم تشفير قيمة عدد صحيح 64 بت (LSB / endian) من feerate. تمثل القيمة رسمًا أدنى ويتم التعبير عنها في satoshis لكل 1000 بايت.


عند استلام رسالة "feefilter" ، سيتم السماح للعقدة ، ولكن ليس مطلوبًا ، لتصفية عمليات invs للمعاملات التي تقع أدنى من feerate المقدمة في رسالة feefilter التي يتم تفسيرها على أنها satoshis لكل كيلوبايت.


عامل تصفية الرسوم مضاف مع مرشح bloom للمعاملات حتى إذا قام عميل SPV بتحميل مرشح bloom وإرسال رسالة feefilter ، لن يتم ترحيل المعاملات إلا إذا اجتازت كلا الفلاتر.


تخضع أيضًا Invated التي يتم إنشاؤها من رسالة mempool إلى مرشح رسوم إذا كان موجودًا.


يتم تمكين اكتشاف الميزات من خلال التحقق من إصدار البروتوكول & gt؛ = 70013.


انظر BIP 133 لمزيد من المعلومات.


يتم تعريف الرسالة sendcmpct كرسالة تحتوي على عدد صحيح 1 بايت متبوعاً عدد صحيح 8 بايت حيث pchCommand == "sendcmpct". يجب أن يتم تفسير العدد الصحيح الأول بأنه قيمة منطقية (ويجب أن يكون له قيمة إما 1 أو 0) يجب أن يتم تفسير العدد الصحيح الثاني على أنه رقم إصدار محدود. يجب أن تقوم العقد بإرسال رسالة sendcmpct بتعيين هذه القيمة حاليًا إلى 1. عند استلام رسالة "sendcmpct" مع الأعداد الصحيحة الأولى والثانية التي تم تعيينها إلى 1 ، يجب أن تعلن العقدة عن كتل جديدة عن طريق إرسال رسالة cmpctblock. عند استلام رسالة "sendcmpct" مع ضبط أول عدد صحيح على 0 ، يجب أن لا تعلن العقدة عن كتل جديدة عن طريق إرسال رسالة cmpctblock ، ولكن يجب أن تعلن عن كتل جديدة عن طريق إرسال دعوات أو رؤوس ، كما هو محدد بواسطة BIP130. عند استلام رسالة "sendcmpct" مع ضبط العدد الصحيح الثاني على شيء آخر غير 1 ، يجب أن تعالج العقد النظير كما لو أنها لم تتلق الرسالة (كما يشير إلى أن النظير سيوفر ترميزًا غير متوقع في cmpctblock ، و / أو والرسائل). يسمح هذا للإصدارات المستقبلية بإرسال رسائل sendcmpct مكررة بنسخ مختلفة كجزء من عملية تبادل الإشارات للإصدارات المستقبلية. يجب أن تحقق العقد من إصدار بروتوكول من & gt؛ = 70014 قبل إرسال رسائل sendcmpct. يجب عدم إرسال العقد لطلب MSG_CMPCT_BLOCK الكائن إلى نظير قبل تلقي رسالة sendcmpct من ذلك النظير.


هذه الرسالة مدعومة فقط من قبل إصدار البروتوكول & gt؛ = 70014.


انظر BIP 152 لمزيد من المعلومات.


يتم تعريف الرسالة cmpctblock كرسالة تحتوي على رسالة متسلسلة HeaderAndShortIDs و pchCommand == "cmpctblock". عند استلام رسالة cmpctblock بعد إرسال رسالة sendcmpct ، يجب أن تقوم العقد بحساب معرّف المعاملة القصير لكل معاملة غير مؤكدة متوفرة لديها (أي في مذكراتها) ومقارنتها بكل معرّف معاملة قصير في رسالة cmpctblock. بعد العثور على المعاملات المتوفرة بالفعل ، يجب أن تقوم العقد التي لا تحتوي على جميع المعاملات المتاحة لإعادة بناء الكتلة الكاملة بطلب المعاملات المفقودة باستخدام رسالة getblocktxn. يجب ألا ترسل العقدة رسالة cmpctblock إلا إذا كانت قادرة على الاستجابة لرسالة getblocktxn التي تطلب كل معاملة في الكتلة. يجب أن لا ترسل العقدة رسالة cmpctblock دون التحقق من أن الرأس يلائم بشكل صحيح لكل معاملة في الكتلة ، ويبني بشكل صحيح أعلى السلسلة الموجودة مع إثبات عمل صالح. قد ترسل العقدة cmpctblock قبل التحقق من أن كل معاملة في الكتلة تقضي بشكل صحيح على إدخالات UTXO المحددة.


هذه الرسالة مدعومة فقط من قبل إصدار البروتوكول & gt؛ = 70014.


انظر BIP 152 لمزيد من المعلومات.


يتم تعريف رسالة getblocktxn على أنها رسالة تحتوي على رسالة BlockTransactionsRequest متسلسلة و pchCommand == "getblocktxn". عند استلام getblocktxnmessage بشكل صحيح ، العقد التي قدمت مؤخرا مرسل هذه الرسالة يجب أن cmpctblock لتجزئة كتلة المحددة في هذه الرسالة الاستجابة مع رسالة blocktxn المناسبة. يجب أن تحتوي هذه الرسالة blocktxn على كل معاملة موجودة فقط في الكتلة المناسبة في الفهرس المحدد في قائمة فهارس getblocktxn ، حسب الترتيب المطلوب.


هذه الرسالة مدعومة فقط من قبل إصدار البروتوكول & gt؛ = 70014.


انظر BIP 152 لمزيد من المعلومات.


يتم تعريف الرسالة blocktxn على أنها رسالة تحتوي على رسالة BlockTransactions متسلسلة و pchCommand == "blocktxn". عند استلام رسالة blocktxn مطلوبة بشكل صحيح ، يجب أن تحاول العقد إعادة بناء الكتلة الكاملة عن طريق: أخذ المعاملات prefilledtxn من cmpctblock الأصلي ووضعها في المواضع المحددة. لكل معرّف معاملة قصير من cmpctblock الأصلي ، في الترتيب ، ابحث عن المعاملة المقابلة إما من الرسالة blocktxn أو من مصادر أخرى وضعها في أول موضع متوفر في الكتلة. بمجرد إعادة بناء الكتلة ، يجب معالجتها كالمعتاد ، مع الأخذ في الاعتبار أنه من المتوقع أن تتصادم معرفات المعاملة القصيرة في بعض الأحيان ، وأنه لا يجب معاقبة العقد لمثل هذه التصادمات ، أينما ظهرت.


هذه الرسالة مدعومة فقط من قبل إصدار البروتوكول & gt؛ = 70014.


<h1> طول عنوان البتوين </ h1>


الحصول على عبر متجر التطبيقات قراءة هذه المشاركة في التطبيق لدينا!


بيتكوين شكل عنوان التحقق من صحة جافا سكريبت و PHP.


لقد رأيت بعض البرامج النصية للتحقق من صحة عنوان Bitcoin للغات المختلفة ، ولكن من المستغرب أن لا نجد شيئًا لاثنين من لغات الويب الشائعة ، وهما Javascript و PHP.


هنا واحد لبيثون ، ولكن هل هناك واحد لـ PHP و / أو JS؟


هنا نسخة أفضل من إجابة تيم تيمبيرسون. فهو يعمل على إصلاح تطبيق base58 الذي كان يستخدمه (والذي لم يتم التحقق من صحة العنوان "12EJmB3cMGRNveskzA7g7kxW32gSbo2dHF".


جمعت رمز التحقق مع جميع المكتبات اللازمة وأزلت الكثير الذي لم يكن هناك حاجة. لا يعرض سوى واجهة برمجة تطبيقات واحدة: "checkAddress". لقد قمت بإنشاء صفحة رئيسية صغيرة له ، حيث يمكنك تنزيل مصدر الوحدة أو الإصدار المُصغر: http://www. julianhaight. com/javascript. shtml.


عنوان Bitcoin (مثال: 3QJmV3qfvL9SuYo34YihAf3sRCW3qSinyC) غير صالح في العديد من أمثلة PHP. أحد الأمثلة التي تعمل بشكل جيد خاصةً على العنوان أعلاه هو:


كتبت مكتبة PHP بسيطة للقيام بذلك على أساس الإجابات أعلاه. يمكن العثور عليها في بلدي جيثوب ريبو ذات الصلة:


هنا تنفيذ قصير وحديث في Javascript الذي يعتمد على CryptoJS:


عناوين البيتكوين.


على غرار الطريقة التي تعمل بها عناوين البريد الإلكتروني ، يمكن استخدام عنوان bitcoin لإرسال البيانات وتلقيها على حد سواء - أو في هذه الحالة ، bitcoins. ومع ذلك ، هناك تمييز رئيسي واحد يتم إجراؤه بين عناوين bitcoin وعناوين البريد الإلكتروني. يمكن أن يكون لدى الأشخاص عناوين بيتكوين متعددة يمكنهم استخدامها لإرسال المعاملات وتلقيها.


في الواقع ، من المستحسن استخدام عنوان بيتكوين جديد تمامًا لكل معاملة ، والتي قد تكون أو لا يمكن التحكم فيها للمستخدمين الفرديين اعتمادًا على عدد المعاملات التي ينوون معالجتها على أساس يومي. خلافا للاعتقاد الشائع ، لا يتطلب جيل عنوان بيتكوين جديد اتصال إنترنت نشط.


عنوان bitcoin هو معرف يمثل وجهة محتملة - أو أصل - لمعاملة bitcoin. كل عنوان بيتكوين يتراوح بين 26 و 35 حرفًا أبجديًا رقميًا ويمكن أن يبدأ بـ 1 أو 3. يمكن إنشاء عناوين بيتكوين جديدة أو إضافية مجانًا من خلال برنامج bitcoin المثبت ، أو يمكنك الحصول على عنوان محفظة بت كوين من تبادل أو مزود محفظة عبر الإنترنت.


أحد الجوانب المهمة لعناوين البتكوين التي يجب وضعها في الاعتبار هو أن كل عنوان حساس ودقيق لحالة الأحرف. يحتوي عنوان bitcoin مثل ما يلي على الأحرف الكبيرة والصغيرة في سلسلة الأحرف الخاصة به:


سيؤدي تغيير حرف كبير إلى حرف صغير أو العكس إلى عنوان مستلم غير صالح ، ولن يتم تحويل الأموال. هناك دائمًا احتمال عدم قبول عنوان غير صالح كمتلقي ، ولكن هذا لا يحدث إلا مرة واحدة كل 4.29 مليار عملية.


استخدم عنوان bitcoin مختلفًا لكل معاملة. ضع في اعتبارك أنه لا يوجد خطأ - من الناحية الفنية - في استخدام نفس العنوان مرارًا وتكرارًا ، ولكن استخدام عنوان جديد لكل معاملة يخلق طبقة إضافية من حماية الخصوصية.


كل عنوان بيتكوين هو فاتورة محددة للدفع. بمجرد استلام دفعة إلى عنوان بيتكوين ، لا يوجد سبب يجعل المرسل يحتفظ بتلك البيانات. ومع ذلك ، في حالة فقدان عنوان المحفظة أو تعرضه للاختراق ، سيتم إرسال أي دفعات مستقبلية إلى هذا العنوان نفسه إلى "الثقب الأسود" ، وسيتم فقدها إلى مالك العنوان الأصلي إلى الأبد. هذا هو السبب الرئيسي في أنه ينصح باستخدام عنوان بيتكوين جديد لكل معاملة - من أجل تجنب الخسارة المحتملة.


بيتكوين / التحقق من صحة العنوان.


يتم تشجيعك على حل هذه المهمة وفقًا لوصف المهمة ، باستخدام أي لغة قد تعرفها.


اكتب برنامجًا يأخذ عنوان bitcoin كوسيطة ، ويتحقق مما إذا كان هذا العنوان صحيحًا أم لا.


يستخدم عنوان bitcoin ترميز base58 ، والذي يستخدم الأبجدية للأحرف 0 .. 9 ، A ..Z ، a .. z ، ولكن بدون الأحرف الأربعة:


باستخدام هذا الترميز ، يقوم عنوان bitcoin بترميز 25 بايت:


البايت الأول هو رقم الإصدار الذي سيكون صفر لهذه المهمة؛ البايتات العشرين التالية هي عبارة عن خلاصة RIPEMD-160 ، ولكن ليس عليك أن تعرف أن لهذه المهمة: يمكنك اعتبارها بيانات عشوائية خالصة ؛ آخر أربع وحدات بايت هي التحقق من المجموع الاختباري. وهي أول أربعة بايت من ملخص SHA-256 مزدوج من 21 بايت السابقة.


للتحقق من عنوان bitcoin ، يجب عليك قراءة أول بايت واحد وعشرين ، حساب المجموع الاختباري ، والتحقق من أنه يتطابق مع وحدات البايت الأربع الأخيرة.


يمكن للبرنامج إما إرجاع قيمة منطقية أو رمي استثناء عندما لا تكون صالحة.


يمكنك استخدام مكتبة ملخص لـ SHA-256.


مثال على عنوان بيتكوين.


لا ينتمي إلى أي شخص وهو جزء من مجموعة اختبار برنامج bitcoin.


يمكنك تغيير بعض الأحرف في هذه السلسلة والتحقق من أنها ستفشل في الاختبار.


ادا


ترجمة مع - crypto.


يتطلب هذا حزمة NUnit لتجميع.


يتطلب هذا الوحدة النمطية D من المهمة SHA-256.


هذا يتطلب مكتبة DCPcrypt لتجميع.


عامل [عدل]


اذهب [عدل]


أمثلة على استخدام سطر الأوامر توضح حالة خروج البرنامج.


Mathematica / Wolfram Language [عدل]


جوليا


أوبيرون -2 [تحرير]


بيرل 6 [تحرير]


PicoLisp [تحرير]


بايثون


False True Help Yuuki-chan edit: قم بحذف هذه المساعدة إذا لم تعد هناك حاجة إليها بالنسبة لأولئك الذين ينظرون إلى الأمثلة هنا لمحاولة عمل ما هو مطلوب ، فإن المكالمة n. to_bytes () تعادل هذا الرمز الذي يحول عددًا صحيحًا (طويلًا) إلى وحدات البايت الفردية لصفيف بايت بترتيب معين:


روبي [عدل]


مع A = '1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i "


مع A = '1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62x' (الرقم النهائي i تالف إلى x).


طول عنوان البيتكوين.


جدول المحتويات.


مجلة بيتكوين - بيتكوين ، Blockchain ، والأخبار Ethereum.


تأسست في عام 2011 ، مجلة بيتكوين هي أقدم وأوثق مصدر للأخبار ، والبصيرة ، والمراجعات ، والأدلة ، وتحليل الأسعار على البيتكوين ، الأثير ، blockchain.


بيتكوين المعلومات - بيتكوين ساتوشي => الدولار.


بيتكوين ساتوشي إلى الدولار الأمريكي ، يوان صيني ، يورو ، تحويل الجنيه الاسترليني السريع.


راشوالت | احصل على محفظة بيتكوين.


RushWallet هو محفظة بيتكوين عبر منصة الفورية ، التي تسيطر عليها.


ورقة بيضاء بيتكوين: دليل المبتدئين - Bitcoin. com.


اقرأ إعلانًا هامًا عن Bitcoin من Bitcoin. com. بيتكوين بيتكوين: بيتكوين: نظام النقد الإلكتروني من نظير إلى نظير ، تم نشره في عام 2008 من قبل.


شرح تقنية Bitcoin و Blockchain - YouTube.


سلسلة الكتل هي قاعدة بيانات معاملات مشتركة بين جميع العقد المشاركة في نظام قائم على بروتوكول Bitcoin. نسخة كاملة من كتلة العملة.


Bitcoin Blockchain RESTful API.


Bitcoin Blockchain RESTful API. API للتجار ، والحصول على إحصار blockchain ، والأسواق ، والتعدين ، وتوليد رمز الاستجابة السريعة ، دفتر الأستاذ blockchain ، وخلق معاودة الاتصال والمراقبة.


عملة الرقص تفاصيل Bitcoin Cash Block.


الحصول على أحدث على الحالة الراهنة من blockchain بيتكوين النقدية.


دليل المبتدئين إلى محفظة اليكتروم بيتكوين - Bitzuma.


جديد لبيتكوين؟ اتبع هذا التدريب العملي على Electrum.


تخطيط عملية التعدين بيتكوين - عمليات كتلة.


إن تشغيل منشأة تعدين بيتكوين يمكن أن يكون مربحًا ، لكنك تحتاج إلى معاملته كأنه عمل تجاري. أقوم بتشغيل مرفق التعدين Bitcoin صغير ، وهناك الكثير.


بيتكوين النقدية التغييرات شكل عنوان لمنع الارتباك مكلفة مع BTC.


إن المشكلة الباهظة للمستخدمين الذين يرسلون عن طريق الخطأ Bitcoin (BTC) أو Bitcoin Cash (BCH) إلى عناوين بعضهم البعض على وشك أن يكونوا تاريخاً.هناك دائمًا احتمال عدم قبول عنوان غير صالح كمتلقي ، ولكن هذا لا يحدث إلا مرة واحدة كل 4.29 مليار عملية.


استخدم عنوان bitcoin مختلفًا لكل معاملة. ضع في اعتبارك أنه لا يوجد خطأ - من الناحية الفنية - في استخدام نفس العنوان مرارًا وتكرارًا ، ولكن استخدام عنوان جديد لكل معاملة يخلق طبقة إضافية من حماية الخصوصية.


كل عنوان بيتكوين هو فاتورة محددة للدفع. بمجرد استلام دفعة إلى عنوان بيتكوين ، لا يوجد سبب يجعل المرسل يحتفظ بتلك البيانات. ومع ذلك ، في حالة فقدان عنوان المحفظة أو تعرضه للاختراق ، سيتم إرسال أي دفعات مستقبلية إلى هذا العنوان نفسه إلى "الثقب الأسود" ، وسيتم فقدها إلى مالك العنوان الأصلي إلى الأبد. هذا هو السبب الرئيسي في أنه ينصح باستخدام عنوان بيتكوين جديد لكل معاملة - من أجل تجنب الخسارة المحتملة.


بيتكوين / التحقق من صحة العنوان.


يتم تشجيعك على حل هذه المهمة وفقًا لوصف المهمة ، باستخدام أي لغة قد تعرفها.


اكتب برنامجًا يأخذ عنوان bitcoin كوسيطة ، ويتحقق مما إذا كان هذا العنوان صحيحًا أم لا.


يستخدم عنوان bitcoin ترميز base58 ، والذي يستخدم الأبجدية للأحرف 0 .. 9 ، A ..Z ، a .. z ، ولكن بدون الأحرف الأربعة:


باستخدام هذا الترميز ، يقوم عنوان bitcoin بترميز 25 بايت:


البايت الأول هو رقم الإصدار الذي سيكون صفر لهذه المهمة؛ البايتات العشرين التالية هي عبارة عن خلاصة RIPEMD-160 ، ولكن ليس عليك أن تعرف أن لهذه المهمة: يمكنك اعتبارها بيانات عشوائية خالصة ؛ آخر أربع وحدات بايت هي التحقق من المجموع الاختباري. وهي أول أربعة بايت من ملخص SHA-256 مزدوج من 21 بايت السابقة.


للتحقق من عنوان bitcoin ، يجب عليك قراءة أول بايت واحد وعشرين ، حساب المجموع الاختباري ، والتحقق من أنه يتطابق مع وحدات البايت الأربع الأخيرة.


يمكن للبرنامج إما إرجاع قيمة منطقية أو رمي استثناء عندما لا تكون صالحة.


يمكنك استخدام مكتبة ملخص لـ SHA-256.


مثال على عنوان بيتكوين.


لا ينتمي إلى أي شخص وهو جزء من مجموعة اختبار برنامج bitcoin.


يمكنك تغيير بعض الأحرف في هذه السلسلة والتحقق من أنها ستفشل في الاختبار.


ادا


ترجمة مع - crypto.


يتطلب هذا حزمة NUnit لتجميع.


يتطلب هذا الوحدة النمطية D من المهمة SHA-256.


هذا يتطلب مكتبة DCPcrypt لتجميع.


عامل [عدل]


اذهب [عدل]


أمثلة على استخدام سطر الأوامر توضح حالة خروج البرنامج.


Mathematica / Wolfram Language [عدل]


جوليا


أوبيرون -2 [تحرير]


بيرل 6 [تحرير]


PicoLisp [تحرير]


بايثون


False True Help Yuuki-chan edit: قم بحذف هذه المساعدة إذا لم تعد هناك حاجة إليها بالنسبة لأولئك الذين ينظرون إلى الأمثلة هنا لمحاولة عمل ما هو مطلوب ، فإن المكالمة n. to_bytes () تعادل هذا الرمز الذي يحول عددًا صحيحًا (طويلًا) إلى وحدات البايت الفردية لصفيف بايت بترتيب معين:


روبي [عدل]


مع A = '1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i "


مع A = '1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62x' (الرقم النهائي i تالف إلى x).


طول عنوان البيتكوين.


جدول المحتويات.


مجلة بيتكوين - بيتكوين ، Blockchain ، والأخبار Ethereum.


تأسست في عام 2011 ، مجلة بيتكوين هي أقدم وأوثق مصدر للأخبار ، والبصيرة ، والمراجعات ، والأدلة ، وتحليل الأسعار على البيتكوين ، الأثير ، blockchain.


بيتكوين المعلومات - بيتكوين ساتوشي => الدولار.


بيتكوين ساتوشي إلى الدولار الأمريكي ، يوان صيني ، يورو ، تحويل الجنيه الاسترليني السريع.


راشوالت | احصل على محفظة بيتكوين.


RushWallet هو محفظة بيتكوين عبر منصة الفورية ، التي تسيطر عليها.


ورقة بيضاء بيتكوين: دليل المبتدئين - Bitcoin. com.


اقرأ إعلانًا هامًا عن Bitcoin من Bitcoin. com. بيتكوين بيتكوين: بيتكوين: نظام النقد الإلكتروني من نظير إلى نظير ، تم نشره في عام 2008 من قبل.


شرح تقنية Bitcoin و Blockchain - YouTube.


سلسلة الكتل هي قاعدة بيانات معاملات مشتركة بين جميع العقد المشاركة في نظام قائم على بروتوكول Bitcoin. نسخة كاملة من كتلة العملة.


Bitcoin Blockchain RESTful API.


Bitcoin Blockchain RESTful API. API للتجار ، والحصول على إحصار blockchain ، والأسواق ، والتعدين ، وتوليد رمز الاستجابة السريعة ، دفتر الأستاذ blockchain ، وخلق معاودة الاتصال والمراقبة.


عملة الرقص تفاصيل Bitcoin Cash Block.


الحصول على أحدث على الحالة الراهنة من blockchain بيتكوين النقدية.


دليل المبتدئين إلى محفظة اليكتروم بيتكوين - Bitzuma.


جديد لبيتكوين؟ اتبع هذا التدريب العملي على Electrum.


تخطيط عملية التعدين بيتكوين - عمليات كتلة.


إن تشغيل منشأة تعدين بيتكوين يمكن أن يكون مربحًا ، لكنك تحتاج إلى معاملته كأنه عمل تجاري. أقوم بتشغيل مرفق التعدين Bitcoin صغير ، وهناك الكثير.


بيتكوين النقدية التغييرات شكل عنوان لمنع الارتباك مكلفة مع BTC.


إن المشكلة الباهظة للمستخدمين الذين يرسلون عن طريق الخطأ Bitcoin (BTC) أو Bitcoin Cash (BCH) إلى عناوين بعضهم البعض على وشك أن يكونوا تاريخاً.............إذا كنت ترغب في التحقق من صحة عنوان Bitcoin في تطبيق ما ، فمن المستحسن استخدام طريقة من هذا الموضوع بدلا من مجرد التحقق من طول السلسلة ،.


ما هو أطول عنوان ممكن لبيتكوين؟ هم جميعا نفس الشيء .


أنا أعمل على إنشاء قاعدة بيانات mysql ولا أريد أن أضيع أي مساحة تخزين إضافية. إذن ما الذي يجب علي إدخاله لعنوان Bitcoin؟ طول CHAR X؟ (هو العنوان باستمرار طول واحد؟) أو طول VARCHAR X؟ (هل يتغير العنوان في الطول من المستخدم إلى المستخدم؟)


تختلف الترميزات "Bitcoin" و "Fixed" فقط في كيفية تبطن السلسلة المشفرة باستخدام الحروف "1". ترميز Bitcoin متوافق مع تنسيق عنوان Bitcoin ، الذي ينتج سلاسل خرج ذات طول متغير نظراً لنفس عدد وحدات إدخال البايتات. دائمًا ما يتم ترميز الترميز الثابت بأقصى عدد من الأحرف الأولية.


هل الويكي غير صحيح عن طول العناوين.


إذا كنت لا تزال غير مؤكد ، تثبت ذلك لنفسك. افترض قيمة تجزئة 20 بايت من 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF. ثم حساب عنوان بت كوين. هذا يجب أن يعطيك أكبر عنوان بيتكوين ممكن (وبالتالي أكبر عدد ممكن من الأحرف) ، أليس كذلك؟


دليل المطور - بيتكوين.


يمكن لمعاملة واحدة أن تخلق مخرجات متعددة ، كما هو الحال عند الإرسال إلى عناوين متعددة ، ولكن يمكن استخدام كل ناتج من معاملة معينة فقط. إذا كانت المعاملات الخمسة في هذه المجموعة كلها في أقصى حجم لها ، سيتطلب تنزيل الكتلة بأكملها أكثر من 500000 بايت - ولكن يتم تنزيل ثلاثة.


خائفة شخص ما سوف تولد عنوانك بيتكوين؟ : بيتكوين.


16 نوفمبر 2013. شخص يرسل بطريق الخطأ لك BTC هو أكثر ندرة من شخص توليد عنوانك ، لأن عنوان بيتكوين يحتوي أيضا على المجموع الاختباري 4 بايت. هناك 1 في. يمكنك الحصول على أوقات مختلفة من الأطر المرجعية المختلفة ولكن هناك حد أقصى لذلك ، ونحن نأخذ ذلك حسب العمر. أيضا.


Bitcoin eur google finance - City Sensors.


Bitcoin eur google finance btc bitcoin miner bitcoin size of blockcin bitcin الملياردير let's play bitcoin rte news ethereum send bitcoin.


الحسابات - كيف يتم إنشاء عناوين ethereum؟ - Ethereum.


3 مايو 2016. العديد من التطبيقات وواجهات برمجة التطبيقات تهدف أيضًا إلى تنفيذ نظام العنوان الجديد الذي تم تمكينه باستخدام اختباري في محفظة Mist Ethereum اعتبارًا من الإصدار 0.5.0. - مستندات Homestead. المفتاح الخاص: عدد صحيح موجب تم تحديده عشوائياً (يتم تمثيله كمصفوفة بايت من طول 32 في شكل كبير نهاية) في النطاق [1 ،.


bips / bip-0016.mediawiki at master · bitcoin / bips · GitHub.


3 يناير 2012. وتسمح هذه الميزة للمرسل بتمويل أي معاملة تعسفية ، بغض النظر عن مدى تعقيدها ، باستخدام تجزئة ذات طول ثابت يصل إلى 20 بايت وقصيرة بما يكفي للمسح. التغييرات اللازمة لجميع البنية التحتية الداعمة التي تم إنشاؤها بالفعل لإرسال الأموال إلى عناوين bitcoin base-encode-20-by base58 ،.

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.