Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Giải thích chi tiết về kiến ​​trúc máy tính chuỗi khối mang tính cách mạng của DFINITY
DfinityFun
特邀专栏作者
2021-01-18 10:05
Bài viết này có khoảng 4586 từ, đọc toàn bộ bài viết mất khoảng 7 phút
Kiến trúc toàn ngăn xếp phi tập trung mang tính cách mạng tích hợp giao diện người dùng và giao diện người dùng phía sau, đồng thời được lưu trữ bởi bộ chứa phần mềm trong một bước.

Lưu ý của biên tập viên: Bài viết này đến từDfinityFun(ID:DfinityFun), được in lại bởi Odaily với sự cho phép.

Lưu ý của biên tập viên: Bài viết này đến từ

, được in lại bởi Odaily với sự cho phép.
Kết thúc: Blockpunk
Cộng đồng: Nutshell Universe (ID: DfinityFun)Máy tính Internet là tên mạng của DFINITY. DFINITY cố gắng sử dụng một giao thức mở được xây dựng trên lớp trên của giao thức IP để phân cấp tài nguyên của tất cả các máy tính chạy giao thức và sử dụng chuỗi khối, mật mã và các công nghệ khác để ảo hóa A an toàn và đáng tin cậy môi trường vận hành phần mềm không yêu cầu các thành phần truyền thống.Xử lý song song, mở rộng năng động và quản trị linh hoạt, những điều này có thể trở thành lợi thế của DFINITY không?

", đây là phần giới thiệu chính thức của DFINITY về cơ sở hạ tầng của nền tảng phát triển máy tính Internet và cách "bộ chứa phần mềm" hợp đồng thông minh thế hệ tiếp theo sáng tạo của DFINITY cho phép các dịch vụ Internet phi tập trung mở rộng quy mô tới hàng tỷ người dùng .

tiêu đề phụ

Hệ thống nơ ron mạng (NNS)

Máy tính Internet dựa trên giao thức điện toán chuỗi khối được gọi là Giao thức máy tính Internet (ICP). Bản thân mạng được thiết kế theo cấu trúc phân cấp. Lớp dưới cùng là một trung tâm dữ liệu độc lập lưu trữ các nút (Nodes) phần cứng chuyên dụng. Các máy nút này được nhóm lại với nhau để tạo ra các mạng con (Subnet). Mạng con chính chạy các bộ chứa phần mềm (Canisters), là các đơn vị tính toán cơ bản có thể tương tác được do người dùng tải lên và các bộ chứa chứa mã và trạng thái.

Điểm độc đáo của ICP là Hệ thống Nơ-ron Mạng (NNS), hệ thống kiểm soát, định cấu hình và quản lý mạng.

NNS cũng đóng một vai trò quan trọng trong nền kinh tế mã thông báo. NNS tạo mã thông báo ICP mới (trước đây gọi là mã thông báo DFN) để thưởng cho các nút. Các nút được chia thành hai loại, một là nút phần cứng chuyên dụng chạy trong trung tâm dữ liệu và loại còn lại là nút nơ-ron biểu quyết được tạo bằng cách đặt cược ICP vào NNS, các nút nơ-ron chi phối các đề xuất trong mạng. Khi NNS phát hành mã thông báo ICP mới để thưởng cho các trung tâm dữ liệu và nơ-ron, đây là một phần của lạm phát.

Cuối cùng, chủ sở hữu trung tâm dữ liệu và chủ sở hữu nơ-ron có thể nhận được mã thông báo ICP và giao dịch với chủ sở hữu và người quản lý vùng chứa. Chủ sở hữu và người quản lý công-te-nơ chuyển đổi các mã thông báo này thành các chu kỳ, sau đó được sử dụng để nạp tiền cho công-te-nơ của họ (tức là phí gas). Ví dụ: khi các vùng chứa này thực hiện tính toán hoặc lưu trữ bộ nhớ, các chu kỳ cần phải được sử dụng trong suốt quá trình. Sau khi các chu kỳ này cạn kiệt, các chu kỳ khác phải được bổ sung để chúng tiếp tục chạy. Đây là phần giảm phát.

tiêu đề phụ

mạng con

Để hiểu máy tính Internet, trước tiên bạn phải hiểu khái niệm về mạng con, là các khối xây dựng cơ bản của toàn bộ mạng. Các mạng con chịu trách nhiệm lưu trữ các tập hợp con khác nhau của bộ chứa phần mềm của mạng máy tính Internet. Dưới sự kiểm soát của NNS, các máy nút được rút ra từ các trung tâm dữ liệu khác nhau được tập hợp lại với nhau để tạo các mạng con. Các nút này hợp tác thông qua ICP để sao chép đối xứng dữ liệu và tính toán liên quan đến vùng chứa phần mềm mà chúng lưu trữ.

NNS kết hợp các nút từ các trung tâm dữ liệu độc lập khi xây dựng mạng con. Bằng cách sử dụng công nghệ chịu lỗi Byzantine và công nghệ mật mã do DFINITY phát triển, giao thức ICP có thể đảm bảo rằng mạng con không bị giả mạo và không bao giờ bị hỏng. Mặc dù các mạng con là một phần cơ bản của mạng máy tính Internet tổng thể, nhưng chúng không phụ thuộc vào người dùng và phần mềm. Người dùng và phần mềm vùng chứa chỉ cần biết danh tính của vùng chứa để gọi các chức năng được chia sẻ của nó.

Sự vô cảm này là một phần mở rộng của các nguyên tắc thiết kế cơ bản của Internet. Trên Internet (truyền thống), nếu người dùng muốn kết nối với một số phần mềm, họ cần biết địa chỉ IP của máy tính chạy phần mềm và cổng TCP mà phần mềm đang nghe. Trên máy tính Internet, nếu người dùng muốn gọi một chức năng, họ chỉ cần biết danh tính của vùng chứa và chữ ký của chức năng. Cũng giống như cách Internet tạo ra các kết nối liền mạch, DFINITY tạo ra một thế giới liền mạch cho phần mềm, nơi bất kỳ phần mềm được cấp phép nào cũng có thể gọi trực tiếp bất kỳ phần mềm nào khác mà không cần biết về hoạt động cơ bản của mạng.

Máy tính Internet cũng đảm bảo mạng con không nhạy cảm theo những cách khác. NNS có thể tách và hợp nhất các mạng con để cân bằng tải trên toàn mạng. Tất nhiên, điều này cũng không bị ảnh hưởng đối với các vùng chứa được lưu trữ.

Trong ví dụ này, chúng tôi có một mạng con ảo ABC lưu trữ 11 bộ chứa phần mềm. NNS cho biết nhu cầu phân chia hiệu suất mở rộng mạng, trong trường hợp đó, mạng con ABC sẽ tiếp tục lưu trữ các vùng chứa 1–6, nhưng đồng thời tạo một mạng con XYZ mới để lưu trữ các vùng chứa 7–11. Trong quá trình mở rộng quy mô, tất cả các vùng chứa liên quan đều không bị gián đoạn dịch vụ.

Mỗi loại mạng con cung cấp các thuộc tính và chức năng nhất định cho vùng chứa của bạn. Ví dụ: nếu vùng chứa của bạn được lưu trữ trong mạng con dữ liệu, thì vùng chứa đó có thể xử lý các cuộc gọi chứ không phải các vùng chứa khác. Để gọi các vùng chứa khác, bạn cần có một mạng con hệ thống. Cần có mạng con đáng tin cậy nếu bạn muốn vùng chứa của mình có thể duy trì số dư mã thông báo ICP hoặc gửi chu kỳ đến các vùng chứa khác. Vì những lý do này, các thùng chứa quản trị chỉ nên được lưu trữ trong các mạng con đáng tin cậy.

Chức năng của mạng con xuất phát một phần từ khả năng chịu lỗi của lớp bên dưới. Đây là lĩnh vực thú vị trong khoa học cơ bản mà chúng tôi hy vọng sẽ sớm chia sẻ với công chúng, bao gồm các kỹ thuật mã hóa mới cho phép NNS sửa chữa các mạng con bị hỏng.

tiêu đề phụ

thùng đựng hàng

Mục đích của mạng con là lưu trữ các vùng chứa. Các vùng chứa chạy trong các trình ảo hóa chuyên dụng và tương tác với các vùng chứa khác thông qua các API được chỉ định công khai. Một bộ chứa chứa mã byte WebAssembly chạy trên máy ảo WebAssembly và các trang dữ liệu trong bộ nhớ chạy bên trong nó. Thông thường, mã byte WebAssembly này được tạo bằng cách biên dịch một ngôn ngữ lập trình như Rust hoặc Motoko. Mã byte này sẽ chứa thời gian chạy cho phép nhà phát triển dễ dàng tương tác với API.

Trên máy tính Internet, có hai cách gọi hàm được chia sẻ bởi vùng chứa: gọi cập nhật hoặc gọi truy vấn. Sự khác biệt cơ bản là khi bạn gọi hàm dưới dạng lệnh gọi cập nhật, bất kỳ thay đổi nào nó thực hiện đối với dữ liệu trong bộ nhớ của bộ chứa vẫn tồn tại, trong khi khi bạn gọi hàm dưới dạng lệnh gọi truy vấn, mọi thay đổi mà hàm thực hiện đối với bộ nhớ sẽ được giữ nguyên. loại bỏ sau khi thực hiện.

Các thay đổi từ các cuộc gọi cập nhật là liên tục và chúng không bị giả mạo vì giao thức máy tính chuỗi khối ICP chạy chúng trên mọi nút trong mạng con. Như bạn có thể mong đợi, các cuộc gọi này theo thứ tự cuộc gọi toàn cầu nhất quán, cho phép thực thi đồng thời trong một môi trường thực thi hoàn toàn xác định. Cuộc gọi cập nhật hoàn tất sau chưa đầy hai giây.

Ngược lại, các cuộc gọi truy vấn không thay đổi liên tục. Bất kỳ thay đổi nào chúng thực hiện đối với bộ nhớ đều bị loại bỏ sau khi chạy. Chúng rất hiệu quả và rẻ, và chỉ mất vài phần nghìn giây để hoàn thành. Điều này là do chúng không chạy trên tất cả các nút trong mạng con, điều đó cũng có nghĩa là chúng cung cấp mức độ bảo mật thấp hơn.

Trong ví dụ này, người dùng đang yêu cầu một trang tin tức tùy chỉnh và nội dung mới được tạo sẽ có sẵn ngay lập tức.

tiêu đề phụ

Lưu trữ tự động, Persistence trực giao

Cách các nhà phát triển bảo quản dữ liệu là một trong những điều thú vị nhất về máy tính internet. Các nhà phát triển không cần phải suy nghĩ về tính bền bỉ, họ chỉ cần viết mã và tính bền bỉ sẽ tự động diễn ra. Điều này được gọi là sự kiên trì trực giao. Điều này là do các máy tính Internet giữ các trang dữ liệu trong bộ nhớ trong các thùng chứa.

Bạn có thể tự hỏi làm thế nào tất cả điều này hoạt động. Bộ chứa là một bộ thực thi phần mềm cho các cuộc gọi cập nhật gây ra những thay đổi đối với các trang dữ liệu bộ nhớ. Điều này có nghĩa là tại bất kỳ thời điểm nào, chỉ có thể có một luồng thực thi bên trong vùng chứa.

Ngược lại, các cuộc gọi truy vấn không tạo ra thay đổi vĩnh viễn nào đối với bộ nhớ. Điều này cho phép bất kỳ số lượng chuỗi đồng thời nào trong vùng chứa xử lý lệnh gọi truy vấn tại bất kỳ thời điểm nào. Các cuộc gọi truy vấn này được chạy dựa trên ảnh chụp nhanh bộ nhớ được xác định cuối cùng được ghi lại trong trạng thái gốc.

Cuối cùng, các thùng chứa có thể tạo các thùng chứa mới và các thùng chứa có thể tự rẽ nhánh. Bạn chỉ cần chỉ định mã byte WebAssembly để tạo vùng chứa mới và trang dữ liệu trong bộ nhớ bắt đầu trống. Khi một bộ chứa rẽ nhánh, một bản sao mới được sinh ra sẽ được tạo giống hệt với các trang bộ nhớ trong. Khi nói đến việc tạo ra các dịch vụ Internet có thể mở rộng, các nhánh cực kỳ mạnh mẽ.

tiêu đề phụ

khả năng mở rộng

Bây giờ hãy nói về khả năng mở rộng của các dịch vụ máy tính trên Internet. Các loại thùng chứa khác nhau có giới hạn dung tích trên của riêng chúng. Ví dụ: một bộ chứa chỉ có thể lưu trữ 4GB bộ nhớ do các giới hạn trong quá trình triển khai WebAssugging. Do đó, khi muốn tạo ra các dịch vụ Internet có thể mở rộng quy mô cho hàng tỷ người dùng, chúng ta phải sử dụng kiến ​​trúc đa vùng chứa.

Chúng tôi có thể muốn tạo một vùng chứa đặc biệt để tạo nhiều bản sao của vùng chứa, sau đó phân chia nội dung người dùng vào các vùng chứa khác nhau để tạo dịch vụ internet có thể mở rộng. Tuy nhiên, kiến ​​trúc này được đơn giản hóa quá mức vì một số lý do.

Đúng là mỗi vùng chứa bổ sung sẽ tăng dung lượng bộ nhớ tổng thể và việc tăng số lượng vùng chứa sẽ làm tăng thông lượng cuộc gọi truy vấn và cập nhật tổng thể, nhưng chúng tôi không thể thay đổi quy mô các yêu cầu cuộc gọi truy vấn cho nội dung người dùng cụ thể. Bất cứ khi nào chúng tôi tăng dung lượng hệ thống bằng cách thêm nhiều phân đoạn vùng chứa, chúng tôi cần cân bằng lại nội dung người dùng, đây không thực sự là một kiến ​​trúc có thể mở rộng ở rìa. Cũng không có cách nào tốt để cung cấp dữ liệu từ bản sao gần nhất cho người dùng cuối tại thời điểm truy vấn. Chúng ta cần một kiến ​​trúc hai tầng, một thùng chứa phía trước và một thùng chứa phía sau.

Internet Computer cung cấp một số tính năng thú vị để neo người dùng cuối vào các vùng chứa phía trước, chẳng hạn như cho phép các tên miền được ánh xạ tới nhiều vùng chứa phía trước thông qua NNS (giống như DNS). Khi người dùng cuối muốn giải quyết một tên miền như vậy, máy tính Internet sẽ xem xét tổng số tất cả các nút bản sao trong tất cả các mạng con lưu trữ vùng chứa phía trước và trả về địa chỉ IP của nút bản sao gần nhất. Điều này dẫn đến việc người dùng cuối thực hiện các truy vấn trên bản sao gần nhất, giảm độ trễ vốn có của mạng và cải thiện trải nghiệm người dùng, mang lại lợi ích của điện toán biên mà không cần mạng phân phối nội dung (CDN).

Để tận dụng tối đa tính năng này, chúng ta cần một cấu trúc hai tầng cổ điển liên quan đến thùng chứa phía trước và thùng chứa thùng phía sau. Trong ví dụ này, trình duyệt web muốn tải ảnh hồ sơ.

Bước 1, trình duyệt web sẽ được ánh xạ tới vùng chứa mặt trước chạy trên mạng con với các nút lân cận. Sau đó, trình duyệt web sẽ gửi các cuộc gọi truy vấn đến các nút gần đó để truy xuất ảnh.

Bước 2, bộ chứa giao diện người dùng sẽ gửi yêu cầu gọi truy vấn bộ chứa chéo đến bộ chứa dữ liệu lưu ảnh.

Bước 3, nếu phản hồi lệnh gọi truy vấn được bộ chứa lưu trữ dữ liệu trả về liên quan đến nội dung tĩnh (chẳng hạn như ảnh), thì dữ liệu có thể được lưu trữ trong bộ nhớ đệm. Trong trường hợp này, nút bản sao đang chạy lệnh gọi truy vấn của bộ chứa giao diện người dùng có thể lưu trữ phản hồi (tức là dữ liệu) của lệnh gọi truy vấn trong bộ đệm truy vấn của nó.

Bước 4, cơ chế lưu trữ cuộc gọi truy vấn hoàn toàn không nhạy cảm với mã vùng chứa giao diện người dùng. Sau khi bộ chứa giao diện người dùng gọi đến đã thu thập tất cả thông tin cần thiết, nó có thể trả về nội dung thông qua phản hồi cuộc gọi truy vấn hoặc yêu cầu HTTP.

Theo thời gian, bộ đệm truy vấn của một nút sẽ tích lũy nội dung tĩnh và tạo dữ liệu mà người dùng gần đó quan tâm, mang lại cho họ trải nghiệm người dùng nhanh hơn và tốt hơn. Theo cách này, kiến ​​trúc cạnh riêng của máy tính Internet cung cấp các lợi thế của mạng phân phối nội dung mà không yêu cầu các nhà phát triển thực hiện bất kỳ điều gì đặc biệt hoặc tranh thủ sự trợ giúp của một dịch vụ độc quyền riêng biệt.

Sau khi UX/UI chạy trên trình duyệt web hoặc điện thoại thông minh đã xác định bộ chứa mặt trước nào chịu trách nhiệm điều phối các thay đổi đối với một số nội dung hoặc dữ liệu, nó có thể gửi lệnh gọi cập nhật thông qua các giao diện tiêu chuẩn để sửa đổi nội dung hoặc dữ liệu.

Sau đó, vùng chứa giao diện người dùng này thường thực hiện nhiều lệnh gọi cập nhật vùng chứa chéo hơn để triển khai các thay đổi mong muốn.

tiêu đề phụ

mở dịch vụ internet

Để tóm tắt, chúng ta hãy thảo luận về thiết kế của các dịch vụ internet mở bằng cách sử dụng kiến ​​trúc hai tầng của bộ chứa mặt trước và bộ chứa dữ liệu phía sau. Đầu tiên, khi bạn viết mã bộ chứa mặt trước của mình, bạn sẽ đơn giản hóa công việc của mình bằng cách sử dụng một lớp thư viện hiện có có tên là BigMap.

chuỗi công khai
nhà phát triển
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina