ProHoster > blog > Gweinyddiaeth > Sut i ysgrifennu contract smart yn Python ar y rhwydwaith Ontoleg. Rhan 1: Blockchain & Block API
Sut i ysgrifennu contract smart yn Python ar y rhwydwaith Ontoleg. Rhan 1: Blockchain & Block API
Dyma'r rhan gyntaf mewn cyfres o sesiynau tiwtorial ar greu contractau smart Python ar rwydwaith blockchain Ontology gan ddefnyddio'r offeryn datblygu contract smart. SmartX.
Yn yr erthygl hon, byddwn yn dechrau ein hadnabod ag API contract smart Ontology. Rhennir API contract smart Ontology yn 7 modiwl:
API Blockchain & Block,
API amser rhedeg,
API storio,
API brodorol,
Uwchraddio API,
API Peiriant Cyflawni a
API Galwadau Statig a Dynamig.
Blockchain & Block API yw prif ran system contract smart Ontology. Mae'r API Blockchain yn cefnogi gweithrediadau ymholiad blockchain sylfaenol, megis cael yr uchder bloc cyfredol, tra bod yr API Bloc yn cefnogi gweithrediadau ymholiad bloc sylfaenol, megis cwestiynu nifer y trafodion ar gyfer bloc penodol.
Gadewch i ni ddechrau!
Yn gyntaf, creu contract newydd yn SmartXac yna dilynwch y cyfarwyddiadau isod.
1. Sut i ddefnyddio API Blockchain
Mae dolenni i swyddogaethau contract clyfar yn union yr un fath Γ’ chysylltiadau Python. Gallwch chi nodi'r swyddogaethau cyfatebol yn Γ΄l yr angen. Er enghraifft, mae'r datganiad canlynol yn cyflwyno swyddogaeth GetHeight i gael uchder presennol y bloc, a swyddogaeth GetHeader i gael pennawd y bloc.
from ontology.interop.System.Blockchain import GetHeight, GetHeader
GetHeight
Defnyddir GetHeight i gael y rhif dilyniant bloc olaf yn y blockchain, fel y dangosir yn yr enghraifft isod. Yn yr enghraifft olaf, byddwn yn hepgor y Prif swyddogaeth er hwylustod, ond gallwch ei ychwanegu os oes angen.
from ontology.interop.System.Runtime import Notify
from ontology.interop.System.Blockchain import GetHeight
def Main(operation):
if operation == 'demo':
return demo()
return False
def demo():
height=GetHeight()
Notify(height) # print height
return height #return height after running the function
GetHeader
Defnyddir GetHeader i gael y pennawd bloc, y paramedr yw rhif cyfresol y bloc yn y blockchain. Enghraifft:
from ontology.interop.System.Runtime import Notify
from ontology.interop.System.Blockchain import GetHeader
def demo():
block_height=10
header=GetHeader(block_height)
Notify(header)
return header
GetTransactionByHash
Defnyddir GetTransactionByHash i gael trafodiad trwy stwnsh trafodiad. Mae'r hash trafodiad yn cael ei anfon at GetTransactionByHash fel paramedrau mewn fformat bytearray. Yr allwedd i'r swyddogaeth hon yw trosi hash y trafodiad mewn fformat hecs i'r stwnsh trafodiad mewn fformat bytearray. Mae hwn yn gam pwysig. Fel arall, byddech chi'n cael gwall sy'n nodi nad oes bloc gyda'r hash bloc hwnnw. Gadewch i ni gymryd yr hash trafodiad mewn fformat hecs fel enghraifft i'w drosi i fformat bytearray. Mae enghraifft yn edrych fel hyn:
Gall datblygwyr ddefnyddio swyddogaeth GetContract i gael contract drwy stwnsh y contract. Mae'r broses trosi hash contract yr un fath Γ’'r broses trosi hash trafodiad a grybwyllir uchod.
Defnyddir GetBlock i gael bloc. Mae dwy ffordd i gael bloc penodol.
1. Cael bloc yn Γ΄l uchder bloc:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block=GetBlock(1408)
return block
2. Cael bloc gan hash bloc:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
block=GetBlock(block_hash)
2. Sut i ddefnyddio API Bloc
Mae tair swyddogaeth ar gael yn yr API Bloc: GetTrafodion, GetTransactionCountAc GetTransactionByIndex. Byddwn yn eu torri i lawr fesul un.
GetTransactionCount
Defnyddir GetTransactionCount i gael nifer y trafodion ar gyfer bloc penodol.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionCount
def demo():
block=GetBlock(1408)
count=GetTransactionCount(block)
return count
GetTrafodion
Gall datblygwyr ddefnyddio'r swyddogaeth GetTransactions i gael yr holl drafodion mewn bloc penodol.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactions
def demo():
block=GetBlock(1408)
txs=GetTransactions(block)
return txs
GetTransactionByIndex
Defnyddir GetTransactionByIndex i gael trafodiad penodol mewn bloc penodol.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionByIndex
def demo():
block=GetBlock(1408)
tx=GetTransactionByIndex(block,0) # index starts from 0.
return tx
Mae'r API Blockchain & Block yn rhan anhepgor o gontractau smart gan y gallwch eu defnyddio i ofyn am ddata blockchain a data bloc mewn contractau smart. Yn yr erthyglau canlynol, byddwn yn trafod sut i ddefnyddio gweddill yr APIs a darganfod sut maen nhw'n rhyngweithio Γ’'r blockchain Ontology.
Cyfieithwyd yr erthygl gan olygyddion Hashrate&Shares yn arbennig ar gyfer OntologyRussia. crio
Ydych chi'n ddatblygwr? Ymunwch Γ’'n cymuned dechnoleg yn Discord. Hefyd, cymerwch olwg ar Canolfan Datblygwyr ar ein gwefan, lle gallwch ddod o hyd i offer datblygwr, dogfennaeth, a mwy.