Bluzelle-Py adalah perpustakaan Python yang dapat digunakan untuk mengakses layanan database Bluzelle.
Perpustakaan Python belum diterbitkan pada manajer paket apa pun, untuk menginstal dan menggunakan mengikuti instruksi di bawah ini:
$ # build the library
$ pip install " poetry==1.1.7 "
$ poetry config virtualenvs.create false
$ poetry install --no-interaction --no-ansi
$ pip install .Ada tindakan github yang menggunakan rilis baru (menggunakan tag baru) ke paket PYPI. (Diperlukan untuk mendapatkan pypi_token dari situs web https://pypi.org dan menambahkannya ke rahasia repositori github.)
Untuk menghubungkan instance Anda ke Bluzelle TestNet, Anda dapat:
Mint akun dengan mengunjungi https://client.sentry.testnet.private.bluzelle.com:1317/mint , yang akan memberikan mnemonik dan alamat. Ini mungkin memakan waktu cukup lama.
Periksa saldo Anda di https://client.sentry.testnet.private.bluzelle.com:1317/bank/balances/{Address} . Jika saldo akun Anda adalah 0, mint akun lain sampai saldo UBNT positif menunjukkan
Konfigurasikan instance SDK Anda dengan opsi berikut:
from bluzelle . sdk . bluzelle import Bluzelle
sdk = Bluzelle (
mnemonic = "space dilemma domain payment snap crouch arrange"
" fantasy draft shaft fitness rain habit dynamic tip "
"faith mushroom please power kick impulse logic wet cricket" ,
host = "https://client.sentry.testnet.private.bluzelle.com" ,
port = 26657 ,
max_gas = 100000000 ,
gas_price = 0.002 ,
)CATATAN: Jika Gasprice dan/atau MaxGas yang ditentukan terlalu rendah, transaksi apa pun dapat ditolak oleh validator (misalnya transaksi membutuhkan lebih banyak gas daripada yang ditentukan MaxGas, atau Gasprice terlalu rendah untuk menutupi biaya validator). Saran default untuk bidang -bidang ini di atas akan cukup.
Catatan: Jika Anda ingin menjalankan contoh di folder perpustakaan, tempatkan kode di dalam file di direktori root
Catatan: Untuk kedua versi pertama kali buat instance SDK kemudian gunakan loop asyncio untuk menjalankan program. Untuk detail lebih lanjut tentang ini lihat contoh/example.py.
Setelah mengkonfigurasi SDK Anda, Anda akan memiliki akses ke berbagai modul dan metode yang sesuai.
sdk.[module].[q or tx or field].[Method](**kwargs)
Setiap metode mengambil satu parameter sebagai objek (IE Request), dan mengembalikan objek (yaitu respons). Untuk melihat jenis permintaan dan respons, lihat Curium/Proto/[Modul] untuk kueri dan transaksi.
response = await sdk . db . q . Read (
QueryReadRequest (
uuid = uuid ,
key = "myKey" ,
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)
print ( reponse )*Catatan: Respons adalah UInt8Array yang mewakili nilai yang dikodekan byte yang telah ditanya. Untuk mendapatkan representasi string dari nilai, gunakan TextDecoder baru (). Decode (resp.Value)
response = await sdk . bank . q . Balance (
QueryBalanceRequest (
address = sdk . wallet . address ,
denom = "ubnt" ,
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)
print ( response )SDK juga dapat mengirim transaksi ke rantai. Setiap modul memiliki metode TX untuk mengirim berbagai pesan transaksi.
await sdk . db . tx . Create (
MsgCreate (
creator = sample_creator ,
uuid = uuid ,
key = "myKey" ,
value = "myValue" . encode ( "utf-8" ),
lease = Lease ( hours = 1 ),
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)*Catatan: SDK sedang menandatangani dan mengirim transaksi, sehingga alamat penandatangan harus cocok dengan pencipta transaksi. Jika tidak, kesalahan akan dilemparkan
** Catatan: Lihat Bluzelle.codec.crud.lease_pb2 untuk melihat antarmuka sewa
Bungkus banyak pesan dalam satu transaksi.
await sdk . db . with_transactions (
[
MsgCreate (
creator = sdk . wallet . address ,
uuid = uuid ,
key = "firstKey" ,
value = "firstValue" . encode ( "utf-8" ),
lease = Lease ( hours = 1 ),
),
MsgCreate (
creator = sdk . wallet . address ,
uuid = uuid ,
key = "secondKey" ,
value = "firstValue" . encode ( "utf-8" ),
lease = Lease ( hours = 1 ),
),
MsgCreate (
creator = sdk . wallet . address ,
uuid = uuid ,
key = "thirdKey" ,
value = "firstValue" . encode ( "utf-8" ),
lease = Lease ( hours = 1 ),
),
],
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
memo = "optionalMemo" ,
)Catatan: Jika ada salah satu pesan yang gagal dalam fungsi yang diteruskan ke WithRansaction, maka semua pesan akan gagal dan tidak berkomitmen ke blok
Buat nilai kunci dalam database.
await sdk . db . tx . Create (
MsgCreate (
creator = sample_creator ,
uuid = uuid ,
key = "someKeyB" ,
value = "someValue" . encode ( "utf-8" ),
lease = Lease ( days = 1 ),
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: msgcreaterponse (objek kosong)
| MsgCreateRequest | Keterangan | Jenis |
|---|---|---|
| pencipta | Alamat penandatangan | str |
| UUID | Pengidentifikasi basis data | str |
| kunci | str | |
| nilai | byte | |
| metadata | byte | |
| sewa | Rentang hidup bernilai kunci | Sewa * |
*Sewa (detik = angka, menit = angka, jam = angka, hari = angka, tahun = angka)
Hapus nilai kunci dalam database.
await sdk . db . tx . Delete (
MsgDelete ( creator = sample_creator , uuid = "myUuid" , key = "myKey" ),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: Msgdeleteresponse (objek kosong)
| Msgdeleterequest | Keterangan | Jenis |
|---|---|---|
| pencipta | Alamat penandatangan | str |
| UUID | Pengidentifikasi basis data | str |
| kunci | Kunci untuk menghapus | str |
Perbarui semua sewa nilai kunci dalam UUID yang ditentukan.
response = await sdk . db . tx . DeleteAll ( creator = sample_creator , uuid = "myUuid" )
print ( response )Pengembalian: janji => msgdeleteallResponse (objek kosong)
| MsgdeleteallRequest | Keterangan | Jenis |
|---|---|---|
| pencipta | Alamat penandatangan | str |
| UUID | Pengidentifikasi basis data | str |
Perbarui satu set nilai kunci dalam UUID yang ditentukan.
await sdk . db . tx . MultiUpdate (
creator = sample_creator ,
uuid = "myUuid" ,
keyValues = [
MsgUpdate (
creator = sample_creator ,
uuid = "uuid" ,
key = "myKey-1" ,
value = "updatedValue-2" . encode ( "utf-8" ),
lease = Lease ( minutes = 1 ),
),
MsgUpdate (
creator = sample_creator ,
uuid = "uuid" ,
key = "myKey-2" ,
value = "updatedValue-2" . encode ( "utf-8" ),
lease = Lease ( minutes = 1 ),
),
],
)Pengembalian: msgmultiupdateresponse (objek kosong)
| MsgmultiupdateRequest | Keterangan | Jenis |
|---|---|---|
| pencipta | Alamat penandatangan | rangkaian |
| UUID | Pengidentifikasi basis data | rangkaian |
| Nilai Key | KEYVALULEASE (kunci: str, nilai: byte, sewa: sewa) | Keyvaluelease [] |
Perbarui sewa nilai kunci dalam database.
await sdk . db . tx . Rename (
MsgRename (
creator = sample_creator , uuid = "myUuid" , key = "existingKey" , newKey = "renamingKey"
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: msgrenameresponse (objek kosong)
| Msgrenamerequest | Keterangan | Jenis |
|---|---|---|
| pencipta | Alamat penandatangan | str |
| UUID | Pengidentifikasi basis data | str |
| kunci | Kunci yang ada | str |
| Newkey | Kunci baru yang digunakan untuk mengganti nama | str |
Perbarui sewa nilai kunci dalam database.
respons = await sdk . db . tx . RenewLease (
MsgRenewLease (
creator = sample_creator , uuid = "myUuid" , key = "existingKey" , lease = Lease ( hours = 1 )
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: msgrenewleaseresponse (objek kosong)
| Msgrenewleaserequest | Keterangan | Jenis |
|---|---|---|
| pencipta | Alamat penandatangan | str |
| UUID | Pengidentifikasi basis data | str |
| kunci | str | |
| sewa | Rentang hidup baru untuk nilai kunci | Sewa * |
*Sewa (detik = angka, menit = angka, jam = angka, hari = angka, tahun = angka)
Perbarui semua sewa nilai kunci dalam UUID yang ditentukan.
await sdk . db . tx . RenewLeasesAll (
MsgRenewLeasesAll (
creator = sample_creator ,
uuid = uuid ,
lease = Lease ( seconds = 10 ),
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: msgrenewleasesAllResponse (objek kosong)
| MsGrenewleasesAllRequest | Keterangan | Jenis |
|---|---|---|
| pencipta | Alamat penandatangan | str |
| UUID | Pengidentifikasi basis data | str |
| sewa | Rentang hidup baru untuk semua nilai kunci | Sewa * |
*Sewa (detik = angka, menit = angka, jam = angka, hari = angka, tahun = angka)
Perbarui nilai kunci dalam database.
await sdk . db . tx . Update (
MsgUpdate (
creator = sample_creator ,
uuid = uuid ,
key = "myKey" ,
value = "updatedValue" . encode ( "utf-8" ),
lease = Lease ( minutes = 1 ),
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Returns: Msgupdateresponse (Objek Kosong)
| MsgupDateRequest | Keterangan | Jenis |
|---|---|---|
| pencipta | Alamat penandatangan | str |
| UUID | Pengidentifikasi basis data | str |
| kunci | str | |
| nilai | Nilai baru untuk diperbarui | byte |
| metadata | byte | |
| sewa | Rentang hidup bernilai kunci | Sewa |
*Sewa (detik = angka, menit = angka, jam = angka, hari = angka, tahun = angka)
Upsert Nilai kunci dalam database: Buat nilai kunci jika kunci tidak ada, perbarui nilai kunci jika kunci ada
await sdk . db . tx . Upsert (
MsgUpsert (
creator = sample_creator ,
uuid = "myUuid" ,
key = "keyToUpsert" ,
value = "valueToUpsert" . encode ( "utf-8" ),
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Returns: MsgUpsertresponse (Objek Kosong)
| Msgupsertrequest | Keterangan | Jenis |
|---|---|---|
| pencipta | Alamat penandatangan | str |
| UUID | Pengidentifikasi basis data | str |
| kunci | str | |
| nilai | byte | |
| metadata | byte | |
| sewa | Rentang hidup bernilai kunci | Sewa * |
*Sewa (detik = angka, menit = angka, jam = angka, hari = angka, tahun = angka)
Query Jumlah total nilai kunci dalam UUID yang ditentukan.
await sdk . db . q . Count (
MsgCount ( uuid = "myUuid" ),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: QueryCountresponse
| QueryCountrequest | Keterangan | Jenis |
|---|---|---|
| UUID | Pengidentifikasi basis data | str |
| QueryCountresponse | Keterangan | Jenis |
|---|---|---|
| menghitung | Jumlah nilai kunci di UUID | int |
Dapatkan waktu sewa yang tersisa dari nilai kunci.
response = await sdk . db . q . GetLease (
QueryGetLeaseRequest (
uuid = uuid ,
key = "myKey" ,
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: QueryGetleaseresponse
| Querygetleaserequest | Keterangan | Jenis |
|---|---|---|
| UUID | Pengidentifikasi basis data | str |
| kunci | str |
| Querygetleaseresponse | Keterangan | Jenis |
|---|---|---|
| detik | Waktu sewa yang tersisa dari nilai kunci | nomor |
Dapatkan waktu sewa yang tersisa dari nilai-nilai kunci.
response = await sdk . db . q . GetNShortestLeases (
QueryGetNShortestLeasesRequest (
uuid = uuid ,
num = 5 ,
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: QueryGetNShortestleasesResponse
| QuerygetnshortestleasesRequest | Keterangan | Jenis |
|---|---|---|
| UUID | Pengidentifikasi basis data | str |
| num | Jumlah keyleas untuk dikembalikan | int |
| QuerygetnshortestleasesResponse | Keterangan | Jenis |
|---|---|---|
| Keyleases | Keylease (key = string, detik = angka) | Daftar (KeyLease) |
Periksa apakah ada kunci di UUID yang ditentukan.
await sdk . db . q . Has (
MsgHas (( uuid = "myUuid" ), ( key = "myKey" )),
( timeout = 3000 ),
( metadata = None ),
( credentials = None ),
( wait_for_ready = True ),
( compression = False )
);Pengembalian: QueryhasResponse
| QueryhasRequest | Keterangan | Jenis |
|---|---|---|
| UUID | Pengidentifikasi basis data | str |
| kunci | str |
| Queryhasresponse | Keterangan | Jenis |
|---|---|---|
| memiliki | Benar jika kunci ada di UUID; Salah sebaliknya | bool |
Baca satu set kunci lengkap di UUID yang ditentukan. ### HHIO
await sdk . db . q . Keys (
MsgKeys ( uuid = "myUuid" , pagination = { "start" : "key-a" , "limit" : 50 }),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: QueryKeysResponse
| QueryKeysRequest | Keterangan | Jenis |
|---|---|---|
| UUID | Pengidentifikasi basis data | str |
| Pagination (opsional) | PagingRequest (startKey = string, limit = long) | PagingRequest |
| QueryKeysResponse | Keterangan | Jenis |
|---|---|---|
| kunci | Daftar (str) | |
| Pagination (opsional) | PagingResponse {NextKey: String, Total: Long} | PagingResponse |
Baca set lengkap nilai kunci dalam UUID yang ditentukan.
response = await sdk . db . q . KeyValues (
QueryKeyValuesRequest ( uuid = uuid ),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: QueryKeyValuesResponse
| QueryKeyValuesRequest | Keterangan | Jenis |
|---|---|---|
| UUID | Pengidentifikasi basis data | str |
| Pagination (opsional) | PagingRequest {StartKey: String, Limit: Long} | PagingRequest |
| QueryKeyValuesResponse | Keterangan | Jenis |
|---|---|---|
| Nilai Key | KeyValue {key: string, value: uint8Array} | Daftar (KeyValue) |
| Pagination (opsional) | PagingResponse {NextKey: String, Total: Long} | PagingResponse |
Baca satu set kunci lengkap berdasarkan alamat di UUID yang ditentukan. ### HHIO
await sdk . db . q . Keys (
MsgKeys (( uuid = "myUuid" ), ( address = sample_creator )),
( timeout = 3000 ),
( metadata = None ),
( credentials = None ),
( wait_for_ready = True ),
( compression = False )
);Returns: QueryMyKeysResponse
| QueryMyKeySrequest | Keterangan | Jenis |
|---|---|---|
| UUID | Pengidentifikasi basis data | str |
| alamat | Alamat Bluzelle | str |
| Pagination (opsional) | PagingRequest {StartKey: String, Limit: Long} | PagingRequest |
| QuerymykeysResponse | Keterangan | Jenis |
|---|---|---|
| kunci | Daftar (String) | |
| Pagination (opsional) | PagingResponse {NextKey: String, Total: Long} | PagingResponse |
Baca nilai dari database.
response = await sdk . db . q . Read (
QueryReadRequest (
uuid = uuid ,
key = "myKey" ,
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: QueryReadResponse
| QueryReadRequest | Keterangan | Jenis |
|---|---|---|
| UUID | Pengidentifikasi basis data | str |
| kunci | str |
| QueryReadResponse | Keterangan | Jenis |
|---|---|---|
| nilai | byte |
Cari dengan kunci di UUID yang ditentukan.
response = await sdk . db . q . Search (
QuerySearchRequest (
uuid = uuid ,
searchString = "s" ,
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)Pengembalian: QuerySearchResponse
| QuerySearchRequest | Keterangan | Jenis |
|---|---|---|
| UUID | Pengidentifikasi basis data | str |
| SearchString | permintaan untuk kunci yang dimulai dengan atau cocok dengan pencarian pencarian | str |
| Pagination (opsional) | {startKey: string, batas: long} | PagingRequest |
| QuerySearchResponse | Keterangan | Jenis |
|---|---|---|
| Nilai Key | KeyValue {key: string, value: uint8Array} | Daftar (KeyValue) |
| Pagination (opsional) | {NextKey: String, Total: Long} | PagingResponse |