Cách viết hợp đồng thông minh bằng Python trên mạng Ontology. Phần 2: API lưu trữ

Cách viết hợp đồng thông minh bằng Python trên mạng Ontology. Phần 2: API lưu trữ

Đây là phần thứ hai trong loạt bài viết giáo dục về cách tạo hợp đồng thông minh bằng Python trên mạng chuỗi khối Ontology. Ở bài trước chúng ta đã làm quen với Chuỗi khối & API khối Hợp đồng thông minh Ontology.

Hôm nay chúng ta sẽ thảo luận về cách sử dụng mô-đun thứ hai— API lưu trữ. API lưu trữ có năm API liên quan cho phép bổ sung, xóa và thay đổi lưu trữ liên tục trong các hợp đồng thông minh trên blockchain.

Dưới đây là mô tả ngắn gọn về năm API này:

Cách viết hợp đồng thông minh bằng Python trên mạng Ontology. Phần 2: API lưu trữ

Chúng ta hãy xem xét kỹ hơn cách sử dụng năm API này.

0. Hãy tạo một hợp đồng mới SmartX

1. Cách sử dụng API lưu trữ

GetContext & GetReadOnlyContext

GetContext и GetReadOnlyContext có được bối cảnh trong đó hợp đồng thông minh hiện tại được thực thi. Giá trị trả về là nghịch đảo của hàm băm hợp đồng thông minh hiện tại. Đúng như tên gọi, GetReadOnlyContext lấy bối cảnh chỉ đọc. Trong ví dụ bên dưới, giá trị trả về là nghịch đảo của hàm băm hợp đồng được hiển thị ở góc trên cùng bên phải.

Cách viết hợp đồng thông minh bằng Python trên mạng Ontology. Phần 2: API lưu trữ

Đặt

Chức năng Đặt chịu trách nhiệm lưu trữ dữ liệu trên blockchain dưới dạng từ điển. Như được hiển thị, Đặt có ba tham số. GetContext lấy bối cảnh của hợp đồng thông minh hiện đang chạy, khóa là giá trị của khóa cần để lưu dữ liệu và giá trị là giá trị của dữ liệu cần được lưu. Lưu ý rằng nếu giá trị của khóa đã có trong cửa hàng thì hàm sẽ cập nhật giá trị tương ứng của nó.

Cách viết hợp đồng thông minh bằng Python trên mạng Ontology. Phần 2: API lưu trữhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Nhận

Chức năng Nhận chịu trách nhiệm đọc dữ liệu trong blockchain hiện tại thông qua giá trị khóa. Trong ví dụ bên dưới, bạn có thể điền giá trị khóa vào bảng tùy chọn ở bên phải để thực thi chức năng và đọc dữ liệu tương ứng với giá trị khóa trong blockchain.

Cách viết hợp đồng thông minh bằng Python trên mạng Ontology. Phần 2: API lưu trữ

Xóa bỏ

Chức năng Xóa bỏ chịu trách nhiệm xóa dữ liệu trong blockchain thông qua giá trị khóa. Trong ví dụ bên dưới, bạn có thể điền giá trị khóa cho hàm vào bảng tùy chọn ở bên phải và xóa dữ liệu tương ứng với giá trị khóa trong blockchain.

Cách viết hợp đồng thông minh bằng Python trên mạng Ontology. Phần 2: API lưu trữ

2. Ví dụ về mã API lưu trữ

Mã bên dưới đưa ra ví dụ chi tiết về việc sử dụng năm API: GetContext, Get, Put, Delete và GetReadOnlyContext. Bạn có thể thử chạy dữ liệu API trong 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)

bạt

Lưu trữ chuỗi khối là cốt lõi của toàn bộ hệ thống chuỗi khối. API lưu trữ Ontology rất dễ sử dụng và thân thiện với nhà phát triển.

Mặt khác, bộ nhớ là trọng tâm của các cuộc tấn công của hacker, chẳng hạn như mối đe dọa bảo mật mà chúng tôi đã đề cập ở một trong những bài viết trước— tấn công tiêm lưu trữCác nhà phát triển được yêu cầu đặc biệt chú ý đến vấn đề bảo mật khi viết mã liên quan đến lưu trữ. Bạn có thể tìm thấy hướng dẫn đầy đủ trên GitHub đây.

Trong bài viết tiếp theo chúng ta sẽ thảo luận về cách sử dụng API thời gian chạy.

Bài báo được dịch bởi các biên tập viên của Hashrate&Shares, đặc biệt là cho OntologyRussia. khóc

Bạn có phải là nhà phát triển? Tham gia cộng đồng công nghệ của chúng tôi tại Discord . Ngoài ra, hãy xem Trung tâm nhà phát triển Ontology, bạn có thể tìm thấy nhiều công cụ, tài liệu hơn và nhiều thứ khác ở đó.

Mở nhiệm vụ cho nhà phát triển. Hoàn thành nhiệm vụ và nhận phần thưởng.

Ứng dụng cho chương trình tài năng Ontology dành cho sinh viên

Bản thể học

trang web bản thể học - GitHub - Discord - Telegram tiếng Nga - Twitter - Reddit

Nguồn: www.habr.com

Thêm một lời nhận xét