LapTrinhBlockchain

Chia sẻ kiến thức về Lập Trình Blockchain

Kiến thức Blockchain

Học lập trình trên nền tảng NEAR Blockchain, đồng thời vừa kiếm chứng chỉ NEAR Certified Developer vừa kiếm tiền

Học lập trình trên nền tảng NEAR Blockchain, đồng thời vừa kiếm chứng chỉ NEAR Certified Developer vừa kiếm tiền

Học lập trình trên nền tảng NEAR Blockchain, đồng thời vừa kiếm chứng chỉ NEAR Certified Developer vừa kiếm tiền

Chia sẻ bài viết
5
(89)

Hiện tại bên NEAR đang đẩy mạnh chiến dịch quảng bá nền tảng NEAR tới các Developer trên toàn thế giới thông qua trang Learner NEAR. Bạn vừa tham gia học, vừa nhận chứng chỉ NEAR Certified Developer, vừa có thể được nhận NEAR sau khi hoàn thành khóa học. Đã có nhiều bạn đã hoàn thành khóa học NEAR Certified Developer Level 1 chỉ trong vòng 2 ngày và dành được 100 NEAR (~300$) (Xem chi tiết: Vừa học blockchain vừa được tiền với NEAR)

Học NEAR Certified Developer Level 1  kiếm 100 NEAR
Học NEAR Certified Developer Level 1 kiếm 100 NEAR

Hiện tại mình thấy có hai cách kiếm tiền NEAR từ trang https://learnnear.club/ như sau:

  • Cách 1: Kiếm nLEARN
    • Bạn dùng account NEAR của bạn để đăng ký, sau đó kích vào tất cả các trang trên site => Bạn nhận được khoảng 21 nLEARNs
    • Mỗi ngày bạn vào đăng nhập 1 lần bạn nhận thêm 1 – 2 nLEARN
    • Bạn giới thiệu 1 người vào site bạn được 2 nLEARNs và nếu người đó đăng ký bạn được 16 nLEARNs
    • Thực hiện kết bạn với những người khác để nhận NEAR.
    • Vào ngày 15 hàng tháng, bạn vào trang https://learnnear.club/redeem-nlearns-to-near/ để đổi nLEARNs sang NEAR, tỉ lệ chuyển đổi có thể thay đổi theo thời gian. Mỗi lần claim chỉ được đổi một số lượng nLEARN nhất định, không đổi được nhiều hơn. Sau khi claim thì trong vòng 48h bạn sẽ nhận được NEAR:
    • Tham gia các khóa học đơn giản để lấy nLEARN như Build With NEAR, Berry Club Bot Workshop, How to use NEAR in a game
  • Cách 2: Tham gia học để lấy chứng chỉ
  • Cách 3: Tham gia “NEAR VN Translation” và thực hiện dịch các bài viết của LNC. Mình chưa làm cái này nhưng thấy có nhiều người làm và đã nhận được NEAR. Bạn tham khảo thêm tại địa chỉ: LEARN-NEAR-VIETNAM DAO
Bạn cần đảm bảo đúng Rule để claim được NEAR
Bạn cần đảm bảo đúng Rule để claim được NEAR

Tìm hiểu về NEAR Blockchain

NEAR là blockchain thế hệ thứ 3, ra đời với mục đích giải quyết vấn đề về khả năng mở rộng và cho phép cả người dùng cuối và nhà phát triển tận hưởng toàn bộ tiềm năng của các hợp đồng thông minh và công nghệ blockchain. NEAR thoát khỏi ý tưởng rằng mỗi nút duy nhất tham gia vào mạng phải chạy tất cả mã vì điều đó về cơ bản tạo ra một nút cổ chai lãng phí lớn và làm chậm tất cả các phương pháp tiếp cận khác. Vì thế NEAR không sử dụng công nghệ Layer 2 mà sử dụng kỹ thuật Sharding.

NEAR sử dụng thuật toán đồng thuận PoS được gọi là Nightshade. Trọng lượng của một khối là cổ phần tích lũy của tất cả những người ký có chữ ký được bao gồm trong khối

Trên NEAR mỗi Epoch khoảng 12h:

  • Phần thưởng cho Vadilator được trả sau mỗi Epoch
  • Nếu bạn stake thì bạn phải chờ ít nhất 3 Epoch mới có thể rút ra.

Bạn có thể tham khảo thêm bài viết: NEAR Protocol là gì? Toàn tập về đồng tiền điện tử NEARBài viết về Hệ sinh thái NEAR

Lập trình trên NEAR Blockchain

Tài nguyên hỗ trợ lập trình

Một số trang cũng nhưng các công cụ cơ bản trên NEAR mà các lập trình viên phải biết:

Để lập trình trên NEAR bạn nhớ cài NodeJS phiên bản 12 trở lên.

Học lập trình RUST

Rust có thể nói là một trong những ngôn ngữ lập trình rất hot hiện nay với nhiều vị trí tuyển dụng lương cực cao trong ngành blockchain. Lý do là các hệ sinh thái blockchain thế hệ mới được lập trình trên ngôn ngữ rust rất nhiều như Polkadot – substrate, Solana, NEAR,.. Đây là những hệ sinh thái đang nở rộ với nhiều dapps mới, nghĩa là lượng nhu cầu các nhà phát triển developer trên rust rất nhiều, nhưng số lượng developer trên rust hiện khá ít, chính vì lí do cung cầu này, các blockchain developer giỏi về rust sẽ có rất nhiều cơ hội.

Series Lập trình Rust với Mr Vũ này bao gồm toàn bộ kiến thức từ cơ bản tới nâng cao đảm bảo sau khi hoàn thành khoá học bạn sẽ làm chủ hoàn toàn được Rust Programming Languages.

  • Video 0: Tổng hợp tài liệu từ Cơ bản tới Nâng cao về #RUST
  • Video 1: Những khái niệm chung cơ bản của #RUST
  • Video 2: Chức năng độc đáo – Ownership, Borrowing & Reference, So sánh Rust và C, C++
  • Video 3: Cách sử dụng #Structs trong #RUST
  • Video 4: Cách sử dụng #Enum, Option Enum & Match
  • Video 5: Quản lý dự án và cách sử dụng Packages, Crates, Modules
  • Video 6: Common Collections | Cách sử dụng Vectors, String, và HashMap
  • Video 7: Generic Types video 8: Traits in Rust Video 9: Giải Thích #LifeTime – #Rust

Toàn bộ video xem tại: https://youtu.be/Ed-tnZZJpjc

NEAR Client – Ứng dụng giúp DEV sử dụng lệnh để thao tác với NEAR Network

Để có thể sử dụng các lệnh của NEAR Client bạn cần cài đặt near-cli bằng 1 trong hai lệnh sau:

yarn global add near-cli
npm install -g near-cli

Chi tiết các lệnh bạn xem tại: https://github.com/near/near-cli

Để thao tác đầu tiên bạn cần đăng nhập bằng lệnh sau:

near login

Trình duyệt hiển thị để bạn kết nối tới ví. Các account sau khi kết nối, thông tin được lưu trong thư mục:

  • ~/.near-credentials (MAC / Linux)
  • C:\Users\YOUR_ACCOUNT\.near-credentials (Windows)

Lệnh sau sẽ tạo ra 1 sub account và gửi 1 NEAR từ account chính sang cho nó:

near create-account near-test01.daothang.testnet --masterAccount daothang.testnet --initialBalance 1

Gửi tiền từ 1 account sang 1 account khác bằng lệnh sau:

near send near-test01.daothang.testnet daothang.testnet 99

Lệnh deploy 1 smart contract lên mainnet:

near deploy --accountId example-contract.testnet --wasmFile out/example.wasm
near deploy --accountId example-contract.testnet --wasmFile out/example.wasm --initFunction new --initArgs '{"owner_id": "example-contract.testnet", "total_supply": "10000000"}'

Nếu deploy lên môi trường testnet thì thay deploy bằng dev-deploy.

Gọi hàm (Dạng view – Chỉ lấy dữ liệu) của 1 smart contract:

near view guest-book.testnet getMessages '{}'

Gọi hàm (Thay đổi dữ liệu) của 1 smart contract:

near call guest-book.testnet addMessage '{"text": "Aloha"}' --account-id example-acct.testnet

Và còn rất nhiều lệnh thú vị khác nữa.

near-api-js – Thư viện NodeJs để DEV lập trình kết nối tới NEAR Network

Nếu bạn cần lập trình trên NodeJs để kết nối tới NEAR Blockchain thì thì thư viện near-api-js là rất cần thiết. Trước khi sử dụng trên NodeJs bạn phải cài đặt thư viện này bằng lệnh:

 npm install near-api-js 

Chi tiết cách sử dụng bạn xem tại: NEAR-API-JS Quick Reference. Sử dụng near-api-js bạn có thể lập trình để:

  • Connect tới NEAR Blockchain
  • Tạo account mới, xóa account, lấy thông tin tài sản
  • Triển khai 1 contract, load 1 contract, gọi hàm của contract.
  • Gửi NEAR, gửi token sang account khác.

Bạn có thể sử dụng thư viện này để viết công cụ đơn giản như một bài tập như sau:
Viết công cụ để tự động tạo nhiều Ví trên Testnet, đồng thời sau khi tạo xong thì tự động send NEAR về 1 tài khoản nào đó.

Một số lỗi gặp phải và cách xử lý

ParallelSaveError: Can’t save() the same doc multiple times in parallel

Khi mình gọi hàm createAccount() để tạo account mới trên Testnet thì bị lỗi này. Mình sử dụng giao diện https://wallet.testnet.near.org để tạo ví mới cũng không được và báo lỗi tương tự. Nguyên nhân do hệ thống Testnet đang gặp vấn đề. Sang ngày hôm sau mình chạy lại thì okie.

ERROR: TooManyRequestsError: Rate limit exceeded, retry in 5 minutes

Do một số request như tạo account bị giới hạn. Bạn phải chờ quá thời gian này rùi chạy lại, hoặc chuyển ứng dụng sang IP khác.

Lỗi TotalPrepaidGasExceeded

Nhiều khi từ client gọi hàm trên contract báo lỗi:
No results for “Error: {“kind”:{“ActionsValidation”:{“TotalPrepaidGasExceeded”:{“limit”:300000000000000,”total_prepaid_gas”:10000000000000000}}}}
Mặc dù trước đó gọi vẫn okie. Lúc này nếu bạn thực hiện các lệnh DEPLOY cũng không được.

Bạn đừng lo, lỗi này liên quan đến hạ tầng Testnet của NEAR. Bạn chỉ cần kiên nhẫn chờ đợi 1 vài hôm là được.

Lỗi thư viện NEAR-API-JS xử lý khác nhau khi kiểm tra account tồn tại

Khi viết tool tạo account tự động chạy trên thư viện near-api-js phiên bản 0.35.0 thì chạy rất okie, nhưng khi sử dụng phiên bản 0.41.0 thì không được.

Nguyên nhân là khi kiểm tra một account không tồn tại qua hàm:
await client.account(accountId);
Thì phiên bản 0.35.0 trả về exception, trong khi phiên bản 0.41.0 thì không có exception mà trả về bình thường => Do cách xử lý khác nhau ở các phiên bản nên làm ứng dụng phải sửa theo từng phiên bản tương ứng.

The account nearsms1.near-demo.testnet wouldn’t have enough to cover storage

Khi contract có lượng người dùng nhiều và cần lưu nhiều dữ liệu hơn thì xuất hiện thông báo lỗi:
The account nearsms1.near-demo.testnet wouldn’t have enough to cover storage

The account wouldn't have enough to cover storage
The account wouldn’t have enough to cover storage

Khi đó tôi mới biết rằng, để có storage lưu trữ dữ liệu thì contract phải hold một lượng NEAR nhất định. Càng hold nhiều thì càng được sử dụng nhiều storage.

Để sửa lỗi này, đơn giản bạn chỉ cần gửi thêm NEAR vào contract.

wasm execution failed with error: FunctionCallError(CompilationError(PrepareError(Instantiate)))

Khi mình làm demo project thì mình đã gặp lỗi: “wasm execution failed with error: FunctionCallError(CompilationError(PrepareError(Instantiate)))“. Test trên asembly thì chạy bình thường, nhưng cứ kết nối gọi hàm bất kỳ của smart contract là lại báo lỗi này. Vì lỗi này mình trì hoãn khá lâu cái demo project vì không tìm được cách giải quyết.

Cuối cùng mình hỏi team dev trong group dev-support, một bạn đã giúp mình xử lý vấn đề này. Nguyên nhân là do mình sử dụng hàm Date.now() để lấy thời gian hiện tại, nhưng hàm này lại không hỗ trợ trên NEAR Runtime vì thế nên phát sinh lỗi này. Mình đổi sang sử dụng hàm env.block_timestamp() thì đã okie.

Chinh phục NEAR Certified Developer Level 1 – Ý tưởng đầu tiên trên NEAR: sms-tool

Điều kiện bắt buộc trước khi bạn bắt đầu như sau:

Bây giờ ta bắt đầu làm bài tập đơn giản: Xây dựng app cho phép gửi message giữa các địa chỉ của NEAR. Giao diện hiển thị được Inbox và Sent. Bài tập này được sử dụng để lấy chứng chỉ NEAR Certified Developer Level 1.

Việt Nam có nhiều DEV đạt chứng chỉ:

Một số thông tin khác:

NMS – NEAR Message Service – Mở rộng từ sms-tool để chinh phục NEAR Certified Developer Level 2 Testnet Project Track

Tôi tiếp tục nâng cấp sms-tool thành NMS (NEAR Message Service) để tiếp tục chinh phục “NEAR Certified Developer Level 2 Testnet Project Track“. Mục tiêu chính của phần này là bạn phải triển khai bản Beta Testnet, sau đó làm thế nào để có 100 người sử dụng và thu nhận feedback từ người dùng.

Các bước thực hiện:

NMS - Airdrop Requirements
NMS – Airdrop Requirements

Sau khi hoàn thành khóa học, với sự giúp đỡ của LNC, dự án tiếp tục được NEAR Foundation hỗ trợ 5000$ (589 NEAR) để tiếp tục phát triển dự án.

Ngày 2021-09-17, NEAR Foundation đã gửi 589 NEAR tới địa chỉ learnnear-nms.sputnikdao.near để phục vụ phát triển dự án. Chi tiết giao dịch: https://explorer.mainnet.near.org/transactions/GvRvyW7XQF4M5J4QAaABcPhikW8XYGXRwtLGRnCmyzNk

Dự án cũng đổi địa chỉ Github sang: https://github.com/Learn-NEAR-Club/nms/

Bài viết này có hữu ích với bạn?

Kích vào một biểu tượng ngôi sao để đánh giá bài viết!

Xếp hạng trung bình 5 / 5. Số phiếu: 89

Bài viết chưa có đánh giá! Hãy là người đầu tiên đánh giá bài viết này.

30 Bình luận

  1. oke, cảm ơn bạn. Mới tìm hiểu về dev blockchain, để mình đăng ký học thử xem

  2. Thang Huu

    Admin cho mình hỏi mình đã hoàn thành buổi demo level 1 vào ngày 24 tháng 9, vậy khi nào nhận được kết quả pass hay fail chứng chỉ level 1 vậy ạ?

    • Chỉ sau một vài hôm là có nhé. Bạn có thể kiểm tra trên trang LNC trong mục My Certificates nhé.
      Nếu bạn thấy có Certificates rồi mà chưa thấy tiền về thì có thể lên Discord của LNC để hỏi nhé.

    • Bạn vào đăng nhập vào trang LNC và vào mục Account -> My certificates sẽ thấy nếu có.

  3. Lovelybaby

    Tỷ lệ qui đổi thấp vậy ha bạn ơi? bữa trước mình nghe Anh kia nói 1:1

    • Tỉ lệ quy đổi nLEARN hả bạn. Trước 64 nLEARN đổi được 8 NEAR, nhưng đợt gần đây nhất thì 64 nLEARN chỉ đổi được 4 NEAR thôi. Có thể do giá NEAR giờ đã khác trước rùi.

      • Công

        Xem số dư như thế nào vậy Ad. Em không chỗ xem làm phiền chỉ em với
        Em cảm ơn

    • Huynhatbui

      Cho mình hỏi là lúc kết thúc lv1 để được chứng chỉ thì nó có bài cuối cùng là trình bày gì đó vào ngày demo,bạn có thể hướng dẫn cho mình được không.Cảm ơn

  4. Trang

    Hôm thứ 5 e mới bắt đầu học lv1 của near và bây h đã hoàn thành NCL L1 trong vòng 3 ngày. Thì ngày 15.10 này e đổi qua near được ko hay phải đợi qua ngày 15 tháng sau ạ.
    Và cách đổi như thế nào add hướng dẫn e với ạ. E cảm ơn

  5. Galaxy

    Win 7 chạy chương trình được không bạn? Cách cài chương trình trên Win 7, sau khi cài thì không thấy gì?

  6. Thtng612

    Hôm nay 15/10 mà chưa thấy mở để đổi near nhỉ

  7. Thtng612

    Hnay chưa thấy mở redeem vậy ad

  8. Dong

    Đổi nlearn ra near vào ngày 15 mỗi tháng, vậy khoảng mấy giờ nó mở cho mình đổi vậy anh

    • Lúc 18h VN mình vào thấy mở rùi nhé. Nhưng tháng này yêu cầu cao hơn rồi cần 128 nLEARN. Mình vừa mới claim xong:
      Claim NEAR tháng 10/2021

      • Toàn

        mình Redeem hôm 15 mà hôm nay trong ví near chưa thấy, mình Redeem xong thì near gửi vào đâu vậy ad

  9. Linh

    mình đổi xong mà tận hôm nay vào ví vẫn chưa thấy near, ad có bị vậy k ad

  10. Đêm ngày 2021-10-18, Learn NEAR Club (LNC) có gửi một email với tiêu đề: “Action required: LNC Redeem Agreement“, trong đó có link đến một form để điền thông tin. Mọi người nhớ kiểm tra email và điền thông tin vào nhé.
    Chắc do gần đây nhiều người cheat để kiếm NEAR nên bên LNC càng ngày càng làm chặt hơn.

  11. Tân

    Đâu là điểm khác biệt giữa chứng chỉ tiếng Anh và tiếng Việt vậy anh ơi? Theo anh mình nên học cái nào tốt hơn

  12. Bin Tran

    bạn học giỏi vậy bạn có thể hướng dẫn mình để đạt được như bạn không?

  13. Mr.N

    tôi trưa biết gì thì nên bắt đầu từ đâu để học được LV1

Trả lời

Giao diện bởi Anders Norén