Testthuthoi
VIP Members
-
26/06/2018
-
31
-
35 bài viết
Thực chiến lập trình core blockchain - MerkleTree
Bài viết có xu hướng cá nhân và nhiều tình tiết ngáo. Nên các bác chịu khó đọc e viết hơi dài.
Tâm sự chút nhỉ: không biết các bác có nhớ được tên tài khoản chém gió của em không testthuthoi. Nếu thấy hay hãy share và like là động lực cho em viết tiếp chứ em post hoài chẳng thấy bình luận buồn!
Đi chém gió về lý thuyết thôi! Bài viết này tập trung vào một thành phần của đồng bitcoin.
Trong cấu trúc của 1 khối dữ liệu điển hình như bitcoin. Một Block còn có một số trường nữa nhưng cái mình cần quan tâm là 6 trường ở dưới đây vì 1 Block chính là giá trị Hash của 6 trường dưới đây. Thuật toán Hash sử dụng ở đây là thuật toán SHA-256. Mình cũng giải thích luôn thuật toán này một chút.
Quan tâm nhất đó chính là Merkle Root là giá trị hash của tất cả các transaction trong Block. Merkle tree, cũng như được biết đến là cây hash nhị phân, là một dạng cấu trúc dữ liệu sử dụng để lưu trữ hash của các thông tin cá nhân trong bộ dữ liệu lớn đồng thời đảm bảo việc xác minh hiệu quả bộ dữ liệu.
Merkle tree được sử dụng như một cơ chế chống phá hoại, đảm bảo rằng bộ dữ liệu không bị thay đổi.
Thôi lý thuyết nấy thôi đi vào lập trình luôn. Các bác cài cắm theo em nhé.
Việc đầu tiên cài Node.Js trên Ubuntu thôi.
Truy cập vào trang chủ rồi thực hiện tải phiên bản dành cho ubuntu nhớ xài 12.13.0 thôi cho ổn định, các bác xài cao hơn lỗi khó fix lắm ☹
Thực hiện cấp quyền 755 cho thư mục /opt
Di chuyển vào thư mục opt:
cd /opt
Thực hiện lệnh cấp quyền đọc ghi cho thư mục này:
Sudo chmod – R 755
Tiếp theo copy file nén vừa tải về vào thư mục /opt:
Tiếp đến trong thư mục /otp chúng ta giải nén:
Tiếp đến chúng ta cài đặt các biến môi trường để Ubuntu biết Node.JS của chúng ta để ở đâu.
Thực hiện lệnh
Sudo nano ~/.profile
Ghi vào file 2 dòng
export NODEJS_HOME=/opt/node-v12.13.0-linux-x64/bin
export PATH=[imath]NODEJS_HOME:[/imath]PATH
Lưu lại và thực hiện lệnh cập nhật lại file biến môi trường.
. ~/.profile
Sau bước đó mà mọi thứ cứ êm xịt thì các bác chạy lệnh Node để kiểm tra xem các bác cài thành công.
Thế là cài xong rồi chuẩn bị cho các công đoạn tiếp theo thôi!
Tiếp đến chúng ta cài npm quản lý các package của node.
Sudo apt-get install npm
Thực hiện tạo ra project node
Npm init
Thực hiện
Npm install merkletreejs
Cài thư viện tạo ra cây merletree.
Để tăng phần thú vị chúng ta sẽ tải file JSON gốc từ dữ liệu của blockchain
https://blockchain.info/block-height/606718?format=json
Chúng ta sẽ code sử dụng thư viện trên tính toán ra merkleroot kiểm tra tính đúng đắn của thư viện.
Thực hiện chạy và kiểm tra nếu đúng sẽ in ra merkel root.
Theo file 606718.json
Hai giá trị hoàn toàn giống nhau như vậy thư viện trên hoàn toàn tin cậy và sử dụng chúc các bác sử dụng được vào dự án lớn.
2 tệp gồm code và file dữ liệu được đính kèm là code.zip bác nào thích thì tải về nghiên cứu nhớ comment cho em vui nhé, buồn tím người.
Tâm sự chút nhỉ: không biết các bác có nhớ được tên tài khoản chém gió của em không testthuthoi. Nếu thấy hay hãy share và like là động lực cho em viết tiếp chứ em post hoài chẳng thấy bình luận buồn!
Đi chém gió về lý thuyết thôi! Bài viết này tập trung vào một thành phần của đồng bitcoin.
Trong cấu trúc của 1 khối dữ liệu điển hình như bitcoin. Một Block còn có một số trường nữa nhưng cái mình cần quan tâm là 6 trường ở dưới đây vì 1 Block chính là giá trị Hash của 6 trường dưới đây. Thuật toán Hash sử dụng ở đây là thuật toán SHA-256. Mình cũng giải thích luôn thuật toán này một chút.
Merkle tree được sử dụng như một cơ chế chống phá hoại, đảm bảo rằng bộ dữ liệu không bị thay đổi.
Thôi lý thuyết nấy thôi đi vào lập trình luôn. Các bác cài cắm theo em nhé.
Việc đầu tiên cài Node.Js trên Ubuntu thôi.
Truy cập vào trang chủ rồi thực hiện tải phiên bản dành cho ubuntu nhớ xài 12.13.0 thôi cho ổn định, các bác xài cao hơn lỗi khó fix lắm ☹
Thực hiện cấp quyền 755 cho thư mục /opt
Di chuyển vào thư mục opt:
cd /opt
Thực hiện lệnh cấp quyền đọc ghi cho thư mục này:
Sudo chmod – R 755
Tiếp đến trong thư mục /otp chúng ta giải nén:
Tiếp đến chúng ta cài đặt các biến môi trường để Ubuntu biết Node.JS của chúng ta để ở đâu.
Thực hiện lệnh
Sudo nano ~/.profile
Ghi vào file 2 dòng
export NODEJS_HOME=/opt/node-v12.13.0-linux-x64/bin
export PATH=[imath]NODEJS_HOME:[/imath]PATH
Lưu lại và thực hiện lệnh cập nhật lại file biến môi trường.
. ~/.profile
Sau bước đó mà mọi thứ cứ êm xịt thì các bác chạy lệnh Node để kiểm tra xem các bác cài thành công.
Tiếp đến chúng ta cài npm quản lý các package của node.
Sudo apt-get install npm
Thực hiện tạo ra project node
Npm init
Thực hiện
Npm install merkletreejs
Cài thư viện tạo ra cây merletree.
Để tăng phần thú vị chúng ta sẽ tải file JSON gốc từ dữ liệu của blockchain
https://blockchain.info/block-height/606718?format=json
Chúng ta sẽ code sử dụng thư viện trên tính toán ra merkleroot kiểm tra tính đúng đắn của thư viện.
Thực hiện chạy và kiểm tra nếu đúng sẽ in ra merkel root.
Theo file 606718.json
Hai giá trị hoàn toàn giống nhau như vậy thư viện trên hoàn toàn tin cậy và sử dụng chúc các bác sử dụng được vào dự án lớn.
2 tệp gồm code và file dữ liệu được đính kèm là code.zip bác nào thích thì tải về nghiên cứu nhớ comment cho em vui nhé, buồn tím người.
Chỉnh sửa lần cuối bởi người điều hành: