Để quản trị mạng, Klaytn cung cấp các API sau trong phần không gian tên quản trị.
Có ba chế độ quản trị khác nhau tại Klaytn.
Không có: Tất cả các nút tham gia mạng đều có quyền thay đổi cấu hình.
duy nhất: Chỉ một nút được chỉ định có quyền thay đổi cấu hình.
biểu quyết: Tất cả các nút có quyền biểu quyết đều có thể biểu quyết cho một sự thay đổi. Khi tổng số quyền biểu quyết quá bán, một cuộc biểu quyết sẽ được thông qua.
Dựa trên chế độ quản trị, người đề xuất có thể biểu quyết về các tham số mạng như đơn giá, số lượng ngăn xếp tối thiểu, v.v. Để trở thành người đề xuất, các nút ứng viên cần nạp một lượng KLAY tối thiểu. Tất cả các nút hợp cách có thể đề xuất một khối nhưng cơ hội sẽ phụ thuộc vào số lượng nắm giữ.
Khi tính toán tỷ lệ nắm giữ để xác định số lượng vị trí (số lượng cơ hội) để trở thành người đề xuất trong một khoảng thời gian nhất định, Một nút có thể không được phân bổ bất kỳ vị trí nào do làm tròn số. Tuy nhiên, một nút hợp cách đã nạp một lượng KLAY tối thiểu sẽ luôn được đảm bảo một vị trí.
Nghĩa là, nếu một nút không hợp cách - nút này không có đủ số lượng KLAY - thì sẽ không có cơ hội đề xuất cũng như xác thực một khối.
Cảnh báo
Một nút quản trị luôn hợp cách ở chế độ duy nhất như một ngoại lệ.
Một cuộc biểu quyết sẽ được thực hiện khi một khối được đề xuất. Cuộc biểu quyết này được áp dụng sau hai giai đoạn bao gồm cả giai đoạn mà khối được đề xuất. Như một ngoại lệ, chỉ addValidator/removeValidator được áp dụng ngay lập tức.
governance_vote
Phương thức biểu quyết sẽ gửi một phiếu bầu mới. Nếu nút có quyền biểu quyết dựa trên chế độ quản trị thì có thể đặt phiếu bầu. Nếu không, một thông báo lỗi sẽ được trả về và phiếu bầu sẽ bị bỏ qua.
Tham số
Khóa : Tên của tùy chọn cài đặt cấu hình sẽ được thay đổi. Khóa có dạng domain.field
Giá trị : Các loại giá trị khác nhau cho mỗi khóa.
Giá trị trả về
Ví dụ
>governance.vote ("governance.governancemode","ballot")"Phiếu bầu của bạn đã được đặt thành công.">governance.vote ("governance.governingnode","0x12345678990123456789901234567899012345678990")"Phiếu bầu của bạn đã được đặt thành công.">governance.vote("istanbul.epoch",604800)"Phiếu bầu của bạn đã được đặt thành công.">governance.vote("governance.unitprice",25000000000)"Phiếu bầu của bạn đã được đặt thành công.">governance.vote("istanbul.committeesize",7)"Phiếu bầu của bạn đã được đặt thành công.">governance.vote("reward.mintingamount","9600000000000000000")"Phiếu bầu của bạn đã được đặt thành công.">governance.vote("reward.ratio","40/30/30")"Phiếu bầu của bạn đã được đặt thành công.">governance.vote("reward.useginicoeff",false)"Phiếu bầu của bạn đã được đặt thành công."// Nếu nhập sai dữ liệu>governance.vote("reward.ratio",100)"Không thể đặt phiếu bầu của bạn. Vui lòng kiểm tra khóa và giá trị phiếu bầu của bạn">governance.vote("governance.governingnode",1234)"Không thể đặt phiếu bầu của bạn. Vui lòng kiểm tra khóa và giá trị phiếu bầu của bạn"// when `governancemode` is "single" and the node is not `governingnode`>governance.vote("governance.governancemode","ballot")"Bạn không có quyền biểu quyết"
governance_showTally
Thuộc tính showTally cung cấp số phiếu bầu quản trị hiện tại. Thuộc tính này sẽ hiển thị tỷ lệ phê duyệt tổng hợp theo tỷ lệ phần trăm. Khi vượt quá 50%, một cuộc biểu quyết sẽ được thông qua.
Thuộc tính totalVotingPower cung cấp tổng của tất cả quyền biểu quyết mà CN có. Mỗi CN có 1.0 ~ 2.0 quyền biểu quyết. Trong chế độ quản trị "không có", "duy nhất", totalVotingPower không cung cấp bất kỳ thông tin nào.
Tham số
Không có
Giá trị trả về
Ví dụ
// Trong chế độ quản trị "biểu quyết">governance.totalVotingPower32.452// Trong chế độ quản trị "không có", "duy nhất">governance.totalVotingPower"Chế độ quản trị hiện tại không có quyền biểu quyết"
governance_myVotingPower
Thuộc tính myVotingPower cung cấp quyền biểu quyết của nút. Quyền biểu quyết có thể là 1.0 ~ 2.0. Trong chế độ quản trị "không có", "duy nhất", totalVotingPower không cung cấp bất kỳ thông tin nào.
Tham số
Không có
Giá trị trả về
Ví dụ
// Trong chế độ quản trị "biểu quyết">governance.myVotingPower1.323// Trong chế độ quản trị "không có", "duy nhất">governance.myVotingPower"Chế độ quản trị hiện tại không có quyền biểu quyết"
governance_myVotes
Thuộc tính myVotes cung cấp thông tin phiếu bầu của tôi trong một giai đoạn. Mỗi phiếu bầu được lưu trữ trong một khối khi nút của người dùng tạo một khối mới. Sau khi giai đoạn hiện tại kết thúc, thông tin này sẽ bị xóa.
Tham số
Không có
Giá trị trả về
Ví dụ
>governance.vote("governance.governancemode","ballot")"Phiếu bầu của bạn đã được đặt thành công.">governance.myVotes[{ BlockNum:403, Casted:true, Key:"governance.governancemode", Value:"ballot"}]
governance_getChainConfig
getChainConfig trả về cấu hình chuỗi tại một khối cụ thể. Nếu tham số không được đặt, phương pháp này sẽ trả về cấu hình chuỗi tại khối latest.
Tham số
LƯU Ý: Số khối có thể lớn hơn số khối latest, trong trường hợp đó API sẽ trả về giá trị dự kiến dựa trên trạng thái chuỗi hiện tại. Các tham số quản trị trong tương lai có thể thay đổi thông qua các phiếu bầu quản trị bổ sung hoặc các thay đổi trạng thái hợp đồng GovParam.
LƯU Ý: API RPC không còn được sử dụng kể từ v1.11. Tuy nhiên, thuộc tính governance.chainConfig trong bảng điều khiển Klaytn JavaScript đã bị xóa kể từ Klaytn v1.10.2.
LƯU Ý: Trong các phiên bản trước phiên bản Klaytn v1.10.0, API này trả về cấu hình chuỗi ban đầu. Tuy nhiên, do tên dễ gây nhầm lẫn nên nó được cập nhật kể từ phiên bản Klaytn v1.10.0. Để truy vấn cấu hình chuỗi ban đầu, hãy sử dụng chainConfigAt(0) thay thế.
LƯU Ý: Số khối có thể lớn hơn số khối latest, trong trường hợp đó API sẽ trả về giá trị dự kiến dựa trên trạng thái chuỗi hiện tại. Các tham số quản trị trong tương lai có thể thay đổi thông qua các phiếu bầu quản trị bổ sung hoặc các thay đổi trạng thái hợp đồng GovParam.
Thuộc tính nodeAddress cung cấp địa chỉ của nút mà người dùng đang sử dụng. Nó được lấy từ nodekey và được sử dụng để ký các thông báo đồng thuận. Và giá trị "governingnode" phải là một trong những địa chỉ nút của nút xác thực.
getParams trả về các tham số quản trị tại một khối cụ thể.
Tham số
LƯU Ý: Số khối có thể lớn hơn số khối latest, trong trường hợp đó API sẽ trả về giá trị dự kiến dựa trên trạng thái chuỗi hiện tại. Các tham số quản trị trong tương lai có thể thay đổi thông qua các phiếu bầu quản trị bổ sung hoặc các thay đổi trạng thái hợp đồng GovParam.
itemsAt trả về các tham số quản trị tại một khối cụ thể.
API governance_itemsAt sẽ không còn được dùng kể từ Klaytn v1.11 (xem klaytn#1783). Thay vào đó, hãy sử dụng governance_getParams.
Tham số
LƯU Ý: Trong các phiên bản trước phiên bản Klaytn v1.7.0, chỉ có số khối số nguyên, chuỗi "earliest" và "latest" khả dụng.
LƯU Ý: Số khối có thể lớn hơn số khối latest, trong trường hợp đó API sẽ trả về giá trị dự kiến dựa trên trạng thái chuỗi hiện tại. Các tham số quản trị trong tương lai có thể thay đổi thông qua các phiếu bầu quản trị bổ sung hoặc các thay đổi trạng thái hợp đồng GovParam.
pendingChanges trả về danh sách các mục đã nhận đủ số phiếu nhưng chưa hoàn tất. Vào cuối giai đoạn hiện tại, những thay đổi này sẽ được hoàn tất và kết quả sẽ có hiệu lực từ giai đoạn này đến giai đoạn tiếp theo.
Thuộc tính idxCache trả về một mảng idxCache hiện tại trong bộ nhớ đệm. idxCache chứa số khối nơi diễn ra thay đổi về quản trị. Theo mặc định, bộ đệm có thể có tối đa 1000 số khối trong bộ nhớ.
Tham số
Không có
Giá trị trả về
Ví dụ
>governance.idxCache[0,30]
governance_idxCacheFromDb
idxCacheFromDb trả về một mảng chứa tất cả các số khối đã từng có thay đổi quản trị. Kết quả idxCacheFromDb giống hoặc dài hơn kết quả của idxCache
Tham số
Không có
Giá trị trả về
Ví dụ
>governance.idxCacheFromDb[0,30]
governance_itemCacheFromDb
itemCacheFromDb trả về thông tin quản trị được lưu trữ trong khối đã cho. Nếu không có thay đổi nào được lưu trữ trong khối đã cho, hàm sẽ trả về null.
CHUỖI. Một trong ba chế độ quản trị. "không có", "duy nhất", "biểu quyết"
"governance.governingnode"
ĐỊA CHỈ. Địa chỉ của nút quản trị được chỉ định. Địa chỉ này chỉ hoạt động khi chế độ quản trị là "duy nhất" ví dụ:"0xe733cb4d279da696f30d470f8c04decb54fcb0d2"
"governance.unitprice"
SỐ. Giá đơn vị gas. vd: 25000000000
"governance.addvalidator"
ĐỊA CHỈ. Địa chỉ của một ứng viên nút xác thực mới. vd: 0xe733cb4d279da696f30d470f8c04decb54fcb0d2
"governance.removevalidator"
ĐỊA CHỈ. Địa chỉ của nút xác thực hiện tại cần được xóa. vd: 0xe733cb4d279da696f30d470f8c04decb54fcb0d2
"governance.deriveshaimpl"
SỐ. Chính sách tạo hàm băm giao dịch và hàm băm biên lai trong tiêu đề khối. Xem tại đây để biết các tùy chọn khả dụng. vd: 2 (DeriveShaConcat)
"governance.govparamcontract"
ĐỊA CHỈ. Địa chỉ của hợp đồng GovParam. vd: 0xe733cb4d279da696f30d470f8c04decb54fcb0d2
"istanbul.epoch"
SỐ. Khoảng thời gian trong đó các phiếu bầu được thu thập theo khối. Khi khoảng thời gian này kết thúc, tất cả các phiếu bầu chưa được thông qua sẽ bị xóa. vd: 86400
"istanbul.committeesize"
SỐ. Số lượng nút xác thực trong một ủy ban.(sub trong cấu hình chuỗi), ví dụ: 7
"reward.mintingamount"
CHUỖI. Số lượng Peb được tạo khi tạo ra một khối. Giá trị phải ở trong dấu ngoặc kép. vd: "9600000000000000000"
"reward.ratio"
CHUỖI. Tỷ lệ phân phối cho CN/KGF/KIR được phân tách bằng "/". Tổng của tất cả các giá trị phải bằng 100. vd: "50/40/10" nghĩa là CN 50%, KGF 40%, KIR 10%
"reward.kip82ratio"
CHUỖI. Tỷ lệ phân phối của người đề xuất khối cho người nắm giữ được phân tách bằng "/". Tổng của tất cả các giá trị phải bằng "100". Xem KIP-82 để biết thêm chi tiết. vd: "20/80" có nghĩa là người đề xuất nhận 20% trong khi người nắm giữ nhận 80%.
"reward.useginicoeff"
BOOL. Sử dụng hệ số Gini hoặc không. true, false
"reward.deferredtxfee"
BOOL. Cách đưa ra phí giao dịch cho người đề xuất. Nếu true, điều đó có nghĩa là phí tx sẽ được tổng hợp bằng phần thưởng khối và được phân phối cho người đề xuất, KIR và KGF. Nếu false, thì tất cả phí tx sẽ được trao cho người đề xuất. true, false
"reward.minimumstake"
CHUỖI. Lượng Klay cần thiết để trở thành CN (Nút đồng thuận). Giá trị phải ở trong dấu ngoặc kép. ví dụ như "5000000"
"kip71.lowerboundbasefee"
SỐ. Phí cơ sở thấp nhất được phép. Xem KIP-71 để biết thêm chi tiết. vd: 25000000000
"kip71.upperboundbasefee"
SỐ. Phí cơ sở cao nhất được phép. vd: 750000000000
"kip71.gastarget"
SỐ. Gas khối mà phí cơ sở muốn đạt được. Phí cơ sở tăng khi khối cha mẹ chứa nhiều hơn mục tiêu gas và giảm khi khối cha mẹ chứa ít hơn mục tiêu gas. vd: 30000000
"kip71.basefeedenominator"
SỐ. Kiểm soát tốc độ thay đổi phí cơ sở. vd: 20
"kip71.maxblockgasusedforbasefee"
SỐ. Gas khối tối đa nắm được trong tính toán phí cơ sở. vd: 60000000
Chuỗi
Kết quả gửi phiếu bầu
Tally
Giá trị của mỗi phiếu bầu và tỷ lệ tán thành theo tỷ lệ phần trăm
Số thực dấu phẩy động
Tổng quyền biểu quyết hoặc thông báo lỗi
Số thực dấu phẩy động
Quyền biểu quyết của nút hoặc thông báo lỗi
Danh sách phiếu bầu
Trạng thái biểu quyết của nút trong giai đoạn
- BlockNum: Số khối mà phiếu bầu này được lưu trữ
- Bỏ phiếu: Nếu phiếu bầu này được lưu trữ trong một khối hay không
- Khóa/Giá trị: Nội dung biểu quyết
SỐ LƯỢNG | THẺ
Số nguyên hoặc khối thập lục phân hoặc chuỗi "earliest", "latest" hoặc "pending" như trong tham số khối mặc định.
JSON
Cấu hình chuỗi tại số khối đã cho
JSON
Cấu hình chuỗi hiện tại
SỐ LƯỢNG | THẺ
Số nguyên hoặc khối thập lục phân hoặc chuỗi "earliest", "latest" hoặc "pending" như trong tham số khối mặc định.
JSON
Cấu hình chuỗi tại số khối đã cho
ĐỊA CHỈ
20 địa chỉ BYTE của một nút
SỐ LƯỢNG | THẺ
Số nguyên hoặc khối thập lục phân hoặc chuỗi "earliest", "latest" hoặc "pending" như trong tham số khối mặc định.
JSON
tham số quản trị
SỐ LƯỢNG | THẺ
Số nguyên hoặc khối thập lục phân hoặc chuỗi "earliest", "latest" hoặc "pending" như trong tham số khối mặc định.
JSON
mục quản trị
Danh sách phiếu bầu
Các thay đổi hiện đang chờ xử lý bao gồm các khóa và giá trị
Danh sách phiếu bầu
Phiếu bầu hiện tại bao gồm các khóa, giá trị và địa chỉ nút
mảng uint64
Số khối nơi diễn ra thay đổi về quản trị
mảng uint64
Tất cả số khối nơi diễn ra thay đổi về quản trị
uint64
Số khối để truy vấn thay đổi quản trị được thực hiện trong khối.
JSON
Thông tin quản trị được lưu trữ tại một khối nhất định
SỐ LƯỢNG | THẺ
Số nguyên của số khối hoặc chuỗi "earliest", "latest" hoặc "pending" như trong tham số khối mặc định.
JSON
Thông tin nắm giữ
QUANTITY | TAG
Accumulation start (first) block number, inclusive. Integer of a block number, or the string "earliest", "latest" or "pending", as in the default block parameter.
QUANTITY | TAG
Accumulation end (last) block number, inclusive. Integer of a block number, or the string "earliest", "latest" or "pending", as in the default block parameter.