- vừa được xem lúc

Giới thiệu nền tảng Binance Smart Chain ( Dành cho blockchain dev)

0 0 34

Người đăng: tran minh chien

Theo Viblo Asia

Binance smart chain trong thời gian hiện tại đang nổi lên như một thế lực vô cùng mạnh mẽ cùng với BTC, ETH,, Polkadot,...

Trong bài viết lần này mình sẽ giới thiệu cho các bạn biết Binance smart chain (BSC) là gì và cách xây dựng ứng dụng trên nó.

Giới thiệu chung

Trước khi giới thiệu về BSC thì mình sẽ đảo qua một chút về Binance chain . Vậy Binance chain là gì trước khi nó trở nên smart ?

Đầu tiên chúng ta sẽ nói qua về Binance Chain:

Binance chain được đề xuất và xây dựng với mục tiêu chính là tạo ra một sản phi tập trung cho Binance (Binnace DEX) : https://www.binance.org/en

Mục tiêu ban đầu là hỗ trợ giao dịch do đó cần phải đánh đổi việc có thể xây dựng các DApp cho mục tiêu chính là trao đổi giữa các loại token. User có thể tự issue các token trên Binance Chain, truy xuất thông tin transaction thông qua các SDK của BC nhưng chưa thể xây các Dapp trên nó.

Và để xử lý vấn đề không thể xây dựng Dapp, Binance smart chain đã ra đời.

Binance smart chain

Điều khác biệt đầu tiên mà binance smart chain đem lại chính là nó có máy ảo EVM, do đó có thể chạy được các Smart contract tương tự trên, bên cạnh đó BSC cũng đã thay đổi một chút về consensus, nâng lượng validator lên . BSC là một chain chạy song song với Binance chain và không sinh thêm native token, token native vẫn sẽ là BNB được mine từ Binace Chain sang.

Dưới đây sẽ là các thông số so sánh giữa 2 chain này :

Các dự án trên Binance smart chain, do là kẻ đến sau nhưng với với tiềm lực mạnh về cả cộng đồng lẫn tài chính, BSC như con hổ đói đến bàn tiệc muộn, chi mạnh tài chính để đòi lại thị phần defi, và cũng đã có một vài kết quả nổi bật như các token đã được peg sang :

https://bscscan.com/tokens

Và cũng đã có những Dapp tương tự như bên Ethereum xuất hiện trên Binance:

Xây dựng ứng dụng trên BSC

Đây sẽ là phần vô cùng đơn giản đối với nhưng ai đã từng dev smart contract trên Ethereum hẳn sẽ vô cùng quen thuộc với các bước dưới đây

Dựng contract

Đầu tiên chúng ta sẽ sử dụng MathWallet để faucet một chút binance hỗ trợ việc test:

Chuyển network sang Binance Smart Chain - testnet và sau đó lấy một chút bnb test ở trang web sau :

https://testnet.binance.org/faucet-smart

Okei vậy là đã sẵn sàng, chúng ta sẽ sử dụng trực tiếp trên remix để deploy thử một contract :

https://remix.ethereum.org/

Hãy thử deploy contract Owner.sol sau :

pragma solidity >=0.4.22 <0.7.0; /** * @title Owner * @dev Set & change owner */
contract Owner { address private owner; // event for EVM logging event OwnerSet(address indexed oldOwner, address indexed newOwner); // modifier to check if caller is owner modifier isOwner() { // If the first argument of 'require' evaluates to 'false', execution terminates and all // changes to the state and to Ether balances are reverted. // This used to consume all gas in old EVM versions, but not anymore. // It is often a good idea to use 'require' to check if functions are called correctly. // As a second argument, you can also provide an explanation about what went wrong. require(msg.sender == owner, "Caller is not owner"); _; } /** * @dev Set contract deployer as owner */ constructor() public { owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor emit OwnerSet(address(0), owner); } /** * @dev Change owner * @param newOwner address of new owner */ function changeOwner(address newOwner) public isOwner { emit OwnerSet(owner, newOwner); owner = newOwner; } /** * @dev Return owner address * @return address of owner */ function getOwner() external view returns (address) { return owner; }
}

Connect ví MathWallet với remix :

Sau đó deploy trực tiếp bằng remix và chúng ta đã có 1 instance mà có thể tương tác trực tiếp được luôn:

Tương tác với contract

Tương tác với DApp thông qua MathWallet, tại bài này mình sẽ giới thiệu một cách để tương tác với các Dapp trên BSC, ngoài ra các bạn cũng có thể tìm hiểu các cách sử dụng với TrustWallet hay Metamask bằng cách config web3

Để có thể tương tác với với contract, chúng ta sẽ dùng một package sau :

npm i @binance-chain/bsc-use-wallet

và đơn giản chỉ cần sử dụng hook useWallet đã được package đó cung cấp để tương tác với ví :

// App.js import React from 'react'
import { render } from 'react-dom'
import bsc from '@binance-chain/bsc-use-wallet'
import { UseWalletProvider } from 'use-wallet' function App() { const wallet = useWallet() const blockNumber = wallet.getBlockNumber() return ( <> <h1>Wallet</h1> {wallet.status === 'connected' ? ( <div> <div>Account: {wallet.account}</div> <div>Balance: {wallet.balance}</div> <button onClick={() => wallet.reset()}>disconnect</button> </div> ) : ( <div> Connect: <button onClick={() => wallet.connect()}>MetaMask</button> </div> )} </> )
} // Wrap everything in <UseWalletProvider />
export default () => ( ( <UseWalletProvider connectors={{ bsc }}> <App /> </UseWalletProvider> ), document.getElementById('root')
)

Cuối cùng, cảm ơn các bạn đã theo dõi bài viết của mình

Nguồn:

Liên hệ

Bình luận

Bài viết tương tự

- vừa được xem lúc

[Blockchain] Road to Bitcoin

. Chắc mọi người hẳn đã không còn xa lạ gì với anh chàng tỷ phú đã ném vỡ cửa kính ô tô nhà mình cùng với siêu năng lực điều khiển vật giá chỉ bằng lời nói, người đã đẩy định giá Bitcoin trên thị trường vượt ngưỡng 50K dolar/coin với những bài twitter để đời . .

0 0 61

- vừa được xem lúc

Khi Ethereum có chi phí giao dịch quá đắt đỏ - Tương lai cho layer2 ?

Với sự phát triển như vũ bão của Blockchain, ETH dường như đang quá tải và hệ quả là chi phí Gas đã lên đến 1000Gwei, phí để tạo những transaction phức tạp đã xấp xỉ 500$ . Và một giải pháp cứu cánh cho các sản phẩm Defi trên ETH chính là Layer2, và trong nhiệm vụ lần này Matic đang thể hiện khả năn

0 0 89

- vừa được xem lúc

Blockchain với Java - Tại sao không?

Cuộc cách mạng công nghiệp 4.0 ra đời kéo theo nhiều sự thay đổi và xu hướng mới được hình thành. Riêng đối với lĩnh vực CNTT cũng không nằm ngoài vùng ảnh hưởng mạnh mẽ. Chính làn sóng 4.

0 0 92

- vừa được xem lúc

Phân loại và tầm quan trọng của các node trong mạng blockchain

Trước khi đi vào phân loại và nêu rõ được tầm quan trọng của các node trọng mạng blockchain thì mình xin được trích dẫn khái niệm về blockchain từ Wikipedia như sau:. .

0 1 65

- vừa được xem lúc

Code Smart Contract bằng Assembly ?

Introduction. Hồi còn học trong ghế nhà trường bộ môn lập trình tốn nhiều não nhất của mình là code assembly. Nôm na thì bất cứ ngôn ngữ bậc cao nào như C , Go, Java,... được sinh ra để người dễ hiểu và dễ code , tuy nhiên chúng đều sẽ được compiled down xuống assembly một ngôn ngữ bậc thấp để máy h

0 0 58

- vừa được xem lúc

Dextool - Công cụ phân tích Decentralized Exchange tuyệt vời

. Trend Defi mặc dù đã bớt nhiệt nhưng những sản phẩm nổi bật của làn sóng này mang lại thì vẫn rất được người dùng ưa chuộng. Đặc biệt là các nền tảng Decentralized Exchange, tiêu biểu là Uniswap, SushiSwap, 1inch Exchange, FalconSwap,... Nhưng khi đã sử dụng các nền tảng DEx này mà không biết đến

0 0 106