{"id":52506,"date":"2019-11-10T00:00:00","date_gmt":"2019-11-09T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api"},"modified":"2020-02-18T14:00:15","modified_gmt":"2020-02-18T11:00:15","slug":"kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api","title":{"rendered":"Si t\u00eb shkruani nj\u00eb kontrat\u00eb t\u00eb men\u00e7ur n\u00eb Python n\u00eb rrjetin Ontology. Pjesa 1: Blockchain &amp; Block API","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Si t\u00eb shkruani nj\u00eb kontrat\u00eb inteligjente n\u00eb Python n\u00eb rrjetin Ontology. Pjesa 1: Blockchain &amp; Block API\" src=\"\/wp-content\/uploads\/2019\/11\/4748f7bfd5e6c0b7a17ec511d22313df.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKjo \u00ebsht\u00eb pjesa e par\u00eb e nj\u00eb serie artikujsh trajnues p\u00ebr krijimin e kontratave t\u00eb men\u00e7ura n\u00eb Python n\u00eb rrjetin blockchain Ontology duke p\u00ebrdorur mjetin p\u00ebr zhvillimin e kontratave t\u00eb men\u00e7ura. <noindex><a rel=\"nofollow\" href=\"https:\/\/smartx.ont.io\/\">SmartX<\/a><\/noindex>. <\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull ne do t\u00eb fillojm\u00eb njohjen me API-n\u00eb e kontratave t\u00eb men\u00e7ura Ontology. API-ja e kontratave t\u00eb men\u00e7ura Ontology \u00ebsht\u00eb e ndar\u00eb n\u00eb 7 module: <\/p>\n<ol>\n<li>Blockchain &amp; Block API, <\/li>\n<li>Runtime API, <\/li>\n<li>Storage API, <\/li>\n<li>Native API, <\/li>\n<li>Upgrade API, <\/li>\n<li>Execution Engine API dhe <\/li>\n<li>Static &amp; Dynamic Call API.<\/li>\n<\/ol>\n<p>\nBlockchain &amp; Block API \u00ebsht\u00eb pjesa kryesore e sistemit t\u00eb kontratave t\u00eb men\u00e7ura Ontology. API-ja e Blockchain mb\u00ebshtet operacionet baz\u00eb t\u00eb k\u00ebrkes\u00ebs n\u00eb blockchain, si p\u00ebr shembull marrjen e lart\u00ebsis\u00eb aktuale t\u00eb bllokut, nd\u00ebrsa API-ja e Bllokut mb\u00ebshtet operacionet baz\u00eb t\u00eb k\u00ebrkes\u00ebs p\u00ebr blloqe, si p\u00ebr shembull k\u00ebrkimin e numrit t\u00eb transaksioneve p\u00ebr k\u00ebt\u00eb bllok.<\/p>\n<p><b>Le t\u00eb fillojm\u00eb!<\/b><\/p>\n<p>S\u00eb pari krijoni nj\u00eb kontrat\u00eb t\u00eb re n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/smartx.ont.io\/#\">SmartX<\/a><\/noindex>, pastaj ndiqni udh\u00ebzimet m\u00eb posht\u00eb.<br \/>\n <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>1. Si t\u00eb p\u00ebrdorni Blockchain API<\/h3>\n<p>\nReferencat p\u00ebr funksionet e kontratave t\u00eb men\u00e7ura jan\u00eb identike me referencat e Python. Ju mund t\u00eb th\u00ebrrisni funksionet p\u00ebrkat\u00ebse sipas nevoj\u00ebs. P\u00ebr shembull, udh\u00ebzimi i m\u00ebposht\u00ebm th\u00ebrret GetHeight\u2014 funksionin p\u00ebr marrjen e lart\u00ebsis\u00eb aktuale t\u00eb bllokut, dhe GetHeader\u2014 funksionin p\u00ebr marrjen e titullit t\u00eb bllokut.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetHeight, GetHeader<\/code><\/pre>\n<p><\/p>\n<h4>GetHeight<\/h4>\n<p>\nGetHeight p\u00ebrdoret p\u00ebr t\u00eb marr\u00eb numrin e fundit t\u00eb radh\u00ebs s\u00eb bllokut n\u00eb blockchain, si\u00e7 tregohet n\u00eb shembullin m\u00eb posht\u00eb. N\u00eb shembullin e fundit p\u00ebr leht\u00ebsi ne do ta kalojm\u00eb funksionin Main, por ju mund ta shtoni at\u00eb n\u00ebse \u00ebsht\u00eb e nevojshme.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Runtime import Notify\nfrom ontology.interop.System.Blockchain import GetHeight\ndef Main(operation):\n    if operation == 'demo':\n        return demo()\n    return False\n\ndef demo():\n    height=GetHeight()\n    Notify(height) # print height\n    return height #return height after running the function<\/code><\/pre>\n<p><\/p>\n<h4>GetHeader<\/h4>\n<p>\nGetHeader, p\u00ebrdoret p\u00ebr t\u00eb marr\u00eb titullin e bllokut, parametri \u00ebsht\u00eb numri i radh\u00ebs s\u00eb bllokut n\u00eb blockchain. Shembull:<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Runtime import Notify\nfrom ontology.interop.System.Blockchain import GetHeader\ndef demo():\n    block_height=10\n    header=GetHeader(block_height) \n    Notify(header)\nreturn header<\/code><\/pre>\n<p><\/p>\n<h4>GetTransactionByHash<\/h4>\n<p>\nGetTransactionByHash p\u00ebrdoret p\u00ebr t\u00eb marr\u00eb nj\u00eb transaksion p\u00ebrmes hash-it t\u00eb transaksionit. Hash-i i transaksionit d\u00ebrgohet n\u00eb <i>GetTransactionByHash <\/i>si parametra n\u00eb formatin bytearray. \u00c7el\u00ebsi p\u00ebr k\u00ebt\u00eb funksion \u00ebsht\u00eb konvertimi i hash-it t\u00eb transaksionit nga formati hex n\u00eb hash-in e transaksionit n\u00eb formatin bytearray. Ky \u00ebsht\u00eb nj\u00eb hap i r\u00ebnd\u00ebsish\u00ebm. N\u00eb t\u00eb kund\u00ebrt, do t\u00eb merrni nj\u00eb gabim q\u00eb tregon se nuk ka bllok me at\u00eb hash blloku. Le t\u00eb marrim nj\u00eb hash transaksioni n\u00eb formatin hex si shembull p\u00ebr ta konvertuar at\u00eb n\u00eb formatin bytearray. Shembulli duket si m\u00eb posht\u00eb:<\/p>\n<pre><code class=\"python\">9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1<\/code><\/pre>\n<p>\nS\u00eb pari inversoni hash-in e transaksionit:<\/p>\n<pre><code class=\"python\">c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279<\/code><\/pre>\n<p>\nZhvilluesit mund ta kryejn\u00eb k\u00ebt\u00eb hap duke p\u00ebrdorur mjetin e konvertimit Hex Number (little endian) Number, i cili ofrohet nga SmartX.<\/p>\n<p>Pas k\u00ebsaj, shnd\u00ebrroni rezultatin e marr\u00eb n\u00eb format bytearray:<\/p>\n<pre><code class=\"python\">{0xc1,0x89,0x0c,0x4d,0x73,0x06,0x26,0xdf,0xaa,0x94,0x49,0x41,0x9d,0x66,0x25,0x05,0xea,0xb3,0xbd,0xa2,0xe1,0xf0,0x1f,0x89,0x46,0x3c,0xc1,0xa4,0xa3,0x0a,0x27,0x9f}<\/code><\/pre>\n<p>\nKjo mund t\u00eb b\u00ebhet me ndihm\u00ebn e mjetit t\u00eb konvertimit String Byte Array, i cili ofrohet nga SmartX. Dhe n\u00eb fund, shnd\u00ebrroni bytearray n\u00eb nj\u00eb string si ky:<\/p>\n<pre><code class=\"python\">xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f<\/code><\/pre>\n<p>\nM\u00eb posht\u00eb, jepet nj\u00eb shembull i funksionit GetTransactionByHash, i cili merr transaksionin n\u00ebp\u00ebrmjet hash-it t\u00eb transaksionit:<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetTransactionByHash\ndef demo():\n    # tx_hash=\"9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1\"    \n    tx_hash=bytearray(b\"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f\")\n    tx=GetTransactionByHash(tx_hash)\n    return tx<\/code><\/pre>\n<h4>GetTransactionHeight<\/h4>\n<p>\nGetTransactionHeight p\u00ebrdoret p\u00ebr t\u00eb marr\u00eb lart\u00ebsin\u00eb e transaksionit p\u00ebrmes hash-it t\u00eb transaksionit. Le ta marrim hash-in nga shembulli m\u00eb sip\u00ebr:<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import  GetTransactionHeight\ndef demo():\n    #   tx_hash=\"9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1\"    \n    tx_hash=bytearray(b\"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f\")\n    height=GetTransactionHeight(tx_hash)\n    return height<\/code><\/pre>\n<p><\/p>\n<h4>GetContract<\/h4>\n<p>\nZhvilluesit mund t\u00eb p\u00ebrdorin funksionin GetContract p\u00ebr t\u00eb marr\u00eb kontrat\u00ebn n\u00ebp\u00ebrmjet hash-it t\u00eb kontrat\u00ebs. Procesi i konvertimit t\u00eb hash-it t\u00eb kontrat\u00ebs \u00ebsht\u00eb i ngjash\u00ebm me procesin e konvertimit t\u00eb hash-it t\u00eb transaksionit, i p\u00ebrmendur m\u00eb sip\u00ebr.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetContract\ndef demo():\n    # contract_hash=\"d81a75a5ff9b95effa91239ff0bb3232219698fa\"    \n    contract_hash=bytearray(b\"xfax98x96x21x32x32xbbxf0x9fx23x91xfaxefx95x9bxffxa5x75x1axd8\")\n    contract=GetContract(contract_hash)\n    return contract<\/code><\/pre>\n<p><\/p>\n<h4>GetBlock<\/h4>\n<p>\nGetBlock p\u00ebrdoret p\u00ebr t\u00eb marr\u00eb nj\u00eb bllok. Ka dy m\u00ebnyra p\u00ebr t\u00eb marr\u00eb nj\u00eb bllok t\u00eb caktuar.<\/p>\n<p><b>1. Merrni bllokun sipas lart\u00ebsis\u00eb s\u00eb bllokut:<\/b><\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetBlock\ndef demo():\n    block=GetBlock(1408)\n    return block<\/code><\/pre>\n<p>\n<b>2. Merrni bllokun sipas hash-it t\u00eb bllokut:<\/b><\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetBlock\ndef demo():    \n    block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')\n    block=GetBlock(block_hash)<\/code><\/pre>\n<p><\/p>\n<h3>2. Si t\u00eb p\u00ebrdorim Block API<\/h3>\n<p>\nKa tre funksione t\u00eb disponueshme n\u00eb Block API: <i>GetTransactions<\/i>, <i>GetTransactionCount<\/i>, dhe <i>GetTransactionByIndex<\/i>. Do t'i shqyrtojm\u00eb ato nj\u00eb nga nj\u00eb.<\/p>\n<h4>GetTransactionCount<\/h4>\n<p>\nGetTransactionCount p\u00ebrdoret p\u00ebr t\u00eb marr\u00eb numrin e transaksioneve p\u00ebr k\u00ebt\u00eb bllok.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetBlock\nfrom ontology.interop.System.Block import GetTransactionCount\ndef demo():\n    block=GetBlock(1408)\n    count=GetTransactionCount(block)\n    return count<\/code><\/pre>\n<p><\/p>\n<h3>GetTransactions<\/h3>\n<p>\nZhvilluesit mund t\u00eb p\u00ebrdorin funksionin GetTransactions p\u00ebr t\u00eb marr\u00eb t\u00eb gjitha transaksionet n\u00eb k\u00ebt\u00eb bllok.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetBlock\nfrom ontology.interop.System.Block import GetTransactions \ndef demo():\n    block=GetBlock(1408)\n    txs=GetTransactions(block)\n    return txs<\/code><\/pre>\n<p><\/p>\n<h4>GetTransactionByIndex<\/h4>\n<p>\nGetTransactionByIndex p\u00ebrdoret p\u00ebr t\u00eb marr\u00eb nj\u00eb transaksion specifik n\u00eb k\u00ebt\u00eb bllok.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetBlock\nfrom ontology.interop.System.Block import GetTransactionByIndex\ndef demo():\n    block=GetBlock(1408)\n    tx=GetTransactionByIndex(block,0) # indeksi fillon nga 0.\n    return tx<\/code><\/pre>\n<p>\nUdh\u00ebzuesi i plot\u00eb mund t\u00eb gjendet n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/punicasuite\/tutorials\/blob\/master\/smart-contracts-docs-cn\/course04_use_blockchain_api_in_smart_contract.md\">GitHub<\/a><\/noindex>.<\/p>\n<h3>Pasth\u00ebnie<\/h3>\n<p>\nBlockchain &amp; Block API \u00ebsht\u00eb nj\u00eb pjes\u00eb e domosdoshme e kontratave inteligjente, pasi mund t'i p\u00ebrdorni p\u00ebr t\u00eb k\u00ebrkuar t\u00eb dh\u00ebna t\u00eb blockchain-it dhe t\u00eb dh\u00ebna blloku n\u00eb kontratat inteligjente. N\u00eb artikujt e ardhsh\u00ebm do t\u00eb diskutojm\u00eb se si t\u00eb p\u00ebrdorim API-t\u00eb e tjera dhe do t\u00eb zbulojm\u00eb nd\u00ebrveprimin e tyre me blockchain-in Ontology.<\/p>\n<blockquote><p>The article was translated by the Hashrate &amp; Shares editorial team specifically for OntologyRussia. <noindex><a rel=\"nofollow\" href=\"https:\/\/hashrate-and-shares.ru\/kak-razrabotat-smart-kontrakt-s-pomoshchyu-python-v-seti-ontology-chast-pervaya\">klik<\/a><\/noindex> <\/p><\/blockquote>\n<p> Are you a developer? Join our technical community on <noindex><a rel=\"nofollow\" href=\"https:\/\/discord.gg\/4TQujHj\">Discord<\/a><\/noindex>. Additionally, check out the <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.ont.io\/\">Developer Center<\/a><\/noindex> n\u00eb faqen ton\u00eb, aty mund t\u00eb gjeni mjetet e zhvilluesit, dokumentacionin dhe shum\u00eb m\u00eb tep\u00ebr.<\/p>\n<h4>Ontology<\/h4>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ont.io\/\">Ontology website<\/a><\/noindex> <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ontio\/\">GitHub<\/a><\/noindex> \/ <noindex><a rel=\"nofollow\" href=\"https:\/\/discord.gg\/pQRHtbD\">Discord<\/a><\/noindex><\/li>\n<li>Telegram <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/OntologyNetwork\">Anglisht<\/a><\/noindex> \/ <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/OntologyAnnouncementsRu\">Rusisht<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/OntologyNetwork\">Twitter <\/a><\/noindex> \/ <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/OntologyNetwork\/\">Reddit <\/a><\/noindex><\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/474966\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042d\u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u0441\u0435\u0440\u0438\u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u043d\u0430 Python \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0441\u0435\u0442\u0438 Ontology \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 SmartX. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0430\u0447\u043d\u0451\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 API \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 Ontology. API \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 Ontology \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d \u043d\u0430 7 \u043c\u043e\u0434\u0443\u043b\u0435\u0439: Blockchain &amp; Block API, Runtime API, Storage API, Native API, Upgrade API, Execution Engine API \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":52507,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52506","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0430 Python \u0432 \u0441\u0435\u0442\u0438 Ontology. \u0427\u0430\u0441\u0442\u044c 1: Blockchain &amp; Block API | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-09T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Si t\u00eb shkruani nj\u00eb kontrat\u00eb inteligjente n\u00eb Python n\u00eb rrjetin Ontology. Pjesa 1: Blockchain &amp; Block API | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0430 Python \u0432 \u0441\u0435\u0442\u0438 Ontology. \u0427\u0430\u0441\u0442\u044c 1: Blockchain &amp; Block API | ProHoster","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-09T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52506","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 03:50:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:42:42","updated":"2026-01-24 03:50:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/52506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=52506"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/52506\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/52507"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=52506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=52506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=52506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}