🔏
PexpA
  • Home
  • Knowledge
    • Design Pattern
    • RxJS
    • Computer Graphics
      • Phép biến đổi hình học
    • Javascript
      • Generator function và Yield trong javascript
      • Asynchronous và Synchronous
    • GraphQL
      • Core Concepts
      • Xây dựng GraphQL sử dụng NodeJS
    • Analysis and System Design
    • SEO
    • Database
      • NoSQL
        • MongoDB
      • SQL
    • ReactJS
      • React Fragment
      • Lifecycle trong component
      • HOCs
      • What is Ref ?
      • Context API
      • React Hooks
        • useState Hook
        • useEffect Hook
        • useLayoutEffect Hook
        • Khi nào dùng useLayoutEffect và useEffect
        • useContext Hook
        • useReducer Hook
        • useCallback Hook
        • useMemo Hook
        • useRef Hook
        • Building Your Own Hooks
      • Redux
    • React Native
      • Animations
    • Angular
    • Python
      • Object Oriented Programming
      • Decorator
      • Multi Threading
      • Generators
      • Iterators
    • Java
    • Blockchain
      • Ethereum Development Overview
      • Solidity Document
      • JSON RPC Protocol
  • Package
    • React Router V4
    • API Documentation
      • API Blueprint
      • Swagger
    • Lazyload image
    • React Helmet
    • React Spring
    • React Apollo
    • ImmerJS
    • Styled components
  • Experience
    • Sử dụng Latex trên VSCode
    • Linked List in C++
    • How to using Date, Time, TimeStamp for Java to connect Database
    • Pass props to a component rendered by React Router v4
    • Forking Workflow
  • Deploy
    • Heroku
      • How to deploy React App with Express
      • How to deploy React App with Python
      • How to deploy React App with Java
  • About me
Powered by GitBook
On this page
  • Giới thiệu về Ethereum Stack
  • Level 1: Ethereum Virtual Machine
  • Level 2: Smart Contracts
  • Level 3: Ethereum nodes
  • Level 4: Ethereum Client APIs
  • Level 5: Ứng dụng người dùng cuối

Was this helpful?

  1. Knowledge
  2. Blockchain

Ethereum Development Overview

Ethereum là một nền tảng toàn cầu, phi tập trung cho tiền và các loại ứng dụng mới. Trên Ethereum, bạn có thể viết mã kiểm soát tiền và xây dựng các ứng dụng có thể truy cập được ở mọi nơi.

Giới thiệu về Ethereum Stack

Như bất kỳ software stack nào, Ethererum Stack sẽ khác nhau tùy thuộc vào bất kỳ dự án nào

Để làm ra một ứng dụng hoàn chỉnh, chỉ viết code không thôi là không đủ. Khi cần lưu trữ thông tin, ta phải đưa chúng vào cơ sở dữ liệu. Sau khi đã hoàn thành phần code, ta phải tìm cách deploy nó, tức là đưa code lên một chỗ nào đó để chạy code.

Một chương trình hoàn thiện không chỉ có code, mà còn phải có nền tảng hệ điều hành và những phần mềm đi kèm (web server, cơ sở dữ liệu). Người ta gom những thứ này lại với nhau (giống như ráp Lego ấy), tạo thành technical stack.

Technical Stack, còn gọi là solution stack, là một tập hợp những phần mềm/công nghệ phối hợp chung với nhau, tạo thành một nền tảng để ứng dụng có thể hoạt động được.

Ví dụ: MERN stack sẽ bao gồm các công nghệ: MongoDB, Express, React, Node.JS

Level 1: Ethereum Virtual Machine

EVM là một runtime environment đối với hợp đồng thông minh (smart contracts) trong Ethereum. Toàn bộ hợp đồng thông minh và sự thay đổi trạng thái trên Ethereum Blockchain đều được thực thi bởi transactions. EVM sẽ xử lý toàn bộ transaction đó trên mạng Ethereum.

Với bất kỳ máy ảo nào, EVM tạo ra mức độ trừu tượng giữa executing code và executing machine (một nút Ethereum). Hiện tại EVM đang chạy trên hàng nghìn nút được phân bổ trên khắp thế giới.

Là một nhà phát triển dapp, bạn không cần biết nhiều về EVM ngoài việc nó tồn tại và nó cung cấp năng lượng đáng tin cậy cho tất cả các ứng dụng trên Ethereum mà không quan tâm đến downtime.

Level 2: Smart Contracts

Hợp đồng thông minh là các chương trình thực thi chạy trên chuỗi khối Ethereum.

Hợp đồng thông minh được viết bằng cách sử dụng các ngôn ngữ lập trình cụ thể để biên dịch sang EVM bytecode (bộ chỉ thị máy cấp thấp được gọi là opcodes).

Các hợp đồng thông minh không chỉ đóng vai trò là thư viện mã nguồn mở, về cơ bản chúng còn là các dịch vụ API mở chạy 24/7 và không thể bị gỡ xuống. Hợp đồng thông minh cung cấp các chức năng công khai mà các ứng dụng (dapp) có thể tương tác mà không cần sự cho phép. Bất kỳ ứng dụng nào cũng có thể tích hợp với các hợp đồng thông minh đã triển khai để soạn thảo chức năng (chẳng hạn như nguồn cấp dữ liệu hoặc trao đổi phi tập trung). Bất kỳ ai cũng có thể triển khai các hợp đồng thông minh mới cho Ethereum để thêm chức năng tùy chỉnh nhằm đáp ứng nhu cầu ứng dụng của họ.

Là một nhà phát triển dapp, bạn sẽ chỉ cần viết các hợp đồng thông minh nếu bạn muốn thêm chức năng tùy chỉnh trên chuỗi khối Ethereum. Bạn có thể thấy mình có thể đạt được hầu hết hoặc tất cả các nhu cầu của dự án chỉ bằng cách tích hợp với các hợp đồng thông minh hiện có, chẳng hạn như nếu bạn muốn hỗ trợ thanh toán bằng stablecoin hoặc cho phép trao đổi token phi tập trung.

Level 3: Ethereum nodes

Bằng cách kết nối ứng dụng của bạn với nút Ethereum (thông qua JSON RPC spec), ứng dụng của bạn có thể đọc dữ liệu từ blockchain (chẳng hạn như số dư tài khoản người dùng) cũng như phát các giao dịch mới vào mạng (chẳng hạn như chuyển ETH giữa các tài khoản người dùng hoặc thực thi các chức năng của hợp đồng thông minh).

Level 4: Ethereum Client APIs

đối với các thư viện trong Ethereum Client APIS cho phép các ứng dụng người dùng cuối của bạn kết nối và giao tiếp với chuỗi khối Ethereum.

Nếu ứng dụng giao diện người dùng của bạn là ứng dụng web, bạn có thể chọn npm để cài đặt các gói thư viện ví dụ như: Web3.js hay Ether.js. Hoặc có lẽ bạn sẽ chọn triển khai chức năng này phía máy chủ, sử dụng API Python Web3.py hoặc Java Web3J.

Mặc dù các API này không phải là một phần cần thiết của Ethereum stack nhưng chúng loại bỏ phần lớn sự phức tạp của việc tương tác trực tiếp với một nút Ethereum. Họ cũng cung cấp các chức năng tiện ích (ví dụ: chuyển đổi ETH sang Gwei) để với tư cách là nhà phát triển, bạn có thể dành ít thời gian hơn để xử lý những thứ phức tạp của ứng dụng Ethereum client và dành nhiều thời gian hơn tập trung vào các chức năng ứng dụng mà bạn phát triển.

Level 5: Ứng dụng người dùng cuối

Ở cấp cao nhất của stack là các ứng dụng giao diện người dùng. Đây là những ứng dụng tiêu chuẩn mà bạn thường xuyên sử dụng và xây dựng ngày nay: chủ yếu là ứng dụng web và ứng dụng dành cho thiết bị di động.

PreviousBlockchainNextSolidity Document

Last updated 4 years ago

Was this helpful?