Chia Sẻ Kiến Thức Về Tiền Mã Hoá. Cách Tham Gia ICO, Phân Tích Kĩ Thuật, etc. Những Kinh Nghiệm Thật Tình Dựa Trên Trải Nghiệm Thực Tế Nhất Của Người Viết Blog Về Thị Trường Này

Post Page Advertisement [Top]

[Seri Solidity - Ethereum] Bài 4: Giới Thiệu Về Project Xổ Sổ


Đây là một trong những ví dụ điển hình nhất cho tính năng phân quyền của blockchain...



1. Giới thiệu về Project

Về căn bản, xổ số trên blockchain nó sẽ khắc phục được một số nhược điểm của xổ số truyền thống:


  • Trao thưởng công bằng: Ban tổ chức không thể thay đổi số liệu được cho nên trường hợp gian lận rất khó xảy ra
  • Ẩn danh: Tránh được tình trạng nhận vơ "họ hàng" :((, người trúng giải có khi nhà kế bên còn không biết (trừ trường hợp tự mình nói ra :v)

Đó là 2 ưu điểm chính khi ta triển khai nó trên blockchain. Còn cách thức hoạt động của xổ số thì nó hoàn toàn tương tự như ở ngoài đời rồi, mình không nói rõ thêm

2. Cấu trúc smart contract xổ số

Do đây là project đầu tiên của chúng ta trên Solidity nên mình không thêm thắt những tính năng phụ. Sẽ có 3 function chính cho smart contract như sau:


  • function constructor(): Sẽ chạy 1 lần duy nhất khi "đẩy" (publish) contract lên blockchain. Mục đích của function này lưu địa chỉ người tạo contract vào biến manager
  • function enter(): Sẽ yêu cầu người chơi nạp 1 số tiền nhất định để chơi (vé số). Địa chỉ của người tham gia sẽ lưu vào biến players
  • function pickWiner(): Giống như tên gọi, nó sẽ ngẫu nhiên chọn người chiến thắng từ mảng array players. Sau đó reset chương trình để mở kì xổ số mới

Lưu ý: Mình đã nói 1 lần nhưng mình xin nói lại 1 lần nữa là seri này không phù hợp với những ai mới biết đến lập trình. Có rất nhiều những vấn đề mình sẽ chỉ nói sơ qua (do nó tương tự như ngôn ngữ khác). Ở đây mình chỉ tập trung giải thích những đặc trưng của ngôn ngữ Solidity

3. Tổng kết

Như vậy bạn đã có một cái nhìn khái quát về project mà chúng ta sẽ làm. Ở bài viết sau, ta sẽ cùng xây dựng những tính năng đầu tiên cho smart contract

Không có nhận xét nào:

Đăng nhận xét

Bottom Ad [Post Page]