ProHoster > Blog > administracja > Jak napisać inteligentny kontrakt w Pythonie w sieci Ontology. Część 2: API pamięci masowej
Jak napisać inteligentny kontrakt w Pythonie w sieci Ontology. Część 2: API pamięci masowej
To druga część z serii artykułów edukacyjnych na temat tworzenia inteligentnych kontraktów w Pythonie w sieci blockchain Ontology. W poprzednim artykule się zapoznaliśmy Blockchain i API blokowania Inteligentny kontrakt ontologiczny.
Dzisiaj omówimy, jak korzystać z drugiego modułu — API pamięci masowej. Interfejs API przechowywania ma pięć powiązanych interfejsów API, które umożliwiają dodawanie, usuwanie i zmiany w pamięci trwałej w inteligentnych kontraktach w łańcuchu bloków.
Poniżej znajduje się krótki opis tych pięciu interfejsów API:
Przyjrzyjmy się bliżej, jak korzystać z tych pięciu interfejsów API.
Pobierzkontekst и GetReadOnlyContext uzyskaj kontekst, w którym wykonywany jest bieżący inteligentny kontrakt. Wartość zwracana jest odwrotnością bieżącego skrótu inteligentnego kontraktu. Jak sama nazwa wskazuje, GetReadOnlyContext przyjmuje kontekst tylko do odczytu. W poniższym przykładzie zwracaną wartością jest odwrotność skrótu kontraktu wyświetlanego w prawym górnym rogu.
PUT
Funkcja PUT odpowiada za przechowywanie danych na blockchainie w formie słownika. Jak pokazano, PUT przyjmuje trzy parametry. Pobierzkontekst bierze kontekst aktualnie działającego inteligentnego kontraktu, klucz to wartość klucza potrzebnego do zapisania danych, a wartość to wartość danych, które muszą zostać zapisane. Należy pamiętać, że jeśli wartość klucza znajduje się już w magazynie, funkcja zaktualizuje odpowiadającą jej wartość.
Funkcja Get odpowiada za odczyt danych w bieżącym łańcuchu bloków poprzez wartość klucza. W poniższym przykładzie możesz wpisać wartość klucza w panelu opcji po prawej stronie, aby wykonać funkcję i odczytać dane odpowiadające wartości klucza w blockchainie.
Usuń
Funkcja Usuń odpowiada za usuwanie danych w blockchainie poprzez wartość klucza. W poniższym przykładzie możesz wpisać wartość klucza dla funkcji w panelu opcji po prawej stronie i usunąć dane odpowiadające wartości klucza w blockchainie.
2. Przykład kodu API pamięci masowej
Poniższy kod zawiera szczegółowy przykład użycia pięciu interfejsów API: GetContext, Get, Put, Delete i GetReadOnlyContext. Możesz spróbować uruchomić dane API w SmartX.
from ontology.interop.System.Storage import GetContext, Get, Put, Delete, GetReadOnlyContext
from ontology.interop.System.Runtime import Notify
def Main(operation,args):
if operation == 'get_sc':
return get_sc()
if operation == 'get_read_only_sc':
return get_read_only_sc()
if operation == 'get_data':
key=args[0]
return get_data(key)
if operation == 'save_data':
key=args[0]
value=args[1]
return save_data(key, value)
if operation == 'delete_data':
key=args[0]
return delete_data(key)
return False
def get_sc():
return GetContext()
def get_read_only_sc():
return GetReadOnlyContext()
def get_data(key):
sc=GetContext()
data=Get(sc,key)
return data
def save_data(key, value):
sc=GetContext()
Put(sc,key,value)
def delete_data(key):
sc=GetContext()
Delete(sc,key)
Posłowie
Magazyn Blockchain jest rdzeniem całego systemu blockchain. Interfejs API Ontology Storage jest łatwy w użyciu i przyjazny dla programistów.
Z drugiej strony pamięć masowa jest przedmiotem ataków hakerów, takich jak zagrożenie bezpieczeństwa, o którym wspominaliśmy w jednym z poprzednich artykułów — atak polegający na wstrzykiwaniu pamięciProgramiści są zobowiązani do zwrócenia szczególnej uwagi na bezpieczeństwo podczas pisania kodu związanego z pamięcią masową. Kompletny przewodnik znajdziesz na naszej stronie GitHub tutaj.
W następnym artykule omówimy, jak korzystać Interfejs API środowiska wykonawczego.
Artykuł został przetłumaczony przez redakcję Hashrate&Shares specjalnie dla OntologyRussia. płakać
jesteś programistą? Dołącz do naszej społeczności technicznej pod adresem Discord. Także przyjrzyj się Centrum programistów Ontology, znajdziesz tam więcej narzędzi, dokumentację i wiele więcej.