Làm chủ Blockchain ngay lập tức phần 2 - triển khai Trí tuệ dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

Làm chủ Blockchain trong thời gian ngắn Phần 2 - Triển khai

Purbaryandi

Trong loạt bài viết này, chúng tôi sẽ xây dựng một loại tiền điện tử đơn giản dựa trên việc triển khai chuỗi khối đơn giản ở Golang trong vòng chưa đầy 5 phút. trước tiên bạn phải cài đặt golang để thực hiện dự án này. đối với trình soạn thảo văn bản, bạn có thể sử dụng bất cứ thứ gì, ở đây tôi sử dụng mã studio trực quan.

Làm chủ Blockchain ngay lập tức phần 2 - triển khai Trí tuệ dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.
nguồn: bitdegree

Bạn đã cài đặt nó? Được rồi, hãy làm đi!

nếu bạn đã tạo dự án, hãy tạo một tập tin main.go . oke hãy viết mã, đầu tiên chúng ta sẽ bắt đầu từ main.go Hãy bắt đầu với phần struct Block của “blockchain”. Trong blockchain, nó chặn lưu trữ thông tin có giá trị. Ví dụ: khối bitcoin lưu trữ các giao dịch, bản chất của bất kỳ loại tiền điện tử nào. Ngoài ra, một khối còn chứa một số thông tin kỹ thuật, như phiên bản của nó, dấu thời gian hiện tại và hàm băm của khối trước đó. Trong bài viết này, chúng tôi sẽ không triển khai khối như được mô tả trong thông số kỹ thuật của blockchain hoặc Bitcoin, thay vào đó, chúng tôi sẽ sử dụng phiên bản đơn giản hóa của nó, chỉ chứa thông tin quan trọng. Đây là những gì nó trông giống như thế này. ở đây chúng ta có một khối cấu trúc:

gõ Khối cấu trúc {

Timestamp là dấu thời gian hiện tại (khi khối được tạo), transactions là thông tin có giá trị thực tế chứa trong khối, prevhas lưu trữ hàm băm của khối trước đó và Hash là hàm băm của khối. Trong đặc tả Bitcoin Timestamp, prevhashHash là các tiêu đề khối, tạo thành cấu trúc dữ liệu riêng biệt và các giao dịch (transaction trong trường hợp của chúng tôi) là một cấu trúc dữ liệu riêng biệt. Vì vậy, chúng tôi đang trộn chúng ở đây để đơn giản.

Vậy làm thế nào để chúng ta tính toán giá trị băm? Cách tính toán băm là một tính năng rất quan trọng của blockchain và chính tính năng này giúp blockchain trở nên an toàn. Vấn đề là tính toán hàm băm là một thao tác khó về mặt tính toán, phải mất một thời gian ngay cả trên các máy tính nhanh (đó là lý do tại sao mọi người mua GPU mạnh để khai thác Bitcoin). Đây là một thiết kế kiến ​​trúc có chủ ý, khiến việc thêm các khối mới trở nên khó khăn, do đó ngăn cản việc sửa đổi chúng sau khi chúng được thêm vào. Chúng ta sẽ thảo luận và triển khai cơ chế này trong một bài viết sau.

Hiện tại, chúng tôi sẽ chỉ lấy các trường khối, nối chúng và tính toán hàm băm SHA-256 trên tổ hợp được nối. Hãy làm điều này trong Newhash phương pháp:

func NewHash(time time.Time, giao dịch []string, prevhash []byte) []byte {

Tiếp theo, theo quy ước Golang, chúng ta sẽ triển khai một hàm giúp đơn giản hóa việc tạo khối và hoàn thiện:

Khối func(giao dịch []chuỗi, prevhash []byte) * Khối {

chúng tôi tiếp tục tạo ra một chức năng in. chức năng in rất hữu ích để in nội dung của từng khối thực hiện giao dịch. đây là mã:

func Print(block *Block) {

Và chức năng giao dịch cho giao dịch in:

Giao dịch func(chặn *Chặn) {

sau khi hoàn thành tất cả các chức năng cần thiết thì chúng ta sẽ sử dụng nó trong chức năng chính:

func main () {

được rồi tất cả code chúng ta đã viết xong. hãy chạy nó bằng cách gõ go run main.go trong terminal. Đầu ra :

Kết luận

Chúng tôi đã xây dựng một nguyên mẫu blockchain rất đơn giản: nó chỉ là một mảng các khối, trong đó mỗi khối có kết nối với khối trước đó. Mặc dù vậy, blockchain thực tế phức tạp hơn nhiều. Trong blockchain của chúng tôi, việc thêm các khối mới rất dễ dàng và nhanh chóng, nhưng trong blockchain thực, việc thêm các khối mới đòi hỏi một số công việc: người ta phải thực hiện một số tính toán nặng trước khi được phép thêm khối (cơ chế này được gọi là Bằng chứng công việc). Ngoài ra, blockchain là một cơ sở dữ liệu phân tán không có người ra quyết định duy nhất. Do đó, một khối mới phải được xác nhận và phê duyệt bởi những người tham gia khác trong mạng (cơ chế này được gọi là đồng thuận). Và chưa có giao dịch nào trong blockchain của chúng tôi!

Source: https://medium.com/@purbaryandi/mastering-blockchain-in-no-time-part-2-implementation-433dc7967fe8?source=rss——cryptocurrency-5

Dấu thời gian:

Thêm từ Trung bình