من الممكن الكتابة إلى blockchain لعملة البيتكوين ليس فقط المعاملات المالية ، ولكن أيضًا أي بيانات تقريبًا. تصبح البيانات المسجلة في blockchain Bitcoin عامة ومن شبه المستحيل حذفها أو تغييرها. يمكن استخدام هذه الميزة ، على سبيل المثال ، لإنشاء مواقع غير مركزية غير قابلة للحظر.
باستخدام مكتبة blockchaindata-lib ، يمكن تنظيم كتابة وقراءة البيانات على blockchain في بضعة أسطر من التعليمات البرمجية.
الأدوات
تتم كتابة مكتبة blockchaindata-lib في node.js. شفرة المصدر مع أمثلة متاحة في
github.com/3s3s/blockchaindata-lib github. لإضافة مكتبة إلى مشروعك ، ما عليك سوى تشغيل أمر واحد في وحدة التحكم
npm install blockchaindata-lib
للعمل مع blockchain ، يجب عليك تكوين وصول RPC إلى محفظة Bitcoin أو شوكة متوافقة مع Bitcoin (Litecoin ، Dogecoin ، إلخ). بشكل افتراضي ، ستحاول blockchaindata-lib الوصول إلى خادم RPC على التفاصيل التالية:
: http://127.0.0.1:18332 : rpc_btc_test : rpc_btc_password_test
يمكن تغيير الإعدادات الافتراضية حسب وظيفة المكتبة
updateNetwork(url, user, password)
وبالتالي ، من أجل العمل مع المكتبة ، فإن أول ما عليك فعله هو إطلاق محفظة اختبار Bitcoin:
- تنزيل محفظة Bitcoin (أو شوكة متوافقة)
- إنشاء ملف ~ / .bitcoin / bitcoin.conf (أو في Windows٪ APPDATA٪ / Bitcoin / bitcoin.conf)
- في ملف bitcoin.conf ، اكتب الإعدادات التالية
testnet=1 server=1 rpcbind=127.0.0.1 rpcallowip=127.0.0.1 rpcuser=rpc_btc_test rpcpassword=rpc_btc_password_test txindex=1
- حفظ التغييرات إلى bitcoin.conf وتشغيل bitcoind (أو في windows bitcoin-qt.exe)
- انتظر تزامن blockchain
باستخدام الإعدادات المذكورة أعلاه ، سيتم تشغيل المحفظة في شبكة اختبار Bitcoin.
تسجيل البيانات
في البيتكوين ، تحظر المعاملات التي لا توجد فيها نفقات. لذلك ، قبل أن تكتب شيئًا ما إلى سلسلة Bitcoin blockchain ، سيكون عليك بالتأكيد تجديد محفظتك. يمكن الحصول على Bitcoins لشبكة اختبار مجانًا إذا كنت تبحث على Google عن شيء مثل "bitcoin testnet faucet". عندما يتم تجديد المحفظة ، يمكنك أخيرًا تسجيل البيانات.
تحتوي المكتبة على العديد من الوظائف لتسجيل البيانات:
SaveTextToBlockchain( dataString ) SaveJSONToBlockchain( objectJSON ) SaveFileToBlockchain( data )
من حيث المبدأ ، ما تفعله هذه الوظائف واضح من الاسم. نتيجة دالة - كائن
{النتيجة: <صحيح | false> ، الرسالة: <string> ، txid: <string>}
النظر في مثال الاستخدام:
'use strict'; const blockchaindata = require('blockchaindata-lib') async function test1() { try {
إذا تم تنفيذ هذا الرمز دون أخطاء ، فسيتم عرض تجزئة المعاملة في وحدة التحكم. يمكنك قراءة البيانات من هذا التجزئة.
قراءة البيانات
من أجل قراءة البيانات المسجلة في وقت سابق في blockchain ، تحتاج فقط إلى معرفة تجزئة المعاملة. قد تكون المحفظة فارغة ، أي إذا كنت ترغب فقط في قراءة البيانات ، فإن إعادة ملء المحفظة ليست ضرورية.
مثال رمز
'use strict'; const blockchaindata = require('blockchaindata-lib'); async function test2() {
إذا كان هذا الرمز يعمل بدون أخطاء ، فسيتم عرض نص html للصفحة الذي قمت بحفظه مسبقًا على blockchain في وحدة التحكم.
أين تقدم؟
في blockchain ، على سبيل المثال ، يمكنك حفظ موقع ثابت. سيكون هذا الموقع مستحيلًا لحذفه أو حظره بطريقة أو بأخرى. ومع ذلك ، لقراءة هذا الموقع ، ستحتاج إلى برنامج إضافي: متصفح جديد أو امتداد متصفح.
امتداد المتصفح هو الحل الأسهل. مثال على هذا التمديد يمكن العثور عليه هنا
github.com/3s3s/blockchaindataيمكنك تنزيل هذا الامتداد وتثبيته لبرنامج Firefox من هنا:
yadi.sk/d/a3xM9BCepP4nBwبعد التثبيت ، سيعترض Firefox ويعالج الارتباطات إلى المواقع بالتنسيق
http: // tbtc / <txid>
على سبيل المثال ، سيعمل هذا الرابط على
http: // tbtc / 8af6633160b982a0b0b4d4962ad28e0d5b3dd97e05e27cc2dd64ec0c56820df5فعالية
تقوم مكتبة blockchaindata-lib بضغط البيانات قبل وضعها على blockchain باستخدام خوارزمية deflate ، لذلك هذه الطريقة فعالة بشكل خاص لكتابة المستندات النصية. أثناء الاختبار ، تمكنت من كتابة ما يصل إلى 70 كيلو بايت من البيانات المضغوطة إلى blockchain. على الرغم من عدم وجود قيود على حجم البيانات الواردة ، تظهر الأخطاء في مجموعات البيانات الكبيرة بسبب التنفيذ الداخلي لرمز البيتكوين.
عند كتابة البيانات إلى blockchain ، يجب على المرء أيضًا مراعاة المكون المالي. قراءة وكتابة البيانات إلى شبكة اختبار Bitcoin باستخدام مكتبة blockchaindata-lib بسيطة ومجانية. ومع ذلك ، إذا كنت ترغب في كتابة البيانات إلى شبكة عمل البيتكوين ، فستحتاج إلى مراعاة سعر البيتكوين غير الصفري.