[Tài liệu] Kiến trúc LISK - Phần 3

Thảo luận trong 'LISK' bắt đầu bởi haduzit, 2/3/18. Trả lời: 0 Xem: 1,172.

  1. haduzit
    Lisk sử dụng giải thuật khai thác theo cổ phần ủy viên (DPOS). Theo đó các ủy viên sẽ đảm nhiệm nhiệm vụ tạo ra các khối giao dịch block cho toàn bộ hệ thống trong đó các ủy viên được lựa chọn thông qua một cơ chế bầu chọn có tính cạnh tranh cao. Những cá thể nắm giữ cổ phần sẽ là người bầu chọn cho hệ thống, hiện tại theo thống kê toàn hệ thống có khoảng 101 ủy viên được bầu. Giá trị mỗi phiếu bầu nằm ở số lượng Token LSK mà các cổ đông nắm giữ.

    Kiến trúc LISK - Phần 1
    Kiến trúc LISK - Phần 2

    lisk-p3.jpg
    Xem thêm: Tiền ảo LISK (LSK) là gì

    (tiếp)
    Phần thưởng mạng

    Trong Lisk, có nhiều ưu đãi được cung cấp để làm cho việc vận hành một nút hấp dẫn. Thứ nhất là phần thưởng dành cho việc tạo khối và phần thưởng khác là các khoản phí để bảo vệ mạng lưới.

    1. Phần thưởng tạo khối


    Giống như với bitcoin và gần như tất cả các hệ thống blockchain khác, Lisk trao thưởng cho các nốt tạo khối một lượng token cố định khi mỗi khối được tạo ra theo tỷ lệ được quy định bởi hệ thống. Trong hệ thống của Lisk, tất cả các ủy viên tích cực tham gia thành công đều được thưởng cho việc bảo mật mạng.

    Timeline cho các phần thưởng được biểu diễn dưới đây:
    Phần thưởng Block
    cột mốc quan trọng:[
    500000000, // Phần thưởng ban đầu khi bắt đầu tại block 1,451,520
    400000000, // Mốc 1 bắt đầu ở block 4,451,520
    300000000, // Mốc 2 bắt đầu tại block 7,451,520
    200000000, // Mốc 3 bắt đầu tại block 10,451,520
    100000000 // Mốc 4 bắt đầu ở block 13,451,520
    ],


    Phần thưởng sẽ giảm theo tuyến tính trong suốt lifetime của mạng qua đó tạo ra động lực đáng kể để một ủy viên tham gia tích cực. Phần thưởng sẽ giảm sau mỗi 3.000.000 khối từ khối thưởng ban đầu.

    2. Phí vòng

    Động lực thứ hai được cung cấp bởi hệ thống được tính theo hình thức phí. Vòng giao dịch, được mô tả trong mục 6.1, sẽ kết thúc sau khi số lượng khối được tạo ra theo chỉ định. Trong quá trình kết thúc vòng này, tất cả các khoản phí giao dịch được tổng hợp và sau đó phân chia giữa tất cả các bên tham gia trong vòng. Các khoản phí này có thể cung cấp như một phần thưởng đáng kể cho mỗi bên tham gia bên cạnh khoản thưởng tạo ra block.

    Có thể một ủy viên sẽ kiếm được nhiều cổ phần của các khoản phí này. Điều này có thể xảy ra nếu một đại biểu tạo nhiều khối trong một vòng. Trong hầu hết các trường hợp điều này sẽ ít khi xảy ra, tuy nhiên thỉnh thoảng một nút ủy viên khác có thể bị offline trong slot được chỉ định và sau đó sẽ không thể tạo ra một khối block cho các slot được chỉ định nữa. Điều này có nghĩa là ủy viên bỏ lỡ slot của họ và một ủy viên khác sẽ tạo ra nhiều khối trong vòng đó.

    Giao dịch Không Chấp nhận

    Giao dịch phụ này chứa dữ liệu lịch sử cho các loại giao dịch không còn được hỗ trợ nhưng vẫn hoạt động trong hệ thống. Các giao dịch này tham chiếu đến các hỗ trợ ứng dụng kế thừa nhưng không được sử dụng. Chúng được ghi chép lại để đảm bảo tính đầy đủ, toàn vẹn của dữ liệu.

    1. Giao dịch đăng ký ứng dụng


    Một giao dịch đăng ký ứng dụng (loại 5) là một giao dịch được sử dụng để đăng ký một ứng dụng sẽ được sử dụng cho một sidechain. Xem phần 7 để biết thêm thông tin về các ứng dụng blockchain.

    Các trường sau đây là bắt buộc để tạo ra một giao dịch đăng ký ứng dụng:
    • Danh mục: Danh mục ứng dụng
    • Name: Tên của ưng dụng
    • Type: Loại ứng dụng
    • Link: Liên kết để tải ứng dụng
    Các trường khác có thể có
    • Description: Mô tả ứng dụng
    • Icon: Biểu tượng của ứng dụng
    • Tags: Các thẻ của ứng dụng
    Khi các trường đó đã được xác định thì hệ thống sẽ tính toán khóa công khai của tài khoản và bắt đầu xây dựng khối dữ liệu của giao dịch được mô tả trong hình sau:

    Blocks-Lisk-11.png
    Khối dữ liệu này sau đó được ký sử dụng mã bí mật của tài khoản và chữ ký được gắn vào khối dữ liệu. Hệ thống sẽ tính phí của giao dịch. Trong quá trình thực hiện, phí đăng ký là 500 Lisk.

    Sau đây là một ví dụ về đối tượng JSON sẽ được phát tán tới mạng:
    Mã:
    {
      "type": 5,
      "amount": 0,
      "senderPublicKey": Khóa công khai của người gửi,
      "timestamp": Quãng thời gian,
      "recipientId": null,
      "signature": Chữ ký của khối dữ liệu,
      "ID": Id của giao dịch,
      "fee": 50000000000,
      "senderId": Id của người gửi,
      "asset": {
      "dapp": {
      "category": Các loại của ứng dụng,
      "name": Tên của ưng dụng,
      "type": Loại ứng dụng,
      "link": Liên kết của ứng dụng,
      "description": Mô tả đơn,
      "icon": Biểu tượng của ứng dụng,
      "tags": Các thẻ của ứng dụng
      }
      }
      ...
    }
    
    Kích thước cuối cùng của giao dịch có thể khác nhau tùy thuộc vào lượng nội dung. Nói chung, đối tượng sẽ nằm trong khoảng từ 150 đến 200 byte. Các applicationId sẽ giống hệt với transactionId.

    2. Giao dịch chuyển trong

    Giao dịch chuyển trong In Transfer là một giao dịch được sử dụng để chuyển tiền từ chuỗi chính sang chuỗi phụ của ứng dụng. Để tạo một giao dịch chuyển trong, ba trường sau đây phải được chỉ định:
    • Secret: Mã bí mật của tài khoản
    • Amount: Số lượng Lisk để chuyển
    • dappId: Id của ứng dụng
    Khi các trường này đã được chỉ định, hệ thống có thể tính toán khóa công khai của tài khoản và bắt đầu xây dựng khối dữ liệu của giao dịch với tối đa là 73 byte được mô tả trong hình sau:

    Blocks-Lisk-12.png
    Khối dữ liệu này sau đó được ký sử dụng mã bí mật của tài khoản, và chữ ký được nối vào khối dữ liệu. Hệ thống sau đó sẽ tính phí của giao dịch. Trong quá trình thực hiện, phí chuyển khoản là 0,1 Lisk.

    Sau đây là một biểu diễn đối tượng JSON sẽ được phát tán tới mạng:
    Mã:
    {
      "type": 6,
      "amount": Số tiền chuyển,
      "senderPublicKey": Khóa công khai của người gửi,
      "timestamp": Khung thời gian,
      "recipientId": null,
      "signature": Chữ ký của khối dữ liệu,
      "ID": Id của giao dịch,
      "fee": 10000000,
      "senderId": Id của người gửi,
      "asset": {
      "inTransfer": {
      "dappId": Id của ứng dụng
      }
      }
      ...
    }
    
    Kích thước cuối cùng của giao dịch với một chữ ký sẽ là 136 byte, và với chữ ký thứ hai là 200 byte.

    3. Giao dịch chuyển tiền ngoài

    Giao dịch chuyển tiền ngoài là một giao dịch được sử dụng để chuyển tiền từ chuỗi ứng dụng sang chuỗi chính. Một giao dịch Chuyển tiền ngoài chỉ có thể được tạo ra bởi chủ sở hữu của một ứng dụng.

    Các trường sau đây là bắt buộc để tạo Giao dịch Chuyển tiền ngoài:
    • Secret: Mã bí mật của tài khoản chủ sở hữu ứng dụng
    • RecipientId: Id của người dùng đã rút tiền
    • Amount: Số lượng Lisk để chuyển
    • TransactionId: Id của giao dịch rút tiền trong chuỗi ứng dụng
    • DappId: Id của ứng dụng
    Khi các trường này đã được xác định thì hệ thống sẽ tính toán khóa công khai của tài khoản và bắt đầu xây dựng khối dữ liệu của giao dịch với tối đa là 93 byte.

    Khối dữ liệu này sau đó được ký bằng cách sử dụng mã bí mật của tài khoản và chữ ký được nối vào cuối. Sau đó hệ thống sẽ tính phí của giao dịch. Trong quá trình thực hiện, phí cho một giao dịch chuyển ngoài là 0,1 Lisk.

    Sau đây là một biểu diễn đối tượng JSON sẽ được phát tán tới mạng:
    Mã:
    {
      "type": 7,
      "amount": Số tiền chuyển,
      "senderPublicKey": Khóa công khai của người gửi,
      "timestamp": Quãng thời gian,
      "recipientId": Id của người nhận,
      "signature": Chữ ký của khối dữ liệu,
      "ID": Id của giao dịch,
      "fee": 10000000,
      "senderId": Id của người gửi,
      "asset": {
      "outTransfer": {
      "dappId": Id của ứng dụng,
      "transactionId": Id của giao dịch rút tiền
      }
      }
      ...
    }
    
    Kích thước cuối cùng của giao dịch với chữ ký là 157 byte và với chữ ký thứ hai là 221 byte.

    Nội dung seri
    Kiến trúc LISK - Phần 1
    Kiến trúc LISK - Phần 2
    Kiến trúc LISK - Phần 3

    Nguồn tài liệu https://goo.gl/cVtyD4
     
    #1 haduzit, 2/3/18
    Last edited by a moderator: 30/5/18
    Tags:

Chia sẻ trang này lên mạng xã hội:

Đang tải...