Các blockchain công khai cho phép chúng tôi xây dựng các ứng dụng web phi tập trung (Dapps) có khả năng chống kiểm duyệt và có các động lực kinh tế tích hợp.
Giao thức ứng dụng blockchain phổ biến nhất là Ethereum và nó tương tự đáng kể với các dịch vụ giao diện người dùng / phụ trợ mà chúng ta đã quen thuộc trong phát triển ứng dụng web.
Trong bài viết này, tôi sẽ sử dụng một ví dụ để hướng dẫn bạn cách tạo và xuất bản Dapp đầu tiên của bạn. Hoàn thành hướng dẫn này và bạn sẽ giành được 50 token ROSE từ Oasis Foundation!
Các phương tiện truyền thông xã hội công nghệ lớn ngày nay đang bị cản trở bởi song sinh tệ nạn kiểm duyệt và lời nói căm thù. Có cách nào để mọi người dễ dàng thể hiện bản thân, nhưng cũng khó bị spam và bắt nạt? Công nghệ chuỗi khối cung cấp các công cụ cho tính toán phi tập trung có khả năng loại bỏ sự phụ thuộc của chúng ta vào các nền tảng tập trung. Một ví dụ tuyệt vời về các ứng dụng blockchain là Bitcoin. Nó là tiền phi tập trung không có ngân hàng hoặc quốc gia. Công nghệ blockchain có thể giúp phân cấp các ứng dụng truyền thông xã hội không? Các blockchain công khai có khả năng chống kiểm duyệt và có các động cơ kinh tế tích hợp để trừng phạt các hành vi xấu.
Ethereum và Oasis
Hầu hết các ứng dụng blockchain ngày nay đều được xây dựng trên giao thức Ethereum. Nếu Bitcoin là cơ sở dữ liệu phi tập trung cho các giao dịch tiền tệ thì Ethereum là hệ điều hành phi tập trung chạy các ứng dụng phía máy chủ. Các ứng dụng được triển khai trên chuỗi khối Ethereum được gọi là hợp đồng thông minh.Blockchain Ethereum, với “vốn hóa thị trường” gần 40 tỷ đô la vào tháng 10 năm 2020, là một trong những blockchain công khai nổi tiếng nhất. Nhiều blockchain công khai phổ biến khác, bao gồm ETC, CMT, RSK, Athereum, chuỗi thông minh Binance, hỗ trợ các ứng dụng được viết cho giao thức Ethereum. Nó tương tự như các đám mây công cộng, tất cả đều hỗ trợ các ứng dụng JVM và Node.js trên mạng của họ. Mỗi blockchain tương thích với Ethereum này cạnh tranh về dịch vụ giá trị gia tăng mà chúng cung cấp, chẳng hạn như hiệu suất, chi phí, quyền riêng tư, quản trị, hiệu quả năng lượng, v.v.
Trong hướng dẫn này, chúng tôi sẽ tạo một Dapp truyền thông xã hội tương thích với Ethereum trên blockchain Oasis . Chuỗi khối Oasis được bắt đầu bởi các nhà nghiên cứu bảo mật máy tính nổi tiếng tại Đại học California ở Berkeley. Nó nhằm mục đích xây dựng một blockchain ưu tiên quyền riêng tư, nơi dữ liệu trên chuỗi có thể là riêng tư và bí mật, trong khi tất cả các nút có thể vẫn phi tập trung và không đáng tin cậy. Sau 2 năm phát triển, nhóm đã xây dựng một blockchain công cộng rất nhanh và có thể mở rộng trong khi vẫn bảo toàn quyền riêng tư. Đối với các nhà phát triển, chúng tôi có thể triển khai các ứng dụng Ethereum trên mạng Oasis thông qua các nút Oasis Ethereum ParaTimeBản thân mạng chính Ethereum là nạn nhân của sự phổ biến và thành công của chính nó. Nó thường bị tắc nghẽn dẫn đến phí giao dịch cao và thời gian xác nhận chậm. Đôi khi, nó có giá trên 50 đô la cho mỗi cuộc gọi hàm hợp đồng thông minh và cần vài phút hoặc vài giờ trước khi kết quả cuộc gọi hàm được hoàn thành.
Chuỗi khối Ethereum của Oasis hiện đang được sử dụng miễn phí và xác nhận giao dịch trong 6 giây. Đối với hướng dẫn này, nền tảng Oasis cũng đang cung cấp 50 mã thông báo ROSE , là tiền điện tử gốc của Oasis, cho tất cả những người hoàn thành và xuất bản Dapp của mình.Thuật ngữ Thời gian song song đề cập đến Thời gian chạy song song. Thiết kế của blockchain Oasis cho phép mỗi nút chạy phần mềm thời gian chạy của riêng mình và cung cấp dịch vụ cho công chúng. Oasis Ethereum ParaTime được điều hành bởi một tập hợp các nút Oasis đã chọn hỗ trợ giao thức Ethereum.
Dapp cho các biểu thức miễn phí
Bản chất phi tập trung của blockchain công khai thúc đẩy tự do ngôn luận. Bất kỳ ai cũng có thể ghi dữ liệu trên blockchain bằng cách trả phí giao dịch cho mạng. Tất nhiên, các nhà khai thác và người dùng nút vẫn phải tuân theo các quy định của địa phương. Nhưng như Bitcoin và Ethereum đã cho thấy, các mạng blockchain có khả năng chống kiểm duyệt ở cấp độ giao thức.Mặc dù bất kỳ ai cũng có thể nhận xét về các tin nhắn xuất bản của bạn, nhưng họ sẽ phải trả cho bạn một giá bằng tiền điện tử để được ghi lại tin nhắn của họ. Bạn có thể đặt giá cho tất cả các tin nhắn đã xuất bản của mình. Điều đó làm cho nó tốn kém cho thư rác hoặc ghét.
Chúng tôi đặt tên là Dapp OasisTweet.
Có mưu đồ? Bắt đầu nào.
Tải IDE web
Bạn có thể tải IDE dựa trên web bằng cách truy cập liên kết bên dưới. Không có phần mềm để tải xuống!http://oasiseth.org/dev/hack
Bây giờ bạn có thể thấy hai dự án mẫu. Đầu tiên là một “xin chào thế giới” đơn giản để cho bạn thấy những điều cơ bản về hợp đồng thông minh Ethereum và Dapp. Với mục đích của hướng dẫn này, hãy chọn ứng dụng mẫu thứ hai có tên là OasisTweet.
Hình 1. Chọn dự án OasisTweet.
Nhận một số thử nghiệm OETH từ vòi
Vì đây là lần đầu tiên bạn khởi động IDE này, nó tạo ra một số địa chỉ tài khoản Ethereum mới để bạn sử dụng. Bạn sẽ cần phải có một số mã thông báo OETH trong các tài khoản đó để bạn có thể trả “gas” để triển khai và sử dụng các hợp đồng thông minh của mình. Nhấp vào tab Tài khoản trên IDE và sao chép địa chỉ mặc định đã chọn.Hình 2. Các địa chỉ được tạo tự động.
Tiếp theo, chuyển đến vòi nhà phát triển OETH bên dưới và dán địa chỉ của bạn. Mất khoảng 10 giây để OETH được gửi vào tài khoản của bạn.
http://faucet.oasiseth.org/
Hình 3. Lấy OETH kiểm tra cho địa chỉ tài khoản của bạn.
Hợp đồng thông minh vững chắc
ây giờ, hãy quay lại IDE và xem lại hợp đồng thông minh. Nó được viết bằng một ngôn ngữ lập trình giống JavaScript có tên là Solidity. Tại thời điểm này, phần lớn các hợp đồng thông minh Ethereum được viết bằng Solidity. Nhưng hỗ trợ cho các ngôn ngữ bổ sung sắp ra mắt.Như bạn có thể thấy, nó có các trường dữ liệu cho một URL đến một hình ảnh và tin nhắn văn bản. Hình ảnh và thông điệp sẽ được ghi lại trên blockchain và hiển thị trên trang web Dapp mà bạn tạo sau này.
Nó cũng có một mảng được gọi là
comments
. Nó cho phép bất kỳ người dùng nào để lại nhận xét trên trang web Dapp của bạn. Tuy nhiên, điều quan trọng là phải lưu ý trường giá và
addComment()
chức năng. Người dùng phải trả số tiền xứng đáng với BẠN để có thể để lại nhận xét trên trang của bạn!
contract OasisTweet {
address owner;
string public message;
string public image;
uint256 public price;
struct Comment {
string name;
string comment;
bool isValue;
}
mapping (address => Comment) comments;
... ...
function OasisTweet (string _message, string _image, uint256 _price) public {
owner = msg.sender;
message = _message;
image = _image;
price = _price;
}
function addComment (string _name, string _comment) public payable {
require(msg.value >= price);
if (!comments[msg.sender].isValue) {
addrs.push(msg.sender);
}
comments[msg.sender] = Comment(_name, _comment, true);
}
}
Triển khai hợp đồng thông minh
Nhấp vào nút Biên dịch và IDE biên dịch hợp đồng thông minh thành Ethereum bytecode.Hình 4. Biên dịch hợp đồng thông minh.
Trước khi bạn triển khai hợp đồng với blockchain, hãy điền vào thông điệp, URL hình ảnh và giá bạn yêu cầu cho mỗi nhận xét. Chúng sẽ được lưu trữ trên blockchain cùng với hợp đồng.
Hình 5. Điền thông điệp, URL hình ảnh và giá của bạn trước khi triển khai hợp đồng.
Sau đó nhấp vào nút Triển khai trên chuỗi để triển khai hợp đồng thông minh vào chuỗi khối Oasis Ethereum ParaTime. Sẽ mất khoảng 10 giây để xác nhận hợp đồng bởi các trình xác thực chuỗi khối Oasis. Bạn sẽ thấy thông báo thành công trong bảng nhật ký. Nếu bạn gặp lỗi tại thời điểm này, hãy đảm bảo rằng tài khoản mặc định của bạn có số dư OETH!
Hình 6. Triển khai hợp đồng thành công. Bạn phải có OETH trong địa chỉ mặc định của mình.
Ứng dụng web
Tiếp theo, hãy xây dựng giao diện người dùng web tương tác với hợp đồng thông minh trên chuỗi mà chúng tôi vừa triển khai. Chuyển sang tab Dapp. Phần HTML là trang web. Tất cả các trường dữ liệu như URL hình ảnh, tin nhắn và nhận xét đều là trình giữ chỗ HTML và sẽ được JavaScript điền vào trong tab JS.Hình 7. Ứng dụng web có các phần HTML và JS.
Các
reload()
trong JavaScript tải dữ liệu từ hợp đồng blockchain và điền chúng trên trang HTML. Chú ý đến
instance.addComment()
chức năng. Nó lấy nhận xét của người dùng từ biểu mẫu web và gửi nó đến hợp đồng trong một giao dịch. Trong giao dịch, người dùng phải trả giá OETH cho hợp đồng ngoài phí gas cho nhà mạng.
var contract = web3.ss.contract(abi);
instance = contract.at(cAddr);instance.message(function (e, r) {
$("#message").html(r);
});
instance.image(function (e, r) {
$("#image").prop("src", r);
});
instance.price(function (e, r) {
price = r;
$("#pricealert").html("Requires " + price + " wei to comment");
});instance.addComment ($("#name").val(), $("#comment").val(), {
value: price,
gas: 499000,
gasPrice: 1
}
Dùng thử ứng dụng web
Nhấp vào nút Run trên IDE để chạy ứng dụng web. Bạn sẽ thấy trang web trong bảng điều khiển bên phải của IDE. Bây giờ bạn có thể tương tác với nó bằng cách trả tiền và để lại bình luận.Hình 8. Chạy giao diện người dùng web Dapp trong IDE.
Xuất bản nó
Cuối cùng, bạn đã sẵn sàng xuất bản Dapp của mình! Bạn có thể lấy nội dung HTML và JS và đặt chúng trên bất kỳ máy chủ trang web tĩnh nào. Hoặc, bạn có thể nhấp vào nút Xuất bản trên IDE.Hình 9. Xuất bản trang web Dapp.
Trang web đã xuất bản là một liên kết bạn có thể chia sẻ ở bất cứ đâu . Đối với những người dùng muốn để lại nhận xét, họ sẽ cần một ví MetaMask được kết nối với Oasis Ethereum hoặc tài trợ cho OETH trong địa chỉ mặc định của họ trên trang web.
Hình 10. Tất cả đều có thể truy cập trang web Dapp. Nhưng những người bình luận cần phải trả tiền OETH.
Phần kết luận
Hợp đồng thông minh là chương trình phụ trợ “không có máy chủ” và ứng dụng JavaScript là giao diện người dùng. Nếu bạn muốn tìm hiểu thêm về sự phát triển Ethereum Dapp, bạn có thể xem cuốn sách Xây dựng ứng dụng chuỗi khối của tôi .Trong bài viết này, chúng tôi đã tạo và xuất bản Dapp trên một chuỗi khối công cộng tương thích Ethereum phổ biến. Hãy tiếp tục và thu thập 50 mã thông báo ROSE của bạn . Bạn có thể triển khai thêm mã thông báo ERC-20 từ công cụ BUIDL IDE và giao dịch chúng trên Oasis Ethereum ParaTime’sHủy hoán đổi DEX để kiếm thêm mã thông báo ROSE!