BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Brownie: Cơ sở hạ tầng hợp đồng thông minh của Ethereum

星球君的朋友们
Odaily资深作者
Bài viết này có khoảng 2155 từ, đọc toàn bộ bài viết mất khoảng 4 phút
Brownie được sử dụng để phát triển các hợp đồng thông minh Ethereum, tính mạnh mẽ và dễ sử dụng của nó rất cao.
Tóm tắt AI
Brownie được sử dụng để phát triển các hợp đồng thông minh Ethereum, tính mạnh mẽ và dễ sử dụng của nó rất cao.

Lưu ý của biên tập viên: Bài viết này đến từĐịnh lượng Kicking Horse River (ID: gh_e9da2a6cbc62), được in lại bởi Odaily với sự cho phép.

Lưu ý của biên tập viên: Bài viết này đến từ

  • Định lượng Kicking Horse River (ID: gh_e9da2a6cbc62)

  • Định lượng Kicking Horse River (ID: gh_e9da2a6cbc62)

  • , được in lại bởi Odaily với sự cho phép.

  • Khi nói đến bánh hạnh nhân, đừng nghĩ rằng chúng là những chiếc bánh nhỏ thơm ngon với hương vị sô cô la đen, bánh hạnh nhân được đề cập ở đây đề cập đến khuôn khổ cơ bản của hợp đồng thông minh được gọi là bánh hạnh nhân trên Ethereum. Brownie được sử dụng để phát triển các hợp đồng thông minh Ethereum, tính mạnh mẽ và dễ sử dụng của nó rất cao và nó thường được sử dụng cho:

Triển khai: Tự động triển khai nhiều hợp đồng vào chuỗi khối, khởi tạo hoặc tích hợp bất kỳ giao dịch nào cần thiết cho chúng.

Tương tác: Viết tập lệnh hoặc sử dụng bảng điều khiển để tương tác với các hợp đồng trên mạng chính hoặc thực hiện các thử nghiệm nhanh trong môi trường cục bộ.

Gỡ lỗi: Nhận thông tin chi tiết khi các giao dịch đang phục hồi để giúp bạn xác định vấn đề một cách nhanh chóng.

Kiểm tra: Viết kiểm tra đơn vị bằng Python và đánh giá phạm vi kiểm tra dựa trên phân tích dấu vết ngăn xếp.

Tiếp theo, hãy thử tạo một hợp đồng thông minh rất đơn giản trong Solidity, chỉ hiển thị hai hàm bên ngoài getValue và setValue Lưu hợp đồng thông minh này trong tệp smart_contract.sol.

Tiếp theo triển khai và tương tác với hợp đồng thông minh này thông qua Brownie.

cài đặt

Nỗ lực này sử dụng Python3.7 và virtualenv để cô lập môi trường của chúng tôi. Nếu Python3.7 chưa được cài đặt, bạn có thể làm theo các bước bên dưới.

Chúng tôi sẽ sử dụng Ganache, một chuỗi khối cá nhân để phát triển Ethereum. Thay vào đó, bạn cũng có thể cài đặt ethereum-testrpc, nhưng điều đó sẽ khiến GUI không thể chạy được. Khi cài đặt Ganache, hãy làm theo các bước.

  • Tạo môi trường ảo cho các dự án Solidity của bạn. Cái này đã được tạo và đặt tên là TestBrownie.Cài đặt Brownie.

  • Để khởi tạo một dự án trống, hãy bắt đầu bằng cách tạo một thư mục mới. Trong thư mục đó, gõ:

  • cấu trúc dự án

  • Mỗi dự án bánh hạnh nhân chứa các thư mục sau:

hợp đồng/: nguồn hợp đồng

giao diện/: nguồn giao diện

  • scripts/: tập lệnh để triển khai và tương tác

  • tests/: tập lệnh để kiểm tra dự án

brownie-config.yaml: tệp cấu hình dự án

Các thư mục dưới đây cũng được tạo bởi Brownie và được sử dụng nội bộ để quản lý dự án và không thể chỉnh sửa hoặc xóa.

build/: dữ liệu dự án, chẳng hạn như các tạo phẩm của trình biên dịch và kết quả kiểm tra đơn vị

báo cáo/: Các tệp báo cáo JSON được sử dụng trong GUI

biên dịch

smart_contract.sol sao chép hợp đồng thông minh của bạn trong thư mục hợp đồng. Biên dịch tất cả các nguồn hợp đồng trong thư mục con hợp đồng/dự án:

Mỗi khi trình biên dịch chạy, Brownie so sánh hàm băm của từng nguồn hợp đồng với hàm băm của phiên bản đã biên dịch hiện có. Nếu hợp đồng không thay đổi, nó sẽ không được biên dịch lại. Sử dụng brownie compile --all nếu bạn muốn buộc toàn bộ dự án được biên dịch lại.

Nếu bạn muốn biên dịch hợp đồng Solidity với phiên bản khác, bạn chỉ cần đề cập đến hợp đồng trong hướng dẫn sử dụng của tệp .sol. Nếu không có, nó sẽ được cài đặt tự động. Cần lưu ý ở đây: cài đặt cho bộ mã hóa nằm trong brownie-config.yaml.

  • Byzantium: Solidity <=0.5.4

  • Petersburg: Solidity >=0.5.5< =0.5.12

  • Istanbul: Solidity >=0.5.13, Vyper

Sửa đổi bất kỳ cài đặt trình biên dịch nào sẽ dẫn đến việc biên dịch lại hoàn toàn dự án.

Nếu một phiên bản trình biên dịch được đặt trong tệp cấu hình, phiên bản đó sẽ được sử dụng để biên dịch tất cả các hợp đồng trong dự án. Phiên bản phải được cung cấp dưới dạng một chuỗi ở định dạng 0.xx

Nếu phiên bản được đặt thành null, brownie sẽ xem xét chương trình sử dụng phiên bản cho từng hợp đồng và sử dụng phiên bản trình biên dịch phù hợp mới nhất được cài đặt.

Về evm_version, Brownie đặt bộ quy tắc theo trình biên dịch.

Bạn cũng có thể đặt phiên bản EVM theo cách thủ công. Các tùy chọn hợp lệ là byzantium, constantinople, petersburg và istanbul.Bộ quy tắc Ethereum Classic atlantis và agharta cũng có sẵn, được chuyển đổi thành ethereum tương đương trước khi được chuyển đến trình biên dịch.

Lưu ý: Brownie hỗ trợ phiên bản Solidity >= 0.4.22 và phiên bản Vyper 0.1.0-b16.

Sau khi biên dịch thành công, Brownie sẽ tạo một tệp SimpleContract.json trong thư mục bản dựng/hợp đồng.

triển khai

Mở brownie-config.yaml, nó có phần mạng, bạn có thể tùy chỉnh mạng hiện có hoặc tạo một khối mới trong mạng. Ganache GUI chạy trên cổng 7545 được sử dụng ở đây.

Tạo một khối riêng dưới mạng.

Lưu tập tin này. Bây giờ hãy triển khai hợp đồng thông minh đã biên dịch bằng bảng điều khiển bánh hạnh nhân. Nó rất giống với trình thông dịch Python thông thường. Từ thư mục dự án, tải nó bằng cách gõ:

Kiểm tra chéo các tài khoản trong đầu ra với các tài khoản hiển thị trên GUI Ganache.

Mỗi tài khoản riêng lẻ được đại diện bởi một đối tượng Tài khoản mà trên đó có thể thực hiện các hành động, chẳng hạn như truy vấn số dư hoặc gửi ETH.

Mọi hợp đồng và thư viện có thể triển khai đều có một ContractContainer để triển khai các hợp đồng mới và truy cập các hợp đồng hiện có. Tất cả các hợp đồng đã biên dịch đều có sẵn dưới dạng các biến cùng tên.

Triển khai hợp đồng 0 với tài khoản:


Nếu bạn nhập SimpleContract, bạn có thể thấy SimpleContract dưới dạng danh sách các phiên bản đã triển khai của các đối tượng ContractContainer.

sự tương tác

Xem các phương pháp có sẵn trong hợp đồng này:

Bắt đầu bằng cách thiết lập các biến trong hợp đồng thông minh.

智能合约
ETH
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký:
https://t.me/Odaily_News
Nhóm trò chuyện:
https://t.me/Odaily_GoldenApe
Tài khoản chính thức:
https://twitter.com/OdailyChina
Mục lục bài viết
Tải ứng dụng Odaily Nhật Báo Hành Tinh
Hãy để một số người hiểu Web3.0 trước
IOS
Android