• Jobs
  • Phát triển nghề nghiệp
    • Remote work
    • Kỹ năng làm việc IT
    • Developer
    • Data Science – Machine Learning – AI
    • IT gurus
    • Business Analyst
    • Project Manager
    • Thiết kế UIUX
    • IT trong công ty non-tech
  • Kỹ năng tìm việc
    • Tìm việc IT cần biết
    • Phỏng vấn IT
    • Câu hỏi phỏng vấn
    • CV xin việc
    • Đàm phán lương
    • Mô tả công việc
  • Công nghệ
    • Công nghệ ứng dụng IT
    • Ngôn ngữ lập trình
    • Kiến thức công nghệ
  • Lương-Xu hướng
    • Lương bổng phúc lợi
No Result
View All Result
  • Jobs
  • Phát triển nghề nghiệp
    • Remote work
    • Kỹ năng làm việc IT
    • Developer
    • Data Science – Machine Learning – AI
    • IT gurus
    • Business Analyst
    • Project Manager
    • Thiết kế UIUX
    • IT trong công ty non-tech
  • Kỹ năng tìm việc
    • Tìm việc IT cần biết
    • Phỏng vấn IT
    • Câu hỏi phỏng vấn
    • CV xin việc
    • Đàm phán lương
    • Mô tả công việc
  • Công nghệ
    • Công nghệ ứng dụng IT
    • Ngôn ngữ lập trình
    • Kiến thức công nghệ
  • Lương-Xu hướng
    • Lương bổng phúc lợi
No Result
View All Result
No Result
View All Result
  • Jobs
  • Phát triển nghề nghiệp
  • Kỹ năng tìm việc
  • Công nghệ
  • Lương-Xu hướng

Dapp là gì và lộ trình để trở thành một nhà phát triển ứng dụng phi tập trung

Thu Ha by Thu Ha
December 16, 2021
in Công nghệ ứng dụng IT, IT resources, Kiến thức công nghệ, Xu hướng công nghệ
0
0
CryptoKitties dapp

Photo by Jeremy Bezanger on Unsplash

1
SHARES
1.9k
VIEWS
Share on FacebookShare on Twitter

Ở Việt Nam, khi nói đến xe máy người ta nghĩ đến xe Honda. Còn khi nói đến tiền điện tử, gần như mọi người sẽ nghĩ đến Bitcoin. Tuy nhiên, bạn không nên bỏ qua Ethereum, vốn đang làm thay đổi, thậm chí có thể gọi là một cuộc cách mạng hóa cách chúng ta nghĩ về các ứng dụng.

Trong bài viết này chúng ta hãy cùng tìm hiểu xem Dapp là gì, các loại ứng dụng dApp được xây dựng trên giao thức Ethereum, đặc điểm của Dapp, và cuối cùng là tìm hiểu lộ trình để trở thành một dApp developer.

Hãy đi sâu vào thế giới của Dapps, và sau đó là những người sẽ tạo ra chúng.

DApp là gì?

DApp là viết tắt của Decentralized Application, tức Ứng dụng phi tập trung hay còn gọi là Ứng dụng phân quyền. DApp là một ứng dụng phần mềm chạy trên một mạng phân tán. Nó không được lưu trữ trên một máy chủ tập trung mà thay vào đó là một mạng phi tập trung ngang hàng. Dapp cũng giống như bất kỳ ứng dụng phần mềm nào khác mà bạn sử dụng. Nó có thể là một trang web hoặc một ứng dụng trên điện thoại của bạn. Điều làm cho Dapp khác với một ứng dụng truyền thống là nó được xây dựng trên một mạng phi tập trung như Ethereum.

Khi bạn tạo các hợp đồng thông minh Ethereum, tức là bạn viết một đoạn code backend cho Dapp. Và trong khi Dapp của bạn sẽ có giao diện người dùng giống như một ứng dụng truyền thống, tất cả hoặc một phần của backend được xây dựng trên Ethereum. Chúng ta có thể hiểu:

Dapp = frontend + smart contract backend

Các backed code được viết bằng ngôn ngữ dành riêng cho Ethereum, chằng hạn như Solidity, Serpent và Vyper. Dưới đây là ví dụ về hợp đồng “Hello World” đơn giản được viết bằng Solidity:

pragma solidity ^0.4.22;

contract helloWorld {
 function printHelloWorld () public pure returns (string) {
   return 'Hello World!';
 }
}

Nếu hợp đồng thông minh được triển khai trên mạng chính của Ethereum (mainnet) hoặc thậm chí là mạng thử nghiệm cục bộ, Dapp của bạn có thể thực thi mã trong hợp đồng thông minh bằng cách gọi hàm printHelloWorld ().

Đối với frontend, bạn có thể sử dụng bất kỳ ngôn ngữ / framework frontend nào mà bạn muốn. Nhưng bạn có thể lưu trữ mã frontend của mình trên các nodes lưu trữ phi tập trung để làm cho cả frontend và backend của bạn được phân tán (decentralized). Các công nghệ lưu trữ phi tập trung có thể kể đến như Swam hay IPFS

Sự phát triển của Dapps có thể coi là một bước tiến hướng tới một tương lai của Internet và có thể gọi là Web 3.0.

app vs dapps
Sự khác nhau giữa ứng dụng truyền thống và dApps

Tại sao lại là Ethereum?

Câu hỏi đặt ra là tại sao lại là Ethereum? Có phải Ethereum là giao thức duy nhất để xây dựng nên các dApps? Câu trả lời là KHÔNG. Có những giao thức khác được sử dụng để xây dựng Dapp, như EOS, NEO, Stellar, Tron và Cardano, nhưng giao thức phổ biến nhất là Ethereum.

Ethereum là một giao thức mạng (network protocol) cho phép người dùng tạo và chạy các hợp đồng thông minh qua một mạng phi tập trung. Hợp đồng thông minh chứa code chạy các hoạt động (operation) cụ thể và tương tác với các hợp đồng thông minh khác và code này được viết bởi các nhà phát triển. Không giống như Bitcoin lưu trữ một số (number), Ethereum lưu trữ mã thực thi (executable code).

Ethereum loại bỏ sự cần thiết của bên thứ ba để xử lý các giao dịch giữa các đồng cấp (peers). Kể từ khi người trung gian được thay thế bằng code, tất cả các loại chi phí được giảm bớt, kể cả thời gian và tiền bạc. Giống như Bitcoin loại bỏ nhu cầu ai đó giữ tiền của bạn, Ethereum loại bỏ sự cần thiết phải có người môi giới giao dịch.

Bây giờ bạn có thể tự hỏi, tất cả các hợp đồng thông minh này ở đâu? Về cơ bản, chúng được lưu trữ trên nhiều node máy tính trên toàn thế giới. Các node này chứa tất cả thông tin của tất cả các hợp đồng thông minh trên thế giới, bao gồm mã, giao dịch, v.v. Chúng hoạt động liên tục để cập nhật thông tin, đảm bảo tất cả chúng đều có cùng một bản sao. Đây là điều khiến các hợp đồng thông minh và tiền điện tử nói chung trở nên phi tập trung.

Và vì tất cả các node đều có thông tin giống nhau và được phổ biến trên toàn thế giới, nên việc loại bỏ một node sẽ không làm gián đoạn việc thực hiện bất kỳ hợp đồng thông minh nào, đảm bảo thời gian hoạt động là cao nhất.

ethereum network
Image: blogs.sap.com

Đặc điểm của DAPPs

Các DAPP thường có các đặc điểm sau:

  • Chúng chạy trên blockchain
  • Code của chúng được tạo thành mã nguồn mở hoạt động độc lập mà không cần bất kỳ cá nhân hoặc nhóm nào kiểm soát phần lớn các token
  • Chúng tạo ra các DAPP tokens để cung cấp giá trị cho các nodes (contributing nodes)
  • Người dùng được cấp quyền truy cập vào chúng để trao đổi token
  • Những người khai thác được thưởng bằng token khi họ đóng góp thành công vào hệ sinh thái

Các loại DAPP

Ethereum mô tả ba danh mục chính của DAPP:

1. Ứng dụng quản lý tiền: người dùng có thể giao dịch với nhau trên mạng blockchain, sử dụng tiền tệ nội tại của nó. Các DAPP này thường có các blockchain riêng và chúng ta thường gọi chúng là tiền điện tử (chẳng hạn như Bitcoin).

2. Các ứng dụng tích hợp tiền với các sự kiện bên ngoài, trong thế giới thực: ví dụ: một công ty hậu cần có thể sử dụng vị trí chip RFID để xác định rằng một lô hàng đã đến cảng, và chỉ sau đó thanh toán cho lô hàng đó. Điều này thậm chí có thể được thực hiện bằng tiền trên blockchain mà không có sự can thiệp của con người, nếu cả người mua và người bán tham gia vào một hợp đồng thông minh.

3. Các tổ chức tự trị phi tập trung (Decentralized Autonomous Organizations – DAO): các tổ chức phi tập trung, không có người lãnh đạo trên blockchain. Những quy tắc này bắt đầu từ quan niệm theo các quy tắc được lập trình xác định về những thực thể nào có thể là thành viên, cách các thành viên có thể bỏ phiếu, những doanh nghiệp hoặc hoạt động nào họ có thể tham gia và cách trao đổi token, quỹ (fund) hoặc giá trị. Sau khi được triển khai, DAPPs hoạt động tự chủ theo các quy tắc của chúng. Các thành viên có thể phân tán  ở bất cứ đâu về mặt địa lý.

Cho đến nay, các công ty khởi nghiệp DAPP (được xây dựng trên các nền tảng blockchain) đã tạo nên phần lớn các ICO. Hầu hết các DAPP Loại 2 và Loại 3 hiện tại đều sử dụng nền tảng Ethereum.

Tại sao DAPP sẽ là tương lai?

DAPP về cơ bản cho phép tất cả backend code và dữ liệu được phân tán, do đó không thể thay đổi và chống giả mạo. Xem xét bản chất phi tập trung của các ứng dụng này cùng với các cơ chế bảo mật dữ liệu blockchain, DAPPs có tiềm năng cho các trường hợp sử dụng khác nhau. Một số lợi ích của việc tạo DAPP thay vì một ứng dụng bình thường bao gồm:

  • Xử lý thanh toán: không cần tích hợp với nhà cung cấp thanh toán tập trung (fiat payment provider) để chấp nhận tiền từ người dùng, vì người dùng có thể giao dịch trực tiếp bằng tiền điện tử
  • Thông tin đăng nhập của người dùng: sử dụng hệ thống khóa công khai và riêng tư, người dùng có thể giao dịch và ràng buộc các phiên người dùng và siêu dữ liệu của họ một cách dễ dàng và với các mức độ ẩn danh khác nhau, loại bỏ nhu cầu đăng ký hoặc quy trình đăng ký kéo dài
  • Tin cậy và khả năng kiểm tra: opensource DAPP code có thể truy cập và dễ hiểu. Tính minh bạch này và tính bảo mật vốn có của dữ liệu được cung cấp tạo ra sự tin cậy trong các ứng dụng. Hồ sơ công khai trên blockchain cũng giúp người dùng hoặc bên thứ ba dễ dàng kiểm tra thông tin giao dịch

Lộ trình để trở thành một dApp developer

Luôn luôn khó để biết bắt đầu việc học các công cụ hoặc công nghệ mới từ đâu. Rất nhiều bài viết và hướng dẫn trên internet có thể làm bạn bối rối. Dưới đây là lộ trình để bạn có thể trở thành một nhà phát triển dApp.

01. Xác định mục tiêu

Nếu bạn muốn học để có thể phát triển dApp mà không xác định thật sự mục tiêu của mình là gì thì đó là một sai lầm lớn. Bạn sẽ rất dễ mất động lực và bạn sẽ không thể về đích. Rất nhiều developer bị thu hút vào thế giới Blockchain vì lợi nhuận điên cuồng của tiền điện tử. Nhưng nếu bạn chỉ dựa vào điều này thì sự phấn khích để học để một nhà phát triển dApp của bạn có thể chỉ tồn tại trong thời gian ngắn. Tốt nhất, bạn nên có ít nhất một động lực khác. Ví dụ:

  • Tham gia vào việc tạo ra những ứng dụng trong một hệ sinh thái mới
  • Thật sự muốn học hỏi những công nghệ mới
  • Muốn tìm những cơ hội nghề nghiệp mới.
  • Thấy được những cơ hội tạo ra những sản phẩm có thể giải quyết được những vấn đề trong thực tế mà các ứng dụng truyền thống không giải quyết được

02. Chọn blockchain

Bạn không cần phải biết mọi Blockchain để trở thành một nhà phát triển Blockchain. Trên thực tế, bạn nên tập trung vào một số công nghệ Blockchain thực sự quan trọng và tránh bị phân tâm quá mức bởi những công nghệ khác. Như trên đã đề cập, có nhiều loại công nghệ khác nhau nhưng phổ biến nhất là Ethereum. Ethereum được xây dựng để giải quyết những hạn chế của Bitcoin và cho phép chạy các chương trình nhỏ được gọi là hợp đồng thông minh. Hãy coi nó như một máy ảo được đặt trên Blockchain. Blockchain đảm bảo tính toàn vẹn của dữ liệu và các hợp đồng thông minh cho phép chạy bất kỳ tính toán tùy ý nào, làm cho Ethereum linh hoạt hơn nhiều so với Bitcoin.

03. Tìm hiểu những ứng dựng dApps hiện có

Có rất nhiều ứng dụng được xây dựng trên Ethereum và thêm nhiều ứng dụng mới được phát hành mỗi ngày.  Một cách tuyệt vời để khám phá các Dapp phổ biến là truy cập trang web danh sách Dapp. Các trang web danh sách Dapp nổi tiếng nhất là StateOfTheDapps  và DappRadar . Lưu ý là StateofTheDapps có cả tiếng Việt

Kho ứng dụng Dapp StateoftheDapps

04. Tìm hiểu về Ethereum

Giao thức Ethereum là nền tảng của các hợp đồng thông minh và Dapp. Bạn cần hiểu những điều cơ bản về Ethereum để hiểu phần còn lại của quá trình phát triển trên Ethereum.  Bạn có thể bắt đầu bằng cách đọc Ethereum white paper, để hiểu tổng quan về Ethereum là gì. Tài liệu được viết bởi Vitalik Buterin, người tạo ra Ethereum.

Nếu bạn muốn đi sâu hơn, bạn cần đọc Ethereum Yellow Paper của Gavin Wood. Tài liệu này đặc tả đặc điểm kỹ thuật được sử dụng bởi các nhà phát triển triển khai giao thức Ethereum. Rất nhiều ký hiệu toán học được sử dụng, và nó không dành cho những người yếu tim. Có thể bạn phải đọc lại nhiều lần để hiểu nó.

Một nguồn khác để tìm hiểu về Ethereum là diễn đàn nghiên cứu Ethereum. Trong diễn đàn, nhóm nghiên cứu của nền tảng Ethereum và Vitalik Buterin thường xuyên thảo luận về những phát triển mới nhất trong giao thức Ethereum. Đó là một nơi tốt để hỏi và đọc về giao thức Ethereum.

Bạn cũng có thể đọc mã nguồn của một số ứng dụng đã triển khai (client). Bạn có thể đọc mã của các ứng dụng client chính như Geth (Go) hoặc Parity (Rust) nhưng chúng có thể không dễ đọc. Bạn cũng có thể  triển khai Python (Trinity) hoặc Javascript.

Cuối cùng, cuốn sách Mastering Ethereum, của Andreas Antonopoulos  và Gavin Wood là cuốn sách rất đáng đọc.

05. Tìm hiểu các công cụ phát triển và các thư viện

Khi phát triển các hợp đồng thông minh và Dapp, bạn sẽ cần các công cụ sau:

  • Solc
  • Web3
  • Remix
  • Truffle
  • Ganache
  • Metamask

06. Tìm hiểu về Smart contract và Solidity

Hợp đồng thông minh là nền tảng xây dựng chính của Dapps. Có những chương trình nhỏ được triển khai trên Ethereum Blockchain chạy tự động sau khi được triển khai. Điều này có nghĩa là sau khi bạn triển khai chúng, mạng sẽ đảm nhận việc chạy các chương trình này và bạn không phải làm gì cả. Nó cũng có nghĩa là sau khi được triển khai, bạn hoàn toàn không có quyền kiểm soát “quản trị viên” đặc quyền đối với chúng ở cấp Ethereum. Ví dụ: bạn không thể sửa đổi mã sau khi nó được triển khai. Nó chỉ chạy mãi mãi, ngoài tầm kiểm soát của bất kỳ ai.

Solidity là ngôn ngữ chính được sử dụng để viết các hợp đồng thông minh. Nó có cú pháp tương tự như Javascript và chúng ta đã đề cập trong bài trước: 7 ngôn ngữ lập trình tốt nhất để phát triển blockchain

Học Solidity là rất quan trọng trong việc trở thành nhà phát triển Blockchain, nhưng điều đó vẫn chưa đủ. Vì hợp đồng thông minh không thân thiện với người dùng nên chúng ta không thể yêu cầu người dùng cuối tương tác trực tiếp với chúng. Thay vào đó, chúng ta cần xây dựng giao diện người dùng dễ sử dụng cho người dùng. Đây là mục đích của Dapps và đó là điều tiếp theo bạn cần học.

07. Xây dựng dApp của chính bạn

Trước khi đọc bài viết này, bạn có thể đã nghe nói về Cryptokitties. Cryptokitties là trò chơi nơi người chơi mua, nhân giống và buôn bán mèo con. Ứng dụng này được xây dựng trên Ethereum và là một ví dụ điển hình về Dapp. Hãy xem cách này hoạt động như thế nào.

  • Đầu tiên, chúng ta có trang web Cryptokitties. Đây là giao diện chính cho người dùng. Phần backend của trang web được triển khai trên các máy chủ riêng và giao diện người dùng là một ứng dụng web thông thường.
  • Sau đó, chúng ta có Metamask. Người chơi Cryptokitties sử dụng Metamask để gửi ether đến Cryptokitties.
  • Cuối cùng, chúng ta có hợp đồng thông minh Cryptokitties, đây là nơi dữ liệu trò chơi được lưu trữ. Ví dụ: nếu người chơi mua một chú mèo con, thông tin này sẽ được lưu trữ trong hợp đồng thông minh Cryptokitties. Hợp đồng thông minh được triển khai trên chuỗi khối Ethereum. Không có bất kỳ máy tính nào có thể nói “Tôi là người duy nhất lưu trữ hợp đồng thông minh” mà thay vào đó, bất kỳ máy tính nào trong mạng Ethereum đều lưu trữ nó.

3 phần này tương tác với nhau để tạo thành Dapp. Để xây dựng Dapp của riêng bạn, bạn cần xây dựng 3 phần này và làm cho chúng giao tiếp với nhau.

Bạn có thể bắt đầu bằng cách làm theo loạt bài hướng dẫn miễn phí về cách xây dựng ứng dụng đơn giản Todo Dapp trên Ethereum. Đây là hướng dẫn 8 bước trong đó chúng ta sẽ xây dựng một Dapp hoàn chỉnh với hợp đồng thông minh và giao diện người dùng, bắt đầu từ hợp đồng thông minh và tất cả các bước lên đến giao diện người dùng.

08. Và cuối cùng, chuẩn bị cho cơ hội mới của bạn

Sau khi đã tìm hiểu các kiến thức và kỹ năng cần có, giờ là lúc bạn tìm cơ hội mới theo mục tiêu của mình đã đặt ra ban đầu (bước 1). Đó có thể là công việc mới hay xây dựng một ứng dụng dApp của riêng mình.

Bạn cũng có thể tham khảo thêm về lộ trình để trở thành một dApp developers theo infograhic dưới đây

Lộ trình để trở thành dapp developer
Nguồn: dApp Developer Roadmap

Bài viết có tham khảo thông tin và sử dụng hình ảnh từ các nguồn sau:

1/ What is a DAPP?

2/ What is a Dapp? A Guide to Ethereum Dapps

3/ How To Become a Blockchain Developer: Step-by-Step Plan

Bạn đánh giá bài viết thế nào?

Average rating 4.8 / 5. Vote count: 14

No votes so far! Be the first to rate this post.

Tags: dappdappskỹ năng lập trình viênlập trình viên phần mềmứng dụng phân quyềnứng dụng phân tánứng dụng phi tập trung
Previous Post

Code refactoring là gì và những kỹ thuật để tái cấu trúc mã nguồn

Next Post

PyTorch và TensorFlow: nên chọn framework nào trong năm 2022?

Thu Ha

Thu Ha

Blogger, writer. 5 year experiences in IT field

Related Posts

Chọn cơ sở dữ liệu

Năm 2023: làm thế nào để chọn đúng cơ sở dữ liệu cho ứng dụng

April 1, 2023
ChatGPT

ChatGPT là gì và những gì bạn cần biết về chatbot này

March 14, 2023
Blockchain api

10 API tốt nhất cho các dự án Blockchain

April 13, 2022
great resignation và các nhà phát triển phần mềm

Làn sóng nghỉ việc ồ ạt và những tác động đối với các nhà phát triển phần mềm

April 4, 2022
serverless developer

Serverless là gì và học gì để làm việc với serverless?

June 2, 2022
Nguyên tắc kiến trúc phần mềm

Các nguyên tắc trong kiến trúc phần mềm để sử dụng hàng ngày

January 9, 2022
Next Post
PyTorch và TensorFlow: nên chọn framework nào trong năm 2022?

PyTorch và TensorFlow: nên chọn framework nào trong năm 2022?

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

About ITGuru.vn

  • Trang Chủ ITguru.vn
  • Về chúng tôi
  • Thỏa thuận sử dụng
  • Quy định bảo mật
  • Quy chế hoạt động
  • Liên hệ ITguru

Nhà tuyển dụng

  • Đăng tuyển

Người tìm việc

  • Việc làm IT
  • About ITguru Blog
  • Viết bài cùng ITguru

© 2022 ITguru.vn - Web site tuyển dụng và phát triển nghề nghiệp IT

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • About ITguru Blog
  • Viết bài cùng ITguru

© 2022 ITguru.vn - Web site tuyển dụng và phát triển nghề nghiệp IT