Bài viết chuyên sâu

[Blockchain] CÁCH TIẾP CẬN cho triển khai tạo một mạng chuỗi khối blockchain BẤT KỲ

[Blockchain] CÁCH TIẾP CẬN cho triển khai tạo một mạng chuỗi khối blockchain BẤT KỲ

by Admin Dathoc -
Number of replies: 0

#koolj_blockchainengineering

#howtoblockchain


Chia sẻ [có phí], kèm clip, kèm source code, về quá trình tạo một mạng chuỗi khối blockchain BẤT KỲ. 

.

.

Nhằm để giúp các bạn fans của group tự học, tự tìm hiểu xây dựng mạng chuỗi khối, và áp dụng ngôn ngữ đơn giản (cho người xem dễ hiểu, dễ hình dung, và nếu làm trong công nghiệp, các bạn nên dùng C++, Go hoặc Java)


👉Kiến thức nền về ngôn ngữ tham khảo trong bài này:

- Javascript

- Python


👉Kiến thức cần biết bổ sung trước khi học/tham khảo:

- Câu lệnh điều hành trong Linux Ubuntu

- Dựng và tạo docker; điều hành các docker trong Kubernetes/ K8s

.

.

Như đã chia sẻ các bài trước, theo cá nhân mình hiểu, để tạo/xây dựng/phát triển một mạng chuỗi khối và xử lý các giao dịch trên đó, cần hoàn thành những cụm logic sau (nêu trong dathoc.net/skill, phần blockchain network):

- Logic kết nối p2p giữa các peer với cơ chế tìm ip+port kèm mã hoá rsa qua tpc, udp

- Logic áp dụng database phân tán, và query phân tán

- Logic tạo block lưu xâu chuỗi hash với nhau

- Logic tạo transaction/giao dịch, và gộp trans thành block

- Logic tìm kiếm trên cây nhị phân/ hoặc chỉ mục lucene, tìm kiếm trên RAM trên các mã hash mỗi block, mỗi trans

- Logic xử lý giao dịch, thuật toán đồng thuận cho xử lý nhanh nhất, hiệu quả nhất, đạt tính toán hợp lý nhất, đạt thoả mãn các bên tham gia tính toán nhất

- Logic sync các giá trị tiền điện tử (nếu có), tài sản số (nếu có) sang các bên sở hữu, sau giao dịch, sau sinh block

- Logic sync metadata, block data sang các máy chủ khác/node khác khi thông tin block hoàn thiện

- Logic cho việc đọc, dịch, và chạy các logic smartcontract theo kịch bản trên nền tảng

- Logic phân quyền các bên tham gia tạo smartcontract, và thực thi trans trên smartcontract, tính phí thực thi

- Logic tạo tỷ giá tiền điện tử (nếu có), trên mỗi tài nguyên tiêu tốn trong giao dịch.

.

.

Vậy ở đây xin chia sẻ CÁCH TIẾP CẬN cho triển khai các công đoạn trên qua Python/JS và clipping lại:


👉1. Logic kết nối p2p giữa các peer

- Hoàn toàn bạn có thể áp dụng 2 hoặc 3 hoặc nhiều hơn... công nghệ đang làm mưa gió p2p

- Bạn dùng: K8s và Docker kèm TLS v1.2/RSA

- Bạn dùng: WebRTC kèm TLS v1.2/RSA

- Bạn dùng: JS với IPFS  kèm TLS v1.2/RSA

- Và tính toán gộp phân tán: HDFS hoặc Spark hoặc Java Thread


👉2. Logic áp dụng database phân tán, và query phân tán

- Tất nhiên DB chỉ là lưư và truy cứu hash hoặc metadata của block sau khi được xâu chuỗi file block

- Tất nhiên khi logic load blocks trên database hoặc file i/o nó phải đc đảm bảo các chuỗi xâu gắn kết, mã cuối là mã đầu của một block, mới đọc được. Nếu không xử lý đc logic này thì ..lại trở về bài toán application server client thông thường, và không có gắn kết block

- Bạn dùng: CouchDB hoăc CouchBase và dùng Replica

- Bạn dùng: Scylla DB

- Bạn dùng: Presto queries với DB mà nó tương thích


👉3. Logic tạo block

- Đa phần dùng file và xâu chuỗi. Đôi khi dùng DB xong xâu chuỗi hash phải đảm bảo, mã cuối block trước là mã đầu của block này. Và logic phải đc đọc.

- Gộp các transaction

- Áp dụng logic đồng thuận

- Đưa ra những điều kiện để block được tạo

- Tính toán tài nguyên máy (cpu, ram, space ssd, hdd tiêu tốn)

- Chủ yếu lưu nội dung 1 block trên file io trên hdd/ssd. Và xử lý toàn khối các block trên RAM

- Coding như ảnh kèm

.

.

👉4. Logic tạo transaction/giao dịch, và gộp trans thành block:

- Chủ yếu lưu nội dung xử lý trên RAM

- Tức đây là logic tập hợp thông tin nhiều giao dịch để gộp block

- Ghi nhận chủ mua, chủ bán, loại tài sản, tính toán tài nguyên tiêu hao; ghi thông tin vào metadata trans và đưa vào db

- Cộng dồn vào block


👉5. Logic tìm kiếm trên cây nhị phân/ hoặc chỉ mục lucene

- Đây là cách thức bạn tìm kiếm NHANH NHẤT một thông tin bất kỳ: hash của block, metadata của trans.... trên RAM

- Bạn dùng: Redis Sadd, ElasticSearch

- Bạn dùng: Tree computing


👉6. Logic xử lý giao dịch, thuật toán đồng thuận

- Lựa chọn lấy tài nguyên sẵn có hoặc: thuê thợ đào để tính toán

- Đơn giản nhất, chọn 2-3 nhóm máy tính toán đang gần có ở nơi phát sinh trans để xử lý ngay. Hoặc áp dụng POW (xong bị chậm hoặc quá bảo mật)

- Áp dụng tính toán phân tán (đã nêu trên p2p). Xong áp dụng GPU cho tối ưu.

- Testing với 100 k giao dịch phải xong trong 50 ms. 

.

.

KHÔNG KÊU GỌI Đ.Ầ.U T.Ư T.I.Ề.N Ả.O Ở ĐÂY

👉7. Logic sync các giá trị tiền điện tử (nếu có), tài sản số (nếu có) sang các bên sở hữu, sau giao dịch, sau sinh block

- Tương tự phần (query phân tán - tính toán p2p)


👉8. Logic sync metadata, block data sang các máy chủ khác/node khác

- Tương tự phần (query phân tán - tính toán p2p)


👉9. Logic cho việc đọc, dịch, và chạy các logic smartcontract

- Quá đơn giản khi bạn cho một vài cú pháp nhất định trong ngôn ngữ đang dùng được dịch và được chạy trên nền chuỗi khối đang phát triển

- Quy định rõ phạm vi một logic code chạy trên nền chuỗi khối. Hạn chế dùng biến nhớ toàn cục. Và huỷ lưu đối tượng trên RAM sau xử lý.

.

.

👉10. Logic phân quyền các bên tham gia tạo smartcontract

- Có thể dùng JWT kêt hợp RSA 

- ID validate SMS từ Google hoặc IBM


👉11. Logic tạo tỷ giá tiền điện tử (nếu có)

- Tính toán mỗi block sau khi đc tạo từ smartcontract, tài nguyên tiêu tốn

- Tính giá tiền sở tại (vnd) cho mỗi byte tiêu hao toàn mạng. Ví dụ: block đó mất 30 mb tài nguyên. Vậy mỗi mb là 100 k vnd. Vậy tổng phí: 3 triệu vnd. Vậy có nghĩa. Tổ chức X nếu muốn thực thi block trên, cần nộp phí 3 triệu vnd ( hoặc số ABC coin tương đương).

- Phân bổ số chi phí tính trên mỗi đồng tiền điện tử phát hành: tỷ giá 100k vnd/ 01 ABC coin. Suy ra block trên sẽ được thưởng 10 ABC coin, và mất phí 30 ABC coin. 

- Cần tạo luôn sàn giao dịch để giao dịch mua bán tiền ABC coin.

.

.

Chưa hết,

Còn tạo thêm Bài toán business để áp dụng blockchain network bạn tạo trên. Gọi mua sp. Thu phí và kiếm cơm.

Chưa tới điểm cuối:

Còn kêu gọi tổ chức đổ tiền vào để mạng hoạt động. Gửi lại họ Token để họ tạo smartcontract.

Còn kêu gọi tổ chức PR cho sp.


Thôi một số fans group bảo. Ơ thế anh đã làm được chưa mà cứ...bù lu bù loa ở đây. Tụi e thấy khó quá!

Vậy bạn dùng thử: dathoc.net/nft


-----------------

👉 Sách, kiến thức, demo blockchain: dathoc.net/skill

👉 Donation: dathoc.net/donation

Các fans của group donate sau đó mình gửi link.