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

Xây dựng dApps với mục nhập dữ liệu an toàn trên Binance Smart Chain

Chainlink
特邀专栏作者
Bài viết này có khoảng 2919 từ, đọc toàn bộ bài viết mất khoảng 5 phút
Trong hướng dẫn kỹ thuật này, chúng tôi sẽ giải thích cách sử dụng Binance Smart Chain, mã thông báo BNB và oracle Chainlink, ngay cả khi bạn không có kinh nghiệm phát triển Ethereum, bạn có thể tìm hiểu cách
Tóm tắt AI
Mở rộng
Trong hướng dẫn kỹ thuật này, chúng tôi sẽ giải thích cách sử dụng Binance Smart Chain, mã thông báo BNB và oracle Chainlink, ngay cả khi bạn không có kinh nghiệm phát triển Ethereum, bạn có thể tìm hiểu cách

Vào tháng 4 năm 2019, sàn giao dịch tiền điện tử nổi tiếng Binance đã ra mắtChuỗi Binance), một mạng được xây dựng và tối ưu hóa để trao đổi tài sản nhanh chóng và là nơi mã thông báo BNB được sinh ra. Trên Binance Chain, bạn có thể

  • Gửi và nhận mã thông báo BNB

  • Phát hành mã thông báo mới

  • Gửi, nhận, ghi/đúc và đóng băng/giải phóng mã thông báo

  • Đề xuất tạo một cặp giao dịch giữa hai mã thông báo khác nhau

  • Gửi lệnh mua và bán tài sản thông qua các cặp giao dịch được tạo trên chuỗi

Binance Chain hoàn hảo cho những người dùng đang tìm kiếm giao dịch nhanh hơn. Tuy nhiên, nó không tương thích với EVM theo thiết kế và không hỗ trợ hợp đồng thông minh. Để có thể tạo hợp đồng thông minh, nhóm Binance cũng đã tạoChuỗi thông minh Binance(BSC), một mạng sử dụng thuật toán đồng thuận Proof of Stake Authorization (PoSA) và tương thích với EVM, cho phép các nhà phát triển hợp đồng thông minh xây dựng các dApp có thể lập trình được tích hợp nguyên bản với Binance Chain.

Một mặt, kiến ​​trúc chuỗi kép này cho phép giao dịch nhanh ở phía trao đổi tài sản và mặt khác, nó cũng hỗ trợ các hợp đồng thông minh. Nhóm Binance thực sự đã đặt ra thuật ngữ "CeDeFi" hoặc gọi nó là "tài chính phi tập trung hóa" để mô tả cách tiếp cận kết hợp này, điều này đánh đổi việc sử dụng kiến ​​trúc ít phi tập trung hơn để đạt được thông lượng giao dịch lớn hơn, trong khi vẫn đảm bảo rằng các nhà phát triển có thể triển khai các ứng dụng một cách không cần cấp phép và có thể sử dụng các công cụ có thể kết hợp tương tự trong Ethereum, chẳng hạn như Solidity vàNguồn cấp dữ liệu giá Chainlink。

Nguồn cấp dữ liệu giá Chainlink của Binance Smart Chaintiêu đề cấp đầu tiên

tiêu đề phụ

công cụ chúng tôi sẽ sử dụng

Vì BSC tương thích với EVM nên chúng tôi có thể sử dụng cùng một bộ công cụ mà chúng tôi sẽ sử dụng trong môi trường phát triển Solidity, chẳng hạn nhưTruffle,Hardhat,MetaMaskChờ đợi. Trong hướng dẫn này, chúng tôi sẽ sử dụng khung phát triển hợp đồng thông minh PythonBrownieĐược phát triển trên BSC, vì mạng thử nghiệm Binance hiện không hỗ trợ nguồn cấp dữ liệu giá Chainlink và khung Brownie có các tính năng chuỗi phân tách mạnh mẽ có thể được sử dụng cục bộ.

Nếu bạn quan tâm đến việc sử dụng phát triển Truffle và Hardhat trên Binance Smart Chain thay vì Brownie, bạn có thể xemChức năng chuỗi rẽ nhánh của ganache-clitiêu đề phụ

Yêu cầu

  • python3

  • nodejs

  • ganache-cli

  • brownie

Bắt đầu khóa hướng dẫn

Bây giờ chúng ta đã thiết lập xong mọi thứ, hãy chuyển sang phần mở hộphỗn hợp chuỗi liên kết của bánh hạnh nhân. Đây là mẫu soạn sẵn để sử dụng hợp đồng thông minh Chainlink. Nếu bạn muốn biết thêm, bạn có thể đọc tạiCách triển khai hợp đồng thông minh trên bất kỳ chuỗi khối nào bằng python trong bài đăng trên blog của chúng tôi。

Để sử dụng mạng chính hoặc mạng thử nghiệm của Binance Smart Chain, thường cần có mã thông báo BNB, tương tự như sử dụng ETH trên chuỗi khối Ethereum. Khi triển khai hợp đồng thông minh, cần có mã thông báo BNB.

Chúng tôi sẽ làm mọi thứ 100% tại địa phương, vì vậy bạn không cần bất kỳ mã thông báo testnet nào như ETH, LINK hoặc BNB để bắt đầu.

Đầu tiên, chúng ta cần tạo dự án hỗn hợp Brownie:

brownie bake chainlink-mixcd

chainlink

Bây giờ chúng ta vào dự án. Nếu chúng ta chạy lệnh ls, chúng ta có thể xem nội dung của thư mục.

  • bản dựng: Đây là thư mục mà dự án sử dụng để theo dõi các hợp đồng thông minh đã triển khai và hợp đồng đã biên dịch

  • hợp đồng: mã nguồn của hợp đồng, thường được viết bằng ngôn ngữ Solidity hoặc Vyper

  • giao diện: Thư mục giao diện cần thiết để tương tác với hợp đồng đã triển khai. Mọi tương tác với hợp đồng đều yêu cầu ABI và địa chỉ hợp đồng. Giao diện là một cách tuyệt vời để có được ABI của hợp đồng

  • tập lệnh: tập lệnh chúng tôi đã tạo để tự động hóa quy trình hợp đồng

  • kiểm tra: kiểm tra

  • brownie-config.yaml: Tệp này cung cấp cho Brownie tất cả thông tin cần thiết để hiểu cách xử lý hợp đồng thông minh của chúng tôi. Mạng blockchain nào chúng ta muốn triển khai? Chúng ta có phải đặt bất kỳ tham số đặc biệt nào không? Tất cả những thứ này được đặt trong tệp cấu hình này.

requirements.txt , README.md , LICENSE ,và các tệp như .gitignore hiện có thể được bỏ qua. Bạn sẽ tìm hiểu những gì chúng được sử dụng trong các bài tập.

tiêu đề phụ

Thêm một mạng rẽ nhánh

Để sử dụng Binance Chain, chúng tôi cần mộtLiên kết cuộc gọi thủ tục từ xa (RPC)hoặc trường máy chủ. Đây là kết nối thực hiện lệnh gọi API để kết nối với Binance Smart Chain. Bạn cũng có thể chạy đồng tiền của riêng mình nếu quan tâmNút chuỗi thông minhvà kết nối với nút đó.

chúng ta có thểTìm thấy trong tài liệu của họ cho Binance ChainLiên kết RPC. Chúng tôi cũng cần ChainID. Bây giờ, chúng tôi sử dụng như sau:

host=https://bsc-dataseed.binance.org/ chainid=56

Cuối cùng, chúng tôi sẽ cần địa chỉ hợp đồng cụ thể để sử dụng nguồn cấp dữ liệu giá Chainlink. Dự án kết hợp chuỗi liên kết của Brownie được cài đặt sẵn nguồn cấp giá ETH/USD của Binance, nhưng nếu bạn muốn có danh sách tất cả các nguồn cấp giá Chainlink trên Binance, bạn có thể xem tài liệu của Binance hoặc Chainlink để biết thêm thông tin. Nhìn vào tệp brownie-config.yaml, bạn sẽ thấy một phần gọi là binance-fork trong trường mạng. Dưới đây là tất cả các biến chúng ta cần để sử dụng chuỗi fork Binance.

Bây giờ, chúng tôi sẽ yêu cầu Brownie kết nối với Binance Chain, nhưng chúng tôi sẽ phân nhánh chuỗi. Phân nhánh chuỗi có nghĩa là sao chép chuỗi và chạy nó cục bộ để chúng tôi không phải trả bất kỳ khoản phí xăng nào và có thể lặp lại nhanh chóng trong các bài kiểm tra. Nhưng điều này cũng có nghĩa là một khi chuỗi phân nhánh ngoại tuyến, tất cả dữ liệu sẽ bị xóa! Chúng ta có thể thêm một nhánh của Chuỗi Binance vào mạng Brownie bằng lệnh sau:

Thao tác này sẽ chạy chuỗi ganache-cli cục bộ trên cổng 8545 của máy chủ cục bộ. Nó sẽ được sử dụng khi triển khaihttps://bsc-dataseed1.binance.orgnhư một nguồn ngã ba. Nếu thực hiện đúng, bạn sẽ thấy một cái gì đó như thế này:

tiêu đề phụ

triển khai hợp đồng

Bây giờ mọi thứ đã được thiết lập, chúng ta có thể triển khai và đọc các hợp đồng trên ganache fork cục bộ. hiện hữu scriptsthư mục, có mộtdeploy_price_consumer_v3.pykịch bản. Chúng ta có thể chạy nó bằng lệnh sau:



Bạn sẽ thấy đầu ra tương tự như sau

Vì vậy, chúng tôi vừa thực hiện:

  1. Phân nhánh Chuỗi Binance và chạy nó cục bộ

  2. Triển khai hợp đồng thông minh cho nó

  3. và đọc giá của ETH từ nó

The current price of ETH is 135462000000

tiêu đề phụ

hơn nữa

Giờ đây, bạn đã biết cách triển khai các hợp đồng thông minh bằng Chuỗi thông minh Binance, bạn cũng có thể tìm hiểu sâu hơn về BSC hoặc sử dụng các chuỗi phụ khác như Matic, xDai và các mạng Lớp 2 khác. Nếu bạn thích các khung Hardhat và Truffle hơn, hãy xem liệu bạn có thể thực thi các lệnh ganache-cli trong các khung đó hay không và chạy một số thử nghiệm cục bộ. Sắp có nhiều hackathon, vì vậy hãy đảm bảo tham gia cùng họ để có cơ hội hợp tác với những tài năng khác trong lĩnh vực này, giành một số giải thưởng và phát triển bản thân như một nhà phát triển hợp đồng thực thụ.

Nếu bạn muốn tiếp tục mở rộng chức năng của hợp đồng thông minh, vui lòng truy cậpTài liệu dành cho nhà phát triển Chainlinkvà tham giaDiscordThảo luận kỹ thuật trong . Nếu bạn xây dựng các dự án thú vị bằng cách sử dụng Binance Smart Chain, Brownie, Truffle, Hardhat hoặc bất kỳ tích hợp Chainlink nào khác, hãy nhớ gắn thẻ cho chúng tôi @chainlink để chúng tôi có thể thấy công việc tuyệt vời mà bạn đã thực hiện!

Sự an toàn
sàn giao dịch
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