Ethereum - Hướng dẫn nhanh

Một thành công lớn của Bitcoin đã làm dấy lên sự quan tâm trong tâm trí của một số người để tạo ra tiền tệ của riêng họ. Nhìn vào những lợi thế mà Bitcoin - một loại tiền kỹ thuật số mang lại, mọi người muốn sử dụng khái niệm Blockchain trong các ứng dụng của riêng họ. Mọi người muốn chuyển từ các hợp đồng vật lý của họ sang các hợp đồng kỹ thuật số thông minh, nơi một số vấn đề như thoái thác, minh bạch, bảo mật, v.v. sẽ được tự động giải quyết. Kết quả của nỗ lực này đã dẫn đến việc tạo ra Ethereum - một nền tảng phổ biến để tạo ra các ứng dụng Blockchain phân tán hỗ trợ các hợp đồng thông minh.

Trong hướng dẫn này, bạn sẽ học cách tạo một ứng dụng phân tán (DAPP) trên nền tảng Ethereum. Cụ thể hơn, bạn sẽ học cách viết hợp đồng, thử nghiệm nó trên một Blockchain cục bộ và cuối cùng là triển khai nó trên một Blockchain bên ngoài để thử nghiệm sâu và sử dụng cho mục đích thương mại. Bạn sẽ sử dụngSolidity, một ngôn ngữ hướng đối tượng để phát triển hợp đồng. Bạn cũng sẽ sử dụngRemix, một IDE mã nguồn mở để phát triển và thử nghiệm các hợp đồng. Để triển khai hợp đồng đã thử nghiệm trên một Blockchain bên ngoài, bạn sẽ sử dụngGanache. Để tương tác với hợp đồng, bạn sẽ cần một ứng dụng khách. Chúng tôi sẽ sử dụngMyEtherWalletđể tạo ví cho từng khách hàng như vậy. Người tạo hợp đồng sẽ xuất bản hợp đồng. Bất kỳ khách hàng nào khác sẽ xem xét giá trị liên hệ bằng cách sử dụng giao diện được cung cấp bởi hợp đồng và gửi một số tiền cho người tạo để thực hiện một phần của hợp đồng.

Vì vậy, chúng ta hãy bắt đầu bằng cách viết hợp đồng.

Có một số công cụ có sẵn để phát triển và kiểm tra hợp đồng. Một trong những công cụ đơn giản nhất được cung cấp trên chính trang Ethereum chính thức. Công cụ được gọi làRemix, chúng tôi sẽ sử dụng điều này để phát triển hợp đồng của chúng tôi.

Phối lại để phát triển hợp đồng

Mở Remix IDE bằng cách nhập URL sau vào trình duyệt của bạn.

https://remix.ethereum.org

Màn hình sau sẽ xuất hiện.

Trong cửa sổ trung tâm, bạn sẽ thấy một số mã mặc định, đây là mã Solidity mẫu. Bạn sẽ nhập mã hợp đồng của mình vào trình soạn thảo mã này. Mã của bạn có thể được biên dịch tự động. Sau khi biên dịch thành công mã, bạn sẽ có thể chạy mã trong cùng một IDE. Khi bạn thực hiện các phương thức hợp đồng, kết quả sẽ được hiển thị trong cùng một cửa sổ IDE. Có các phương tiện để gỡ lỗi mã và kiểm tra đơn vị dự án của bạn. Chúng có thể được nhìn thấy trong thanh menu ở trên cùng bên phải như được hiển thị trong ảnh chụp màn hình IDE bên dưới. Bạn sẽ sớm sử dụng các tùy chọn này.

Bây giờ bạn sẽ bắt đầu viết hợp đồng của mình.

Solidity là một ngôn ngữ hướng đối tượng đặc biệt được phát triển để viết hợp đồng. Nó là một ngôn ngữ cấp cao, kế thừa các đặc điểm từ C ++, Python và JavaScript. Trình biên dịch Solidity biên dịch mã nguồn của bạn thành mã bytecode chạy trên Máy ảo Ethereum (EVM).

Để hiểu nhanh về cú pháp Solidity, hãy xem mã mẫu trong IDE.

pragma solidity >=0.4.22 <0.6.0;
contract Ballot {

Dòng đầu tiên là một chỉ thị cho trình biên dịch. Dòng thứ hai bắt đầu định nghĩa của hợp đồng. Trong hợp đồng, bạn khai báo các biến như:

address chairperson;

Bạn cũng có thể xác định các cấu trúc như Proposalvà tạo một mảng các mục cấu trúc này. Kiểm tra điều này trong cửa sổ mã.

Sau đó, bạn có thể xác định một phương thức khởi tạo được gọi vào thời điểm khởi tạo hợp đồng.

constructor(uint8 _numProposals) public {

Sau hàm tạo, bạn sẽ xác định một số phương thức, đó là các phương thức hợp đồng. Trong hợp đồng mẫu,giveRightToVote là một trong những phương thức như vậy có cú pháp sau:

function giveRightToVote(address toVoter) public {

Các public từ khóa làm cho phương pháp này không thể xâm nhập công khai bởi bất kỳ khách hàng nào có quyền truy cập vào hợp đồng.

Tương tự như vậy, hợp đồng mẫu xác định ba phương pháp khác được gọi là delegate, votewinningProposal. Kiểm tra những điều này để bạn hiểu rõ về cú pháp Solidity. Đây là những điều kiện tiên quyết để viết hợp đồng của riêng bạn. Giải thích cú pháp đầy đủ của Solidity nằm ngoài phạm vi của hướng dẫn này.

Chúng tôi sẽ đặt tên cho hợp đồng của chúng tôi MyContract như trong khai báo sau:

contract MyContract {

Chúng ta sẽ khai báo hai biến như sau:

uint amount;
uint value;

Biến amountsẽ giữ số tiền tích lũy do những người thực hiện hợp đồng gửi cho người tạo hợp đồng. Cácvaluetrường sẽ giữ giá trị hợp đồng. Khi những người thực thi thực hiện hợp đồng,value trường sẽ được sửa đổi để phản ánh giá trị hợp đồng cân bằng.

Trong hàm tạo hợp đồng, chúng tôi đặt giá trị của hai biến này.

constructor (uint initialAmount, uint initialValue) public {
   amount = 0;
   value = 1000;
}

Như ban đầu, số tiền thu được trên hợp đồng bằng 0, chúng tôi đặt amount trường thành 0. Chúng tôi đặt hợp đồng value đến một số tùy ý, trong trường hợp này là 1000. Người tạo hợp đồng quyết định giá trị này.

Để kiểm tra số tiền đã thu tại bất kỳ thời điểm nhất định nào, chúng tôi cung cấp một phương pháp hợp đồng công khai được gọi là getAmount được định nghĩa như sau -

function getAmount() public view returns(uint) {
   return amount;
}

Để có được giá trị hợp đồng cân bằng tại bất kỳ thời điểm nhất định nào, chúng tôi xác định getBalance phương pháp như sau -

function getBalance() public view returns(uint) {
   return value;
}

Cuối cùng, chúng tôi viết một phương thức hợp đồng (Send). Nó cho phép khách hàng gửi một số tiền cho người tạo hợp đồng -

function send(uint newDeposit) public {
   value = value - newDeposit;
   amount = amount + newDeposit;
}

Việc thực hiện send phương pháp sẽ sửa đổi cả hai valueamount các lĩnh vực của hợp đồng.

Mã hợp đồng đầy đủ được cung cấp bên dưới -

contract MyContract {
   uint amount;
   uint value;

   constructor (uint initialAmount, uint initialValue) public {
      amount = 0;
      value = 1000;
   }
   function getBalance() public view returns(uint) {
      return value;
   }
   function getAmount() public view returns(uint) {
      return amount;
   }
   function send(uint newDeposit) public {
      value = value - newDeposit;
      amount = amount + newDeposit;
   }
}

Sau khi bạn viết mã hợp đồng hoàn chỉnh, việc biên dịch mã trong IDE này là không cần thiết. Chỉ cần nhấp vàoAutocompile hộp kiểm trong IDE như được hiển thị trong ảnh chụp màn hình bên dưới -

Ngoài ra, bạn có thể soạn hợp đồng bằng cách nhấp vào nút có tiêu đề “Start to compile”.

Nếu có bất kỳ lỗi đánh máy nào, hãy sửa lỗi đó trong cửa sổ mã. Đảm bảo mã được biên dịch đầy đủ mà không có lỗi. Bây giờ, bạn đã sẵn sàng để triển khai hợp đồng.

Trong chương này, chúng ta sẽ tìm hiểu cách triển khai hợp đồng trên Ethereum. Nhấp vào tùy chọn menu Run để triển khai hợp đồng. Màn hình sau sẽ xuất hiện.

Tên hợp đồng được hiển thị trong hộp danh sách được đánh dấu. Dưới đây, bạn sẽ nhận thấyDeploy, nhấp vào nó để triển khai hợp đồng. Hợp đồng sẽ được triển khai trên Blockchain tích hợp sẵn của Remix. Bạn sẽ có thể thấy hợp đồng đã triển khai ở cuối màn hình. Bạn có thể thấy điều này trong phần được đánh dấu của ảnh chụp màn hình bên dưới.

Lưu ý, sự hiện diện của ba tên phương thức trong vùng được đánh dấu này. Tiếp theo, bạn sẽ tương tác với hợp đồng bằng cách thực hiện các phương thức hợp đồng.

Khi bạn nhấp vào hợp đồng đã triển khai, bạn sẽ thấy các phương thức công khai khác nhau được cung cấp bởi hợp đồng. Điều này được hiển thị trong ảnh chụp màn hình bên dưới.

Phương pháp đầu tiên sendchứa một hộp chỉnh sửa ở phía trước của nó. Tại đây, bạn sẽ nhập các tham số theo yêu cầu của phương thức hợp đồng. Hai phương thức còn lại không nhận bất kỳ tham số nào.

Gửi tiền

Bây giờ, hãy nhập một số số tiền chẳng hạn như 100 ở phía trước sendchức năng nhìn thấy trong cửa sổ hợp đồng. Nhấn vàosendcái nút. Điều này sẽ thực hiện hợp đồngsend phương pháp, giảm giá trị của hợp đồng value trường và tăng giá trị của amount cánh đồng.

Kiểm tra giá trị hợp đồng

Trước đó send money hành động đã làm giảm giá trị hợp đồng đi 100. Bây giờ bạn có thể kiểm tra điều này bằng cách gọi getBalancephương thức của hợp đồng. Bạn sẽ thấy đầu ra khi bạn nhấp vàogetBalance như thể hiện trong ảnh chụp màn hình bên dưới -

Hợp đồng value hiện giảm xuống còn 900.

Kiểm tra số tiền đã thu

Trong phần này, chúng ta sẽ xem xét số tiền thu được cho đến nay trên hợp đồng này. Đối với điều này, hãy nhấp vàogetAmountcái nút. Màn hình sau sẽ xuất hiện.

Các amount giá trị trường đã thay đổi từ 0 thành 100.

Hãy thử một vài send hoạt động và kiểm tra hợp đồng valueamount các trường để kết luận rằng hợp đồng đã triển khai đang thực hiện như mong đợi.

Remix IDE mà bạn đã sử dụng cho đến nay đủ tốt để phát triển và thử nghiệm ban đầu cho hợp đồng của bạn. Đối với các hợp đồng ngoài đời thực, bạn cần kiểm tra chức năng của mình dựa trên các thông số khác nhau. Remix không thể tạo tài khoản người dùng thực (không thử nghiệm) để chuyển tiền giữa họ. Bạn không có quyền kiểm soát cấu hình của Blockchain do Remix tạo ra. Bạn thậm chí không thể giám sát việc thực hiện các giao dịch.

Remix bỏ lỡ một số thao tác nâng cao. Do đó, chúng tôi cần triển khai hợp đồng của mình trên một Blockchain phức tạp hơn cung cấp tất cả các tính năng này. Một trong những Blockchain như vậy làGanache mà bạn sẽ tìm hiểu trong chương tiếp theo của chúng tôi.

Ganache được sử dụng để thiết lập một Blockchain Ethereum cá nhân để kiểm tra các hợp đồng Solidity của bạn. Nó cung cấp nhiều tính năng hơn khi so sánh với Remix. Bạn sẽ tìm hiểu về các tính năng khi tập luyện với Ganache. Trước khi bắt đầu sử dụng Ganache, trước tiên bạn phải tải xuống và cài đặt Blockchain trên máy cục bộ của mình.

Tải xuống Ganache

Bạn có thể tải xuống Ganache từ URL sau:

https://truffleframework.com/ganache

Ganache có sẵn trên một số nền tảng. Chúng tôi đã phát triển và thử nghiệm toàn bộ hướng dẫn này trên Mac. Do đó, ảnh chụp màn hình bên dưới sẽ hiển thị cài đặt Mac. Khi bạn mở URL cài đặt được cung cấp ở trên, nó sẽ tự động phát hiện hệ điều hành của máy bạn và hướng bạn đến cài đặt nhị phân thích hợp. Ảnh chụp màn hình bên dưới hiển thị cài đặt Mac.

Khi bạn nhấp vào nút DOWNLOAD, nó sẽ bắt đầu tải xuống tệp DMG để cài đặt Mac.

Cài đặt Ganache

Tìm “Ganache-2.0.0.dmg” trong thư mục Tải xuống của bạn và nhấp đúp vào nó để cài đặt Ganache. Sau khi cài đặt thành công, màn hình sau sẽ xuất hiện:

Kéo biểu tượng Ganache vào thư mục Ứng dụng. Giờ đây, Ganache có sẵn dưới dạng ứng dụng trên máy Mac của bạn.

Nếu bạn đang sử dụng một số hệ điều hành khác, hãy làm theo hướng dẫn được cung cấp để cài đặt thành công.

Khởi động Ganache

Bây giờ xác định vị trí Ganache trong thư mục Ứng dụng của bạn và nhấp đúp vào biểu tượng của nó để khởi động Ganache.

Ganache Desktop

Khi Ganache khởi động, màn hình Ganache sẽ xuất hiện như hình dưới đây -

Nhấp vào QUICKSTART để bắt đầu Ganache. Bạn sẽ thấy giao diện điều khiển Ganache như hình dưới đây -

Bảng điều khiển trong ảnh chụp màn hình ở trên hiển thị hai tài khoản người dùng có số dư 100 ETH (Ether - một loại tiền tệ để giao dịch trên nền tảng Ethereum). Nó cũng hiển thị số lượng giao dịch bằng 0 cho mỗi tài khoản. Vì người dùng đã không thực hiện bất kỳ giao dịch nào cho đến nay, số lượng này rõ ràng là 0.

Bây giờ chúng ta sẽ có cái nhìn tổng quan về một vài màn hình quan trọng của Ganache có liên quan ngay đến chúng ta.

Nhấp vào biểu tượng cài đặt ở phía trên cùng bên phải của màn hình như trong ảnh chụp màn hình bên dưới -

Màn hình cài đặt máy chủ sẽ xuất hiện như hình dưới đây -

Tại đây, bạn sẽ có thể đặt các giá trị của địa chỉ máy chủ và số cổng cho máy chủ Ganache của mình. Hiện tại, hãy để những giá trị này về giá trị mặc định của chúng. ID mạng là một mã định danh Blockchain nội bộ của máy chủ Ganache; để giá trị này thành giá trị mặc định của nó. CácAutomineở trạng thái BẬT cho biết rằng các giao dịch sẽ được xử lý ngay lập tức. Nếu bạn tắt tính năng này, nó sẽ yêu cầu bạn nhập thời gian tính bằng giây mà sau đó các khối sẽ được khai thác.

Tài khoản và Chìa khóa

Khi bạn nhấp vào Accounts & Keys tùy chọn menu, bạn sẽ thấy màn hình sau:

Ở đây bạn sẽ có thể setsố dư mặc định cho mỗi tài khoản. Giá trị mặc định là 100. Điều này giải thích tại sao bạn thấy 100 ETH hiển thị cho mỗi tài khoản trong ảnh chụp màn hình Máy tính để bàn. Bạn cũng có thể đặt số lượng tài khoản trên màn hình này. Giá trị hiển thị trong ảnh chụp màn hình này là 2 và đó là lý do tại sao màn hình chỉ hiển thị hai tài khoản.

Bây giờ, chúng ta sẽ làm việc với màn hình của hai cài đặt; kiến thức về cách hoạt động của hai thứ này là đủ. Khởi động lại máy chủ bằng cách nhấp vàoRESTARTở bên phải màn hình. Bây giờ bạn sẽ trở lại màn hình Desktop. Hãy thử nhập các giá trị khác nhau trong hai trường trên, khởi động lại máy chủ và xem tác dụng của nó.

Bây giờ chúng ta sẽ hiểu sơ qua về những gì có sẵn trên máy tính để bàn Ganache. Trên Màn hình nền, ở trên cùng, chúng tôi có một số tùy chọn menu trong đó có một số tùy chọn phù hợp ngay với chúng tôi. Thanh menu được đánh dấu trong ảnh chụp màn hình bên dưới -

Nhấp vào TRANSACTIONSmenu hiển thị tất cả các giao dịch được thực hiện cho đến nay. Bạn sẽ sớm thực hiện các giao dịch. Bây giờ, quay lại màn hình trên và kiểm tra các giao dịch theo thời gian. Một màn hình giao dịch điển hình như hình dưới đây -

Tương tự như vậy, khi bạn nhấp vào BLOCKS, bạn sẽ thấy các khối được khai thác khác nhau. Hãy xem ảnh chụp màn hình sau để hiểu menu BLOCKS trông như thế nào -

Bấm vào LOGSthực đơn. Nó sẽ mở nhật ký hệ thống cho bạn. Tại đây, bạn có thể kiểm tra các hoạt động khác nhau mà bạn đã thực hiện trên Ethereum Blockchain.

Bây giờ, khi bạn đã hiểu cách sử dụng Ganache để thiết lập Blockchain Ethereum riêng tư, bây giờ bạn sẽ tạo một vài khách hàng sẽ sử dụng Blockchain này.

Đối với ứng dụng khách, bạn sẽ sử dụng MyEtherWallet.

Tải xuống MyEtherWallet phần mềm từ URL sau -

https://github.com/kvhnuke/etherwallet/releases/tag/v3.21.06

Nếu cần, hãy giải nén tệp đã tải xuống và mở index.html. Bạn sẽ thấy giao diện sau để tạo ví mới.

Trong chương này, chúng ta sẽ học cách tạo ví Ethereum. Để tạo một ví mới, hãy nhập mật khẩu bạn chọn và sau đó nhấp vào nút “Create New Wallet" cái nút. Khi bạn làm như vậy, một Ví sẽ được tạo. Ví kỹ thuật số về cơ bản là thế hệ của cặp khóa công khai / riêng tư mà bạn cần lưu trữ ở một nơi an toàn. Kết quả tạo ví trong màn hình sau:

Bấm vào “Download Keystore File (UTC / JSON)”để lưu các khóa đã tạo. Bây giờ, hãy nhấp vào“I understand. Continue”cái nút. Khóa cá nhân của bạn sẽ xuất hiện trên màn hình như trong ảnh chụp màn hình bên dưới -

Bấm vào “Print Paper Wallet”để giữ một bản ghi vật lý về khóa riêng tư của ví của bạn. Bạn sẽ cần cái này sau để mở khóa ví. Bạn sẽ thấy màn hình sau. Đừng để mất sản lượng này.

Để mở khóa ví của bạn, hãy nhấp vào “Save Your Address”cái nút. Bạn sẽ thấy màn hình sau.

Ví có thể được mở khóa bằng tùy chọn Private Key như được đánh dấu trong màn hình ở trên. Cắt-n-dán khóa cá nhân từ ảnh chụp màn hình trước đó và nhấp vào nút Mở khóa. Ví của bạn sẽ được mở khóa và bạn sẽ thấy một thông báo xuất hiện ở cuối màn hình. Vì hiện tại ví không chứa bất cứ thứ gì nên việc mở khóa ví không thực sự hữu ích đối với chúng tôi tại thời điểm này.

Bây giờ bạn đã tạo một ví; ví này là một giao diện khách hàng với Blockchain. Chúng tôi sẽ đính kèm ví vào Ganache Blockchain mà bạn đã bắt đầu trong bài trước. Để làm như vậy, hãy nhấp vàoNetwork hộp thả xuống như được hiển thị trong ảnh chụp màn hình bên dưới -

Đi đến cuối danh sách. Bạn sẽ thấy một tùy chọn cho“Add Custom Network / Node”. Chọn mục này.

Bây giờ, một màn hình sẽ xuất hiện yêu cầu địa chỉ máy chủ Ganache và cổng mà nó đang lắng nghe.

Nhập chi tiết máy chủ Ganache của bạn - http://127.0.0.1 và Cảng: 8545. Đây sẽ là các giá trị do bạn đặt trong thiết lập máy chủ Ganache. Đưa ra mộtnamesự lựa chọn của bạn cho nút này. Bấm vào“Save & Use Custom Node”cái nút. Bạn sẽ thấy thông báo đã kết nối ở cuối màn hình. Tại thời điểm này, ví của bạn đã được kết nối thành công với Ganache Blockchain.

Bây giờ bạn đã sẵn sàng triển khai hợp đồng trên Blockchain được kết nối này.

Để triển khai hợp đồng, hãy chọn Contracts tùy chọn menu như được hiển thị trong ảnh chụp màn hình bên dưới -

Bạn sẽ cần nhập mã bytecode của hợp đồng trên màn hình này. Hãy nhớ rằng, khi bạn biên dịch mã hợp đồng Solidity của mình, nó đã tạo ra một mã bytecode chạy trên EVM. Bây giờ bạn sẽ cần lấy mã bytecode này từRemix IDE.

Chuyển đến màn hình Remix IDE, hợp đồng đã nhập trước đó của bạn sẽ ở đó trong cửa sổ mã. Nếu không, hãy nhập lại hợp đồng trong cửa sổ mã. Nhấp vào nút Bytecode như được hiển thị trong ảnh chụp màn hình sau:

Mã bytecode cho nguồn đã biên dịch của bạn được sao chép vào khay nhớ tạm cùng với một số thông tin khác. Dán mã đã sao chép vào trình soạn thảo văn bản yêu thích của bạn. Sau đây là ảnh chụp màn hình của trình soạn thảo văn bản -

Giá trị của objectthẻ chứa mã bytecode mong muốn. Sao chép cẩn thận phần này để đảm bảo rằng bạn không sao chép các dấu ngoặc kép kèm theo. Bytecode thực sự dài, vì vậy hãy đảm bảo rằng bạn sao chép đúng đến byte cuối cùng bao gồm nó. Bây giờ, hãy dán mã bytecode này vàoDeploy Contract màn hình như hình dưới đây -

Các Gas Limit trường được đặt tự động.

Bên dưới trường Giới hạn Gas, bạn sẽ tìm thấy lựa chọn để truy cập ví.

Bây giờ, truy cập ví bằng cách sử dụng Private Keycủa tài khoản Ganache mà hợp đồng này sẽ được triển khai. Để lấy khóa riêng tư này, hãy quay lạiGanachecửa sổ. Bấm vàokeys biểu tượng của tài khoản đầu tiên như hình dưới đây -

Bạn sẽ thấy khóa riêng của tài khoản người dùng # 1 như trong ảnh chụp màn hình bên dưới -

Sao chép khóa cá nhân này và dán vào phần “Dán khóa cá nhân của bạn” như hình dưới đây -

Bạn sẽ thấy “Unlock”ở cuối màn hình. Sau khi mở khóa, thông báo "thành công" sẽ xuất hiện ở cuối màn hình. Tại thời điểm này, ví của bạn được gắn với tài khoản số 1 của Ganache Blockchain.

Bây giờ, bạn đã sẵn sàng để ký và triển khai hợp đồng. Bấm vào“Sign Transaction” như thể hiện trong ảnh chụp màn hình bên dưới -

Việc ký kết giao dịch sẽ tạo và hiển thị cả hai RawSignedcác giao dịch. Bấm vào“Deploy Contract”để triển khai hợp đồng trên Ganache Blockchain. Hãy nhớ rằng hợp đồng được triển khai bởi người dùng tài khoản số 1 của Ganache Blockchain. Do đó, người dùng tài khoản số 1 trở thành người tạo hợp đồng. Trước khi hợp đồng được triển khai, bạn sẽ được yêu cầu xác nhận giao dịch vì nó có thể khiến bạn mất một số tiền thật nếu bạn triển khai hợp đồng này trên một Ethereum Blockchain thực công khai. Đừng lo lắng, đối với Blockchain riêng tư hiện tại đang chạy trên máy cục bộ của bạn, không có tiền thật liên quan. Bấm vàoMake transaction như thể hiện trong ảnh chụp màn hình bên dưới -

Kiểm tra giao diện điều khiển Ganache; bạn sẽ thấy rằng số dư ETH trong tài khoản số 1 đã giảm như trong ảnh chụp màn hình bên dưới -

Bây giờ, hãy nhấp vào TRANSACTIONS menu như được hiển thị trong ảnh chụp màn hình bên dưới -

Bạn sẽ thấy chi tiết giao dịch.

Trên màn hình này, bạn sẽ tìm thấy địa chỉ được công bố của hợp đồng. Địa chỉ được đánh dấu trong ảnh chụp màn hình ở trên. Bạn sẽ phân phối công khai địa chỉ này để cho người khác biết rằng hợp đồng của bạn có sẵn tại địa chỉ được chỉ định này mà họ có thể kết nối và thực hiện các phương thức hợp đồng, chẳng hạn như gửi tiền cho bạn - người tạo hợp đồng. Sao chép địa chỉ hợp đồng này để bạn tham khảo vì bạn sẽ cần nó trong bước tiếp theo.

Bây giờ, bạn đã sẵn sàng tương tác với hợp đồng mà bạn đã triển khai. Quay lại màn hình nền MyEtherWallet và nhấp vào tab “Tương tác với hợp đồng” như thể hiện trong ảnh chụp màn hình bên dưới -

Dán địa chỉ hợp đồng mà bạn đã sao chép trước đó vào “Contract Address”cánh đồng. Bạn cũng cần dán“ABI / JSON Interface” của hợp đồng trên màn hình trên.

Để có được ABI, đi đến Remix cửa sổ và nhấp vào ABI như được hiển thị trong ảnh chụp màn hình bên dưới.

Giao diện ABI / JSON sẽ được sao chép vào khay nhớ tạm. Dán cái này vào trình soạn thảo yêu thích của bạn để kiểm tra giao diện đã tạo, được hiển thị bên dưới -

ABI / JSON Interface
[
   {
      "constant": false,
      "inputs": [
         {
            "name": "newDeposit",
            "type": "uint256"
         }
      ],
      "name": "send",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
   },
   {
      "inputs": [
         {
            "name": "initialAmount",
            "type": "uint256"
         },
         {
            "name": "initialValue",
            "type": "uint256"
         }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
   },
   {
      "constant": true,
      "inputs": [],
      "name": "getAmount",
      "outputs": [
         {
            "name": "",
            "type": "uint256"
         }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
   },
   {
      "constant": true,
      "inputs": [],
      "name": "getBalance",
      "outputs": [
         {
            "name": "",
            "type": "uint256"
         }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
   }
]

Sau khi bạn dán JSON này vào MyEtherWallet giao diện, bạn sẽ nhận thấy rằng nút TRUY CẬP bên dưới giao diện JSON hiện đã được kích hoạt, như hình dưới đây -

Nhấp chuột Access để truy cập hợp đồng.

Khi nhấp vào Access, địa chỉ hợp đồng và trình đơn thả xuống lựa chọn chức năng sẽ xuất hiện trên màn hình giống như trong trình chỉnh sửa Remix. Điều này được hiển thị trong ảnh chụp màn hình bên dưới -

Bạn có thể kiểm tra các chức năng khác nhau của hợp đồng như trong trường hợp triển khai Remix. Lưu ý rằng liên hệ hiện được triển khai trên Ganache Blockchain bên ngoài. Kiểm tragetAmountchức năng; bạn sẽ nhận được giá trị Số tiền bằng 0 vàgetBalance sẽ hiển thị số dư là 1000.

Bây giờ hãy thử gửi một số tiền. Nó sẽ giới thiệu cho bạn mộttexteditkiểm soát việc nhập số tiền. Khi bạn viết hợp đồng, một số “gas” sẽ được sử dụng và bạn sẽ được yêu cầu xác nhận giao dịch trước khi ghi nó vào Blockchain. Giao dịch sẽ được thực hiện trong thời gian ngắn tùy thuộc vào thời gian khai thác do bạn đặt trên máy chủ Ganache. Sau đó, bạn có thể kiểm tra lạivalueamount của hợp đồng để xác minh rằng chúng thực sự được sửa đổi.

Bây giờ bạn có thể kiểm tra màn hình Ganache để xem các giao dịch mà bạn đã thực hiện cho đến nay. Một đầu ra mẫu được hiển thị bên dưới -

Cho đến nay, bạn vừa là người tạo hợp đồng vừa là người thực thi hợp đồng. Điều này không có nhiều ý nghĩa, vì bạn mong đợi người khác sử dụng hợp đồng của bạn. Đối với điều này, chúng tôi sẽ tạo một khách hàng khác cho Ganache Blockchain của chúng tôi và gửi một số tiền từ tài khoản số 2 mới được tạo cho người tạo hợp đồng tại tài khoản số 1.

Trong chương này, chúng ta sẽ tìm hiểu việc tạo người dùng hợp đồng trên Ethereum. Để tạo người dùng cho hợp đồng đã xuất bản của chúng tôi, chúng tôi sẽ tạo mộtMyEtherWalletkhách hàng được gắn vào cùng một Blockchain Ganache mà bạn đã sử dụng trong các bước trước đó. Đi đếnMyEtherWallet màn hình và tạo một ví mới.

Bấm vào contracts menu và chọn “Interact with Contract”tùy chọn như trong trường hợp trước đó. Lưu ý rằng người dùng mới này sẽ chỉ tương tác với hợp đồng đã được xuất bản và không triển khai hợp đồng của riêng mình. Chỉ định địa chỉ hợp đồng và ABI mà bạn đã sử dụng trong trường hợp trước đó.

Bây giờ, hãy nhấp vào Access nút và gọi send phương pháp. Khi được hỏi, hãy nhập một số giá trị cho biết 100 ETH sẽ được gửi. Gửi giao dịch. Sau khi gửi, màn hình sau sẽ xuất hiện.

Để gắn khách hàng mới này vào Ganache Blockchain của chúng tôi, hãy truy cập Ganache Console. Nhấp vào biểu tượng chìa khóa của tài khoản số 2 như trong ảnh chụp màn hình sau -

Bạn sẽ nhận được khóa riêng cho tài khoản số 2.

Sao chép khóa bạn nhận được và sử dụng nó trong ví mới tạo của bạn như được hiển thị ở đây -

Bấm vào Unlock nút để gắn ví.

Khi ví được mở khóa thành công, hãy viết giao dịch gửi mong muốn.

Tạo giao dịch bằng cách nhấp vào “Generate Transaction” cái nút.

Makegiao dịch và đợi một thời gian để nó phản ánh trong Blockchain. Bây giờ, thực hiện“getAmount”, số lượng hiển thị bây giờ phải là 200.

Hành hình “getBalance”. Cácvalue trường bây giờ phải là 800.

Kiểm tra nhật ký giao dịch để xem các giao dịch khác nhau được thực hiện bởi những người dùng khác nhau.

Bạn đã học cách viết hợp đồng kỹ thuật số của riêng mình trong Solidity. Bạn đã phát triển và thử nghiệm giao diện hợp đồng trong Remix IDE. Để thử nghiệm nhiều người dùng hơn nữa, bạn đã triển khai hợp đồng này trên Ganache Blockchain. Trên Ganache, bạn đã tạo hai tài khoản người dùng. Tài khoản đầu tiên được sử dụng để xuất bản hợp đồng. Tài khoản thứ hai được sử dụng để tiêu thụ hợp đồng.

Tiếp theo là gì?

Ganache Blockchain mà bạn đã sử dụng trong toàn bộ quy trình này là riêng tư và cục bộ đối với máy của bạn. Khi bạn hoàn toàn hài lòng với hoạt động của hợp đồng, bạn có thể tiến hành xuất bản hợp đồng đó lên Blockchain Ethereum ngoài đời thực. Tuy nhiên, làm như vậy sẽ đòi hỏi bạn phải tiêu tiền thật. Trong ứng dụng demo, chúng tôi đã sử dụng 1000 ETH làm mặc định cho mỗi tài khoản người dùng trong Ganache. Khi bạn triển khai hợp đồng của mình trên một Blockchain ngoài đời thực, bạn sẽ phải mua ETH bằng cách chuyển đổi tiền tệ của quốc gia bạn sang ETH. Loại tiền này sẽ được lưu trữ trong ví của bạn và bạn sẽ có thể chi tiêu theo cách bạn muốn.