


Menguruskan Penyimpanan Data dengan Blockchain dan BigChaindb
mata teras
- Ascribe menggunakan blockchain bitcoin untuk merekodkan pengenalan unik karya seni digital dan menggabungkan pangkalan data NoSQL (Rethinkdb) dengan lapisan blockchain untuk membuat BigChaindb. Gabungan ini meningkatkan kawalan, pengesanan aset dan tahap keselamatan, dan sangat menarik untuk pengguna pangkalan data NoSQL.
- BigChaindb mendakwa sepenuhnya terdesentralisasi kerana lapisan blockchainnya. Ia juga menambah sokongan transaksi, ciri yang sering hilang dalam pangkalan data NoSQL. Sokongan ini memastikan perubahan pangkalan data telah berlaku ketika menulis ke pangkalan data NoSQL yang mendasari melalui lapisan blockchain.
- BigChaindb boleh mengisi jurang yang hilang dalam pangkalan data NoSQL dan diedarkan semasa, yang mungkin menyediakan kes perniagaan atau penggunaan yang berkesan. Bagi peminat blockchain, ia mencapai cabaran susunan aplikasi yang terdesentralisasi sepenuhnya, yang mungkin mengubah bagaimana aplikasi dibangunkan, digunakan, dan dikekalkan.
Ascribe adalah permulaan yang menarik yang menggunakan blockchain bitcoin untuk merekodkan bilangan pengenal unik yang terhad untuk karya seni digital. Oleh itu, disebabkan bilangan "salinan" yang terhad ini, mereka boleh dikesan, bertanggungjawab dan (mudah -mudahan) nilai yang lebih tinggi.
Ascribe menghadapi masalah teknikal apabila menggunakan kaedah ini, yang terutamanya berpunca daripada blockchain bitcoin itu sendiri. Ia lambat untuk menulis segala -galanya, mahal (kini 80 sen setiap masa) dan penyertaan harian terhad dan jumlah kapasiti menulis. Ia juga bertentangan dengan teknik pangkalan data berskala tipikal, menambah nod tidak meningkatkan prestasi, dan tidak ada bahasa pertanyaan sebenar. Ini menjadikan pengembangan perniagaan berdasarkan bitcoin blockchain sebagai cabaran.
Walau bagaimanapun, konsep blockchain adalah konsep yang kuat, dan penggunaan dan legitimasinya telah meningkat sejak beberapa tahun kebelakangan ini, dan bahkan bank -bank besar telah mengumumkan bahawa mereka sedang membangunkan teknologi yang diilhamkan oleh konsep itu.
Ascribe memutuskan untuk menggabungkan kelebihan kedua -duanya, mengamalkan pangkalan data NoSQL yang terbukti (RethinkDB) dan menambah lapisan blockchain untuk meningkatkan kawalan, pengesanan aset dan tahap keselamatan tambahan.
Gabungan teknologi ini amat menarik untuk pengguna pangkalan data NoSQL, kerana beberapa sokongan pangkalan data NoSQL secara tradisinya membantu memastikan perubahan pangkalan data telah berlaku "urus niaga". BigChaindb menambah sokongan transaksi dengan menulis kepada pangkalan data NoSQL yang mendasari melalui lapisan blockchain.
BigChaindb juga mendakwa sepenuhnya terdesentralisasi kerana lapisan blockchain. Walaupun banyak pangkalan data NoSQL yang diedarkan mendakwa telah terdesentralisasi, sering terdapat tetapan pseudo-master/hamba.
Memasang BigChaindb dan Dependency
Terdapat beberapa cara untuk memasang BigChaindb. Mula -mula saya mencuba imej Docker, tetapi menemui beberapa isu sambungan dan mendapati bahawa pakej Python adalah yang paling dipercayai.
- Pasang RethinkDB, dan untuk pengguna Mac yang lain, terdapat juga pakej homebrew yang tersedia.
- Pasang Python 3.4.
- Pasang BigChaindb dengan Pip - sudo Pip Install BigChaindb
- Mula Rethinkdb dengan Rethinkdb
- Mula BigChaindb dengan BigChaindb Start, ia juga akan mengkonfigurasi beberapa kandungan untuk anda.
- Buka BigChaindb (sebenarnya rethinkdb ui) di http: // server_ip: 58080/.
Contoh mudah - Peruntukan mesej dan penjejakan
Salah satu kes penggunaan utama BigChaindb (dan mengapa ascribe menciptanya) adalah untuk mengesan aset, jadi mari kita buat contoh mudah dalam Python. Mula -mula jalankan arahan berikut di terminal anda.
pip install bigchaindb bigchaindb configure bigchaindb show-config
Buat fail baru, app.py dan tambahkan yang berikut:
from bigchaindb import Bigchain b = Bigchain() print(b)
Ini akan mengimport perpustakaan BigChaindb, membuat objek baru dan sambungkannya menggunakan fail tetapan yang baru anda buat.
kemudian jalankan aplikasi python:
python app.py
anda harus melihat sesuatu seperti <bigchaindb.core.bigchain at 0x...>
, yang memberitahu kita semuanya baik -baik saja.
tambahkan yang berikut:
from bigchaindb import Bigchain import time b = Bigchain() spuser_priv, spuser_pub = b.generate_keys() print("User Created") digital_asset_payload = {'msg': 'This is my special message just for you'} tx = b.create_transaction(b.me, spuser_pub, None, 'CREATE', payload=digital_asset_payload) print("Transaction Written") tx_signed = b.sign_transaction(tx, b.me_private) b.write_transaction(tx_signed) print ("Transaction Written to BC, now waiting") time.sleep(10) tx_retrieved = b.get_transaction(tx_signed['id']) print(tx_retrieved)
Ini akan mewujudkan pengguna dan kunci yang berkaitan untuk mengakses pangkalan data - ingat tahap keselamatan tambahan. Kemudian buat muatan untuk menulis ke pangkalan data, peruntukkan kunci yang diperlukan, dan tuliskannya.
Berapa detik yang dilakukan oleh transaksi baru untuk lulus dari lapisan blockchain ke pangkalan data. Kod menunggu selama sepuluh saat, dan kemudian mengambil semula dan mencetak rekod. Anda harus melihat sesuatu seperti yang berikut:
{ "signature": '304502205...', "id": "0f442bcf4a42...", "transaction": { "timestamp": "1457104938.430521", "data": { "hash": "b32779e57...", "payload": { "msg": "This is my special message just for you" } }, "operation": "CREATE", "current_owner": "hFJKYk2...", "new_owner": "26pdiQTTx...", "input": None } } }
anda kini mempunyai mesej khas yang anda mahu seseorang dapat mengakses:
... print("Now to transfer") spuser2_priv, spuser2_pub = b.generate_keys() print("Second User Created") tx_transfer = b.create_transaction(spuser_pub, spuser2_pub, tx_retrieved['id'], 'TRANSFER') print("Transfer Created") tx_transfer_signed = b.sign_transaction(tx_transfer, spuser_priv) b.write_transaction(tx_transfer_signed) print ("Transaction Written to BC, now waiting") time.sleep(15) tx_transfer_retrieved = b.get_transaction(tx_transfer_signed['id']) print("Transferred") print(tx_transfer_retrieved)
Ini akan membuat pengguna kedua, kemudian dapatkan ID transaksi mesej khas dan pindahkannya ke pengguna kedua. Lapisan blockchain BigChaindb akan menghalang pengguna dan kod anda daripada melakukan operasi yang sama dua kali. Jika anda cuba menjalankan kod di atas sekali lagi, pengecualian perbelanjaan berganda dilemparkan.
Contoh ini menunjukkan sebahagian kecil daripada bagaimana BigChaindb ditambah kepada RethinkDB, dan senarai lengkap tersedia di sini.
http endpoint
Pada masa ini, satu -satunya perpustakaan pelanggan yang tersedia untuk BigChaindb adalah Python, dan mungkin terdapat lebih banyak perpustakaan, tetapi pada masa yang sama, titik akhir HTTP yang terhad boleh digunakan untuk menanyakan urus niaga yang ada:
https://www.php.cn/link/6EEA81FA0417B0068E614074225A9DAF
atau tulis transaksi baru menggunakan kaedah berikut:
https://www.php.cn/link/f8b64946ebc86a5e23e1605a2943210c
{ "id": "", "signature": "", "transaction": { "current_owner": "", "data": { "hash": "", "payload": null }, "input": null, "new_owner": "", "operation": "", "timestamp": "" } }
Komponen masa depan yang terdesentralisasi
Abaikan asal -usul bloknya pada masa ini, BigChaindb menyediakan sejumlah besar ciri yang hilang dalam NoSQL semasa dan pangkalan data yang diedarkan. Fakta ini sahaja mungkin menjadi alasan untuk mencubanya dan mungkin menyediakan kes perniagaan/penggunaan yang sah.Untuk peminat blockchain di antara anda, ia juga melengkapkan teka -teki timbunan aplikasi yang terdesentralisasi lengkap. Secara teorinya, kini terdapat Ethereum untuk aplikasi, IPF untuk sistem fail, dan BigChaindb untuk penyimpanan data. Komponen -komponen ini menetapkan tahap untuk cara yang sangat berbeza untuk membangun, menggunakan dan mengekalkan aplikasi, mewujudkan masa depan yang menarik, dan saya berharap dapat mendengar komen anda mengenai ini dalam komen di bawah.
(bahagian FAQ ditinggalkan di sini kerana bahagian ini hanyalah ringkasan mudah dan menceritakan kandungan artikel dan tidak masuk ke dalam kategori pseudo-asal.)
Atas ialah kandungan terperinci Menguruskan Penyimpanan Data dengan Blockchain dan BigChaindb. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Ekspresi biasa adalah alat yang berkuasa untuk memadankan corak dan manipulasi teks dalam pengaturcaraan, meningkatkan kecekapan dalam pemprosesan teks merentasi pelbagai aplikasi.

Artikel ini membincangkan perpustakaan Python yang popular seperti Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask, dan Permintaan, memperincikan kegunaan mereka dalam pengkomputeran saintifik, analisis data, visualisasi, pembelajaran mesin, pembangunan web, dan h

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Di Python, bagaimana untuk membuat objek secara dinamik melalui rentetan dan panggil kaedahnya? Ini adalah keperluan pengaturcaraan yang biasa, terutamanya jika perlu dikonfigurasikan atau dijalankan ...
