Bluzelle-Py เป็นไลบรารี Python ที่สามารถใช้ในการเข้าถึงบริการฐานข้อมูล Bluzelle
ไลบรารี Python ยังไม่ได้เผยแพร่บนตัวจัดการแพ็คเกจใด ๆ เพื่อติดตั้งและใช้ตามคำแนะนำด้านล่าง:
$ # build the library
$ pip install " poetry==1.1.7 "
$ poetry config virtualenvs.create false
$ poetry install --no-interaction --no-ansi
$ pip install .มีการกระทำของ GitHub ที่ปรับใช้รีลีสใหม่ (ใช้แท็กใหม่) ไปยังแพ็คเกจ PYPI (จำเป็นต้องได้รับ PYPI_Token จากเว็บไซต์ https://pypi.org และเพิ่มลงในความลับที่เก็บของ GitHub)
ในการเชื่อมต่ออินสแตนซ์ของคุณกับ Bluzelle Testnet คุณสามารถ:
MINT บัญชีโดยไปที่ https://client.sentry.testnet.private.bluzelle.com:1317/mint ซึ่งจะให้การจำและที่อยู่ อาจใช้เวลาสักครู่
ตรวจสอบยอดคงเหลือของคุณที่ https://client.sentry.testnet.private.bluzelle.com:1317/bank/balances/ {address} หากยอดคงเหลือในบัญชีของคุณเป็น 0 ให้ทำบัญชีอื่นจนกว่ายอดคงเหลือ UBNT จะแสดง
กำหนดค่าอินสแตนซ์ SDK ของคุณด้วยตัวเลือกต่อไปนี้:
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 ,
)หมายเหตุ: หาก GasPrice และ/หรือ MaxGAs ที่ระบุต่ำเกินไปการทำธุรกรรมใด ๆ อาจถูกปฏิเสธโดยผู้ตรวจสอบ (เช่นการทำธุรกรรมต้องใช้ก๊าซมากกว่า MaxGAS ที่ระบุหรือ GasPrice ต่ำเกินไปที่จะครอบคลุมค่าธรรมเนียมการตรวจสอบความถูกต้อง) ข้อเสนอแนะเริ่มต้นสำหรับฟิลด์เหล่านี้ข้างต้นจะเพียงพอ
หมายเหตุ: หากคุณต้องการเรียกใช้ตัวอย่างในโฟลเดอร์ Library ให้วางรหัสไว้ในไฟล์ในไดเรกทอรีรูทไดเรกทอรี
หมายเหตุ: สำหรับทั้งสองเวอร์ชันแรกสร้างอินสแตนซ์ SDK จากนั้นใช้ Asyncio Loop เพื่อเรียกใช้โปรแกรม สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับตัวอย่างนี้ดูตัวอย่าง/ตัวอย่าง
หลังจากกำหนดค่า SDK ของคุณคุณจะสามารถเข้าถึงโมดูลต่างๆและวิธีการที่สอดคล้องกัน
sdk.[module].[q or tx or field].[Method](**kwargs)
แต่ละวิธีใช้พารามิเตอร์เดียวเป็นวัตถุ (เช่นคำขอ) และส่งคืนวัตถุ (เช่นการตอบกลับ) หากต้องการดูประเภทคำขอและการตอบสนองโปรดดู Curium/Proto/[โมดูล] สำหรับการสืบค้นและธุรกรรม
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 )*หมายเหตุ: การตอบสนองคือ uint8array ที่แสดงถึงค่าที่เข้ารหัสไบต์ที่ได้รับการสอบถาม หากต้องการรับตัวแทนสตริงของค่าให้ใช้ textDecoder ใหม่ (). 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 ยังสามารถส่งธุรกรรมไปยังห่วงโซ่ แต่ละโมดูลมีวิธี TX เพื่อส่งข้อความการทำธุรกรรมต่างๆ
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 ,
)*หมายเหตุ: SDK กำลังลงชื่อและส่งธุรกรรมดังนั้นที่อยู่ผู้ลงนามจะต้องตรงกับผู้สร้างธุรกรรม มิฉะนั้นจะมีข้อผิดพลาดเกิดขึ้น
** หมายเหตุ: ดู bluzelle.codec.crud.lease_pb2 เพื่อดูอินเตอร์เฟสการเช่า
ห่อข้อความหลายข้อความในการทำธุรกรรมเดียว
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" ,
)หมายเหตุ: หากข้อความใดข้อความหนึ่งล้มเหลวในฟังก์ชั่นที่ส่งผ่านไปยังด้วยการแลกเปลี่ยนข้อความทั้งหมดข้อความทั้งหมดจะล้มเหลวและไม่ได้มุ่งมั่นที่บล็อก
สร้างคีย์-ค่าในฐานข้อมูล
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 ,
)returns: msgcreateResponse (วัตถุเปล่า)
| msgcreateRequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| ผู้สร้าง | ที่อยู่ผู้ลงนาม | Str |
| uuid | ตัวระบุฐานข้อมูล | Str |
| สำคัญ | Str | |
| ค่า | ไบต์ | |
| ข้อมูลเมตา | ไบต์ | |
| เช่า | คีย์-ค่าช่วงชีวิต | เช่า * |
*สัญญาเช่า (วินาที = หมายเลข, นาที = จำนวน, ชั่วโมง = จำนวน, วัน = จำนวน, ปี = จำนวน)
ลบค่าคีย์ในฐานข้อมูล
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 ,
)returns: msgdeleteresponse (วัตถุเปล่า)
| msgdeleteRequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| ผู้สร้าง | ที่อยู่ผู้ลงนาม | Str |
| uuid | ตัวระบุฐานข้อมูล | Str |
| สำคัญ | กุญแจสำคัญในการลบ | Str |
ต่ออายุสัญญาเช่าค่าคีย์ทั้งหมดใน UUID ที่ระบุ
response = await sdk . db . tx . DeleteAll ( creator = sample_creator , uuid = "myUuid" )
print ( response )returns: Promise => MsgDeleteAllResponse (วัตถุว่าง)
| msgdeleteAllRequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| ผู้สร้าง | ที่อยู่ผู้ลงนาม | Str |
| uuid | ตัวระบุฐานข้อมูล | Str |
อัปเดตชุดค่าคีย์ใน UUID ที่ระบุ
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 ),
),
],
)returns: msgmultiupdateresponse (วัตถุเปล่า)
| msgmultiupdaterequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| ผู้สร้าง | ที่อยู่ผู้ลงนาม | สาย |
| uuid | ตัวระบุฐานข้อมูล | สาย |
| KeyValues | keyvalulease (คีย์: str, ค่า: ไบต์, สัญญาเช่า: สัญญาเช่า) | keyvalulease [] |
ต่ออายุสัญญาเช่าคีย์-ค่าในฐานข้อมูล
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 ,
)returns: msgrenameresponse (วัตถุเปล่า)
| msgrenamerequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| ผู้สร้าง | ที่อยู่ผู้ลงนาม | Str |
| uuid | ตัวระบุฐานข้อมูล | Str |
| สำคัญ | คีย์ที่มีอยู่ | Str |
| ใหม่ | คีย์ใหม่ที่ใช้ในการเปลี่ยนชื่อ | Str |
ต่ออายุสัญญาเช่าคีย์-ค่าในฐานข้อมูล
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 ,
)returns: msgrenewleaseresponse (วัตถุเปล่า)
| msgrenewleaseRequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| ผู้สร้าง | ที่อยู่ผู้ลงนาม | Str |
| uuid | ตัวระบุฐานข้อมูล | Str |
| สำคัญ | Str | |
| เช่า | ช่วงชีวิตใหม่สำหรับค่าคีย์ | เช่า * |
*สัญญาเช่า (วินาที = หมายเลข, นาที = จำนวน, ชั่วโมง = จำนวน, วัน = จำนวน, ปี = จำนวน)
ต่ออายุสัญญาเช่าค่าคีย์ทั้งหมดใน UUID ที่ระบุ
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 ,
)returns: msgrenewleaseSallResponse (วัตถุว่าง)
| msgrenewleaseSallrequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| ผู้สร้าง | ที่อยู่ผู้ลงนาม | Str |
| uuid | ตัวระบุฐานข้อมูล | Str |
| เช่า | ช่วงชีวิตใหม่สำหรับค่าคีย์ทั้งหมด | เช่า * |
*สัญญาเช่า (วินาที = หมายเลข, นาที = จำนวน, ชั่วโมง = จำนวน, วัน = จำนวน, ปี = จำนวน)
อัปเดตค่าคีย์ในฐานข้อมูล
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 (วัตถุว่าง)
| msgupdaterequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| ผู้สร้าง | ที่อยู่ผู้ลงนาม | Str |
| uuid | ตัวระบุฐานข้อมูล | Str |
| สำคัญ | Str | |
| ค่า | ค่าใหม่ในการอัปเดตเป็น | ไบต์ |
| ข้อมูลเมตา | ไบต์ | |
| เช่า | คีย์-ค่าช่วงชีวิต | เช่า |
*สัญญาเช่า (วินาที = หมายเลข, นาที = จำนวน, ชั่วโมง = จำนวน, วัน = จำนวน, ปี = จำนวน)
เพิ่มค่าคีย์ในฐานข้อมูล: สร้างคีย์-ค่าหากคีย์ไม่มีอยู่ให้อัปเดตคีย์-ค่าหากมีคีย์อยู่
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 (วัตถุเปล่า)
| MsgupserTrequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| ผู้สร้าง | ที่อยู่ผู้ลงนาม | Str |
| uuid | ตัวระบุฐานข้อมูล | Str |
| สำคัญ | Str | |
| ค่า | ไบต์ | |
| ข้อมูลเมตา | ไบต์ | |
| เช่า | คีย์-ค่าช่วงชีวิต | เช่า * |
*สัญญาเช่า (วินาที = หมายเลข, นาที = จำนวน, ชั่วโมง = จำนวน, วัน = จำนวน, ปี = จำนวน)
สอบถามจำนวนคีย์-ค่าทั้งหมดใน UUID ที่ระบุ
await sdk . db . q . Count (
MsgCount ( uuid = "myUuid" ),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)returns: queryCountResponse
| QueryCountrequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| uuid | ตัวระบุฐานข้อมูล | Str |
| QueryCountResponse | คำอธิบาย | พิมพ์ |
|---|---|---|
| นับ | จำนวนค่าคีย์ใน UUID | int |
รับเวลาเช่าที่เหลือของค่าคีย์
response = await sdk . db . q . GetLease (
QueryGetLeaseRequest (
uuid = uuid ,
key = "myKey" ,
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)ผลตอบแทน: querygetleaseresponse
| querygetleaseRequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| uuid | ตัวระบุฐานข้อมูล | Str |
| สำคัญ | Str |
| querygetleaseresponse | คำอธิบาย | พิมพ์ |
|---|---|---|
| ไม่กี่วินาที | เวลาเช่าที่เหลืออยู่ของคีย์-ค่า | ตัวเลข |
รับเวลาเช่าที่เหลือของค่าคีย์
response = await sdk . db . q . GetNShortestLeases (
QueryGetNShortestLeasesRequest (
uuid = uuid ,
num = 5 ,
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)ผลตอบแทน: querygetNshortestleasesResponse
| querygetnshortestleaseRequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| uuid | ตัวระบุฐานข้อมูล | Str |
| จำนวน | จำนวน Keyleases ที่จะส่งคืน | int |
| querygetNshortestleasesResponse | คำอธิบาย | พิมพ์ |
|---|---|---|
| กุญแจสำคัญ | keyLease (key = string, วินาที = number) | รายการ (keylease) |
ตรวจสอบว่ามีคีย์อยู่ใน UUID ที่ระบุหรือไม่
await sdk . db . q . Has (
MsgHas (( uuid = "myUuid" ), ( key = "myKey" )),
( timeout = 3000 ),
( metadata = None ),
( credentials = None ),
( wait_for_ready = True ),
( compression = False )
);ผลตอบแทน: queryhasresponse
| queryhasrequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| uuid | ตัวระบุฐานข้อมูล | Str |
| สำคัญ | Str |
| queryhasresponse | คำอธิบาย | พิมพ์ |
|---|---|---|
| มี | จริงถ้าคีย์มีอยู่ใน UUID; เท็จเป็นอย่างอื่น | บูล |
อ่านชุดคีย์ที่สมบูรณ์ใน UUID ที่ระบุ ### 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 ,
)ผลตอบแทน: querykeysresponse
| QuerykeySrequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| uuid | ตัวระบุฐานข้อมูล | Str |
| การปนเปื้อน (ไม่บังคับ) | PagingRequest (StartKey = String, Limit = Long) | PagingRequest |
| QuerykeySresponse | คำอธิบาย | พิมพ์ |
|---|---|---|
| กุญแจ | รายการ (STR) | |
| การปนเปื้อน (ไม่บังคับ) | PagingResponse {NextKey: String, Total: Long} | PagingResponse |
อ่านชุดค่าคีย์ที่สมบูรณ์ใน UUID ที่ระบุ
response = await sdk . db . q . KeyValues (
QueryKeyValuesRequest ( uuid = uuid ),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)ผลตอบแทน: querykeyValuesResponse
| QueryKeyValuesRequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| uuid | ตัวระบุฐานข้อมูล | Str |
| การปนเปื้อน (ไม่บังคับ) | PagingRequest {StartKey: String, Limit: Long} | PagingRequest |
| QueryKeyValuesResponse | คำอธิบาย | พิมพ์ |
|---|---|---|
| KeyValues | KeyValue {key: String, value: uint8Array} | รายการ (KeyValue) |
| การปนเปื้อน (ไม่บังคับ) | PagingResponse {NextKey: String, Total: Long} | PagingResponse |
อ่านชุดคีย์ที่สมบูรณ์ตามที่อยู่ใน UUID ที่ระบุ ### hhio
await sdk . db . q . Keys (
MsgKeys (( uuid = "myUuid" ), ( address = sample_creator )),
( timeout = 3000 ),
( metadata = None ),
( credentials = None ),
( wait_for_ready = True ),
( compression = False )
);ผลตอบแทน: QueryMykeySresponse
| QueryMyKeySrequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| uuid | ตัวระบุฐานข้อมูล | Str |
| ที่อยู่ | ที่อยู่ Bluzelle | Str |
| การปนเปื้อน (ไม่บังคับ) | PagingRequest {StartKey: String, Limit: Long} | PagingRequest |
| QueryMykeySresponse | คำอธิบาย | พิมพ์ |
|---|---|---|
| กุญแจ | รายการ (สตริง) | |
| การปนเปื้อน (ไม่บังคับ) | PagingResponse {NextKey: String, Total: Long} | PagingResponse |
อ่านค่าจากฐานข้อมูล
response = await sdk . db . q . Read (
QueryReadRequest (
uuid = uuid ,
key = "myKey" ,
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)returns: queryReadResponse
| QueryReadRequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| uuid | ตัวระบุฐานข้อมูล | Str |
| สำคัญ | Str |
| queryReadResponse | คำอธิบาย | พิมพ์ |
|---|---|---|
| ค่า | ไบต์ |
ค้นหาโดยคีย์ใน UUID ที่ระบุ
response = await sdk . db . q . Search (
QuerySearchRequest (
uuid = uuid ,
searchString = "s" ,
),
timeout = 3000 ,
metadata = None ,
credentials = None ,
wait_for_ready = True ,
compression = False ,
)ผลตอบแทน: QuerySearchResponse
| QuerySearchRequest | คำอธิบาย | พิมพ์ |
|---|---|---|
| uuid | ตัวระบุฐานข้อมูล | Str |
| SearchString | แบบสอบถามสำหรับคีย์ที่เริ่มต้นหรือจับคู่ SearchString | Str |
| การปนเปื้อน (ไม่บังคับ) | {StartKey: String, Limit: Long} | PagingRequest |
| QuerySearchResponse | คำอธิบาย | พิมพ์ |
|---|---|---|
| KeyValues | KeyValue {key: String, value: uint8Array} | รายการ (KeyValue) |
| การปนเปื้อน (ไม่บังคับ) | {NextKey: String, Total: Long} | PagingResponse |