Rumah pembangunan bahagian belakang Tutorial Python Menguruskan Penyimpanan Data dengan Blockchain dan BigChaindb

Menguruskan Penyimpanan Data dengan Blockchain dan BigChaindb

Feb 23, 2025 am 08:52 AM

Managing Data Storage with Blockchain and 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.
Walaupun masa depan Bitcoin tidak jelas, teknologi yang mendasari di mana ia bergantung - blockchain - telah mengubah sepenuhnya banyak industri dan projek, dan lebih banyak aplikasi akan muncul.

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.

  1. Pasang RethinkDB, dan untuk pengguna Mac yang lain, terdapat juga pakej homebrew yang tersedia.
  2. Pasang Python 3.4.
  3. Pasang BigChaindb dengan Pip - sudo Pip Install BigChaindb
  4. Mula Rethinkdb dengan Rethinkdb
  5. Mula BigChaindb dengan BigChaindb Start, ia juga akan mengkonfigurasi beberapa kandungan untuk anda.
  6. 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
Salin selepas log masuk

Buat fail baru, app.py dan tambahkan yang berikut:

from bigchaindb import Bigchain
b = Bigchain()
print(b)
Salin selepas log masuk

Ini akan mengimport perpustakaan BigChaindb, membuat objek baru dan sambungkannya menggunakan fail tetapan yang baru anda buat.

kemudian jalankan aplikasi python:

python app.py
Salin selepas log masuk

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)
Salin selepas log masuk

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
    }
  }
}
Salin selepas log masuk

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)
Salin selepas log masuk

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

Tambahkan muatan berikut, di mana operasi boleh diubah sesuai dengan pelbagai jenis urus niaga yang boleh ditulis:

{
  "id": "",
  "signature": "",
  "transaction": {
    "current_owner": "",
    "data": {
      "hash": "",
      "payload": null
    },
  "input": null,
  "new_owner": "",
  "operation": "",
    "timestamp": ""
  }
}
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Apr 01, 2025 pm 05:09 PM

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

Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Apr 01, 2025 pm 11:15 PM

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 Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam? Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam? Apr 02, 2025 am 07:18 AM

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 ...

Bagaimana untuk mengelakkan dikesan oleh penyemak imbas apabila menggunakan fiddler di mana-mana untuk membaca lelaki-dalam-tengah? Bagaimana untuk mengelakkan dikesan oleh penyemak imbas apabila menggunakan fiddler di mana-mana untuk membaca lelaki-dalam-tengah? Apr 02, 2025 am 07:15 AM

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

Apakah ungkapan biasa? Apakah ungkapan biasa? Mar 20, 2025 pm 06:25 PM

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

Apakah beberapa perpustakaan Python yang popular dan kegunaan mereka? Apakah beberapa perpustakaan Python yang popular dan kegunaan mereka? Mar 21, 2025 pm 06:46 PM

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 tanpa serving_forever ()? Bagaimanakah uvicorn terus mendengar permintaan http tanpa serving_forever ()? Apr 01, 2025 pm 10:51 PM

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

Bagaimana secara dinamik membuat objek melalui rentetan dan panggil kaedahnya dalam Python? Bagaimana secara dinamik membuat objek melalui rentetan dan panggil kaedahnya dalam Python? Apr 01, 2025 pm 11:18 PM

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 ...

See all articles