Thiết lập Tezos Smart Rollup trong 5 bước
bởi Thomas Letan & Chris Pinnock
Rollup là một phương tiện xử lý các giao dịch từ chuỗi khối chính, “cuộn chúng lại” và đưa chúng trở lại sau. Bản nâng cấp mới của Tezos ở Mumbai sẽ mang tính năng tổng hợp thông minh lên mạng chính . Tổng số thông minh là một tổng số được quản lý bởi chương trình WebAssugging (Wasm) và có thể được sử dụng để triển khai nhiều trường hợp sử dụng khác nhau.
Các ứng dụng bao gồm:
• Nâng cao hiệu suất và tăng thông lượng bằng cách cho phép các tổ chức quản lý các giao dịch của họ trong một tổng số;
• Chạy mã ngoài chuỗi để giảm tải cho chuỗi khối chính;
• Cung cấp môi trường máy ảo tương thích với các ngôn ngữ hợp đồng thông minh chuỗi khối khác (chẳng hạn như của Ethereum ), do đó cung cấp đường dẫn di chuyển cho các nhà phát triển từ các chuỗi khối khác.
Bài viết ngắn này sẽ chỉ cho bạn cách bắt đầu với một tổng số trên mạng thử nghiệm Mumbai. Giả sử rằng giao thức Mumbai được chấp nhận, quy trình ở đây sẽ hoạt động trên mạng chính vào tháng 4 năm 2023, nhưng hãy cẩn thận — mọi ví Tezos mà bạn quản lý trên mạng chính phải được bảo vệ tốt. Ngoài ra, nút tổng số thông minh được phát hành như một phần của Octez v16 được cung cấp cho mục đích thử nghiệm. Nút cuộn thông minh sẵn sàng sản xuất đầu tiên, phù hợp cho việc triển khai mạng chính , dự kiến sẽ được phát hành như một phần của Octez v17.
Chúng tôi không đi sâu vào chi tiết kỹ thuật. Để đọc thêm, vui lòng tham khảo Tài liệu dành cho nhà phát triển bản tổng hợp thông minh . Chúng tôi giả định các điều kiện tiên quyết sau:
• Máy Debian hoặc Ubuntu Linux đang hoạt động chạy Tezos Node với Octez v16.0rc3 trở lên.
• Để chạy daemon tổng số thông minh, bạn sẽ cần đặt trước ít nhất 10.000ꜩ số tiền này sẽ bị đóng băng dưới dạng tiền đặt cọc. Ngoài ra, một số tiền nên được dành riêng để trả phí cho các hoạt động của Lớp 1.
Hãy bắt đầu bằng cách thiết lập những thứ này bao gồm thiết lập ví trên mumbainet .
1 — Thiết lập nút
Bạn có thể thiết lập phần mềm Octez bằng cách xây dựng từ nguồn . Ngoài ra, bạn có thể sử dụng một bài viết của một trong các tác giả để thiết lập một nút. Đối với các bản tổng hợp thông minh, bạn sẽ cần sử dụng các gói v16.0rc3 tại trang web tải xuống thay vì v15.1.
Bài viết gợi ý sử dụng tezos dành riêng cho người dùng để chạy phần mềm và chúng tôi cũng giả định như vậy trong bài viết này. Đảm bảo rằng bạn thiết lập nút cho mumbainet và sử dụng ảnh chụp nhanh mumbainet . Ví dụ: khi bạn định cấu hình nút, hãy sử dụng:
sudo su - tezos
octez-node config init --data-dir /var/tezos/node \
--network mumbainet \
--history-mode=rolling \
--net-addr="[::]:9732" \
--rpc-addr="127.0.0.1:8732"
Sau đó, khi root cài đặt daemon Smart Rollup, cài đặt bất kỳ phụ thuộc nào được xác định. Ví dụ: trên Ubuntu Linux:
```
apt install libgmpxx4ldbl
dpkg -i octez-ubt220-unoff-smartrollups_16.0rc3-1_amd64.deb
```
Bạn có thể thiết lập ví trên máy và nhận 10.000 test ꜩ như sau. Quy trình này không được khuyến nghị trên mạng chính nơi bạn nên bảo vệ các khóa của mình. Chúng tôi giả định rằng bạn đang chạy trên mạng thử nghiệm. Đầu tiên, hãy tạo một ví sẽ có bí danh là toán tử .
sudo su - tezos
octez-client gen keys operator
octez-client list known addresses
operator: tz1gUp6L56GvuLVk3ZFoFZ6bqckFZf6XgYsm (unencrypted sk known)
$ octez-client get balance for operator
12002 ꜩ
Đối với mạng thử nghiệm Mumbai, nhóm phát triển đề xuất và cung cấp hạt nhân thử nghiệm. Hạt nhân này là một “hạt nhân tiếng vang” đơn giản gửi lại bất kỳ giao dịch nào mà nó nhận được tới chuỗi Lớp 1. Tài liệu dành cho nhà phát triển bản tổng hợp thông minh sử dụng tài liệu này để minh họa các tương tác khác nhau mà người dùng có thể có với bản tổng hợp thông minh. Tải xuống tập lệnh shell có chứa nó.
wget
https://tezos.gitlab.io/_downloads/3dc4fd44d97861f183e18fda0ee8a9ae/sr_boot_kernel.sh
source sr_boot_kernel.sh
echo ${KERNEL}
4 — Tạo Rollup và cấu hình Rollup Daemon
Giả sử rằng ví cục bộ được gọi là toán tử , hãy bắt đầu tổng số bằng cách sử dụng lệnh octez-client (dưới dạng tezos ):
octez-client originate smart rollup from operator \
of kind wasm_2_0_0 \
of type bytes \
with kernel "${KERNEL}" \
--burn-cap 999
Với điều kiện là khởi tạo thành công, sẽ có một dòng trong đầu ra chứa địa chỉ tổng số thông minh. Địa chỉ bắt đầu bằng sr1 và trong kết quả ví dụ của chúng tôi bên dưới, nó là sr16sXnn7syKanQyVdXJ2h1VxKxmSE52NNsv.
Estimated gas: 2748.229 units (will add 100 for safety)
Estimated storage: 6552 bytes added (will add 20 for safety)
Operation successfully injected in the node.
Operation hash is 'ooU5aURNgPGcvuHrSxtWJ61NoBMdD5H6nh8smStGV8JhE1ip8Ac'
Waiting for the operation to be included...
Operation found in block: BMA1mBzZZfra2cAhYVUQ5G2d7qWNrr62UGzE4PnM4rMhr2v5SYm (pass: 3, off
This sequence of operations was run:
Manager signed operations:
From: tz1gUp6L56GvuLVk3ZFoFZ6bqckFZf6XgYsm
Fee to the baker: tz0.001054
Expected counter: 285427
Gas limit: 2849
Storage limit: 6572 bytes
Balance updates:
tz1gUp6L56GvuLVk3ZFoFZ6bqckFZf6XgYsm ... -tz0.001054
payload fees(the block proposer) +tz0.001054
Smart rollup origination: Kind: wasm_2_0_0
Parameter type: bytes
Kernel Blake2B hash:
'24df9e3c520dd9a9c49b447766e8a604d31138c1aacb4a67532499c6a8b348c
This smart rollup origination was successfully applied
Consumed gas: 2748.269
Storage size: 6552 bytes
Address: sr16sXnn7syKanQyVdXJ2h1VxKxmSE52NNsv
Genesis commitment hash:
src148CUpWBSWdiACxJU7qmM83EPSwJUnGXvT3UoR1wMskb7qDn9o8
Balance updates:
tz1gUp6L56GvuLVk3ZFoFZ6bqckFZf6XgYsm ... -tz1.638
storage fees +tz1.638
The operation has only been included 0 blocks ago.
We recommend to wait more.
Use command
octez-client wait for ooU5aURNgPGcvuHrSxtWJ61NoBMdD5H6nh8smStGV8JhE1ip8Ac
to be included --confirmations 1 --branch
BLkRNr2dgMbmpxvmmohneG4Q6zAGv6AperavsgdDJzYzTfuHrYJ
and/or an external block explorer.
Tạo một thư mục làm việc. Sau đó, sử dụng địa chỉ tổng số thông minh và địa chỉ ví để định cấu hình daemon tổng số bằng giao thức hiện đang hoạt động như sau:
Tabulate: mkdir -p /var/tezos/smartrollup
octez-smart-rollup-node-PtMumbai --base-dir "/var/tezos/node" \
init operator config for "sr16sXnn7syKanQyVdXJ2h1VxKxmSE52NNsv" \
with operators "tz1gUp6L56GvuLVk3ZFoFZ6bqckFZf6XgYsm" \
--data-dir "/var/tezos/smartrollup"
5 — Chạy Rollup Daemon
Nếu bạn đang sử dụng các gói được đề cập ở trên, bạn có thể chạy các daemon tổng số thông minh bằng cách sử dụng systemctl với quyền root. Chúng có thể được thiết lập để bắt đầu khi khởi động. Kiểm tra xem /etc/octez/smartrollup.conf có phù hợp với môi trường của bạn không trước khi chạy.
systemctl enable octez-smartrollup
systemctl start octez-smartrollup
octez-smart-rollup-node-PtMumbai run --data-dir /var/tezos/smartrollup
Cuối cùng, để kiểm tra tổng số, bạn có thể đưa một thông báo đơn giản vào đó. Chúng tôi phân tích ví dụ được đưa ra trên trang web phát triển . Các chi tiết nằm ngoài phạm vi của bài viết này. Đầu tiên tạo một hợp đồng trên blockchain như sau:
Tabulate: sudo su - tezos
octez-client originate contract testcontract transferring 1 from operator \
running 'parameter string; storage string; code {CAR; NIL operation; PAIR};' \
--init '""' --burn-cap 0.4
...
New contract KT1ABda79D6zcmRvKPoTYsqddDhrhWCqjCzr originated.
MESSAGE='[ { "destination" : "KT1ABda79D6zcmRvKPoTYsqddDhrhWCqjCzr",
"parameters" : "\"Hello Tezos Commons\"",
"entrypoint" : "%default" } ]'
EMESSAGE=`octez-smart-rollup-client-PtMumbai encode outbox message "$MESSAGE"`
octez-client send smart rollup message "hex:[ \"${EMESSAGE}\" ]" from operator
wget http://YOURNODE:8732/chains/main/blocks/BLOCK_ID
[
{
"protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
"chain_id": "NetXzfS4qFhir8c",
"hash": "onjf4VukkZ2BYkhbnjtKMia35xzTkQwoYctrYZ8sNwBh2BRgDSq",
"branch": "BMDnbi8TKyDbNR4144Um15jCoLGEh2WejS5j2iM68SPTVcRqZZc",
"contents": [
{
"kind": "smart_rollup_publish",
"source": "tz1gUp6L56GvuLVk3ZFoFZ6bqckFZf6XgYsm",
"fee": "963",
"counter": "3941",
"gas_limit": "6418",
"storage_limit": "0",
"rollup": "sr1Hp6fvRDkKUsFsdLXoFiAn1tVCjkpmSygb",
"commitment": {
"compressed_state": "srs12QdRrhCEj8N8HjbsZNQVd8x4EVzfT9SBCfzNSHqS97i6yWVXA9",
"inbox_level": 8958,
"predecessor": "src13eN6KaiGH66HDYRsoXdZBiQ1GT24qjDusgCuEkrEiL2MUxEGA3",
"number_of_ticks": "880000000000"
},
"metadata": {
"balance_updates": [
{
"kind": "contract",
"contract": "tz1gUp6L56GvuLVk3ZFoFZ6bqckFZf6XgYsm",
"change": "-963",
"origin": "block"
},
{
"kind": "accumulator",
"category": "block fees",
"change": "963",
"origin": "block"
}
],
"operation_result": {
"status": "applied",
"consumed_milligas": "6317837",
"staked_hash": "src12cod31ux6yxPBEhhWSX7nW3bodNRxdMHnzMjLNYVRfLCG3dXNp",
"published_at_level": 8961,
"balance_updates": []
}
}
}
],
Lưu ý rằng ví dụ cuối cùng này được thực hiện trên Mondaynet thay vì Mumbainet. Bạn cũng có thể sử dụng Mondaynet để kiểm tra tổng số thông minh của mình nhưng bạn sẽ cần sử dụng phiên bản phát triển phù hợp của Octez để phù hợp với mạng.
Sự nhìn nhận
Xin cảm ơn John Newby về một số cuộc thảo luận hữu ích trong quá trình chuẩn bị bài viết này.

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































