바이프로스트 네트워크
  • 소개
  • 바이프로스트 네트워크 구조
    • 합의
    • 크로스체인 커뮤니케이션 프로토콜 (CCCP)
    • 오라클 서비스
  • 노드 운영 매뉴얼
    • 기본 노드 요구 사항
    • 풀 노드 요구 사항
    • 검증자 계정 관리
    • 운영자 가이드
      • 엔드포인트 (Endpoint) 노드 셋업
        • 도커 셋업
        • Systemd 셋업
      • 검증자 노드 셋업
        • 도커 셋업
        • Systemd 셋업
      • 릴레이어 셋업
        • bifrost-relayer.rs
      • 체인 데이터 스냅샷
      • 문제 해결
        • 테스트넷 체인 동기화 이슈
    • 시스템 모니터링
      • Prometheus and Grafana
      • Sentry
  • 노미네이터
  • 개발자 문서
    • 이더리움 API
      • 프리컴파일 컨트랙트
      • 개발자 라이브러리
      • 개발자 환경
    • 바이프로스트 프리컴파일 컨트랙트
      • 스테이킹
      • 거버넌스
      • 릴레이 매니저
    • 팔렛 인터페이스
      • BfcStaking
      • BfcUtility
      • BfcOffences
      • RelayManager
    • 클라이언트 API
      • JSON-RPC API
        • author
        • chain
        • childstate
        • debug
        • eth
        • grandpa
        • net
        • offchain
        • payment
        • rpc
        • state
        • system
        • trace
        • txpool
        • web3
      • 익스플로러 API
      • 런타임 API
    • 크로스체인 트랜잭션 및 오라클 API
      • 가격 오라클 컨트랙트 API
      • 소켓 컨트랙트 API
    • 바이프로스트 테스트넷 BFC 토큰 수령 방법
  • 거버넌스
  • 보안
  • 토큰 & 자산
    • 유니파이드 토큰
    • 인플레이션 모델
  • Add Network
    • 포키
    • 메타마스크
  • Bridge
    • 브릿지 가이드
      • 바이프로스트 네트워크로 예치
      • 다른 네트워크로 출금
    • 용어
  • Staking
    • 스테이킹 가이드
      • BFC 스테이킹
      • BFC 언스테이크
    • 용어
      • 모든 밸리데이터
      • 스테이킹 현황
  • Language
    • Bifrost Network Guide
Powered by GitBook
On this page
  • Description
  • Extrinsics
  • Storage Values
  • Constants
  1. 개발자 문서
  2. 팔렛 인터페이스

BfcStaking

Description

바이프로스트 노드의 핵심 DPoS (위임 지분 증명) 합의 메커니즘은 pallet_bfc_staking에 정의되어 있습니다. pallet_bfc_staking은 검증자 (validator)와 지명자 (nominator)의 개념을 정의하고 이들의 자체 스테이킹 (self-bonds) 및 지명 (nominations)을 관리하는 사용자 정의 팔렛입니다. 또한 라운드 (rounds) 개념과 라운드 내의 로직도 정의합니다.

Extrinsics

set_staking_expectations(expectations: Range<BalanceOf>)

  • interface: api.tx.bfcStaking.setStakingExpectations

  • summary: 총 스테이킹 기대치를 설정합니다. 이 기대치는 해당 라운드의 발행량을 결정합니다. 오리진은 루트 (root)여야 합니다.

set_inflation(schedule: Range<Perbill>)

  • interface: api.tx.bfcStaking.setInflation

  • summary: 라운드별 인플레이션을 도출하기 위한 연간 인플레이션율을 설정합니다. 오리진은 루트 (root)여야 합니다.

set_max_full_selected(new: u32)

  • interface: api.tx.bfcStaking.setMaxFullSelected

  • summary: 라운드당 선택되는 풀 검증자 후보의 최대 수를 설정합니다. 오리진은 루트 (root)여야 합니다.

set_basic_full_selected(new: u32)

  • interface: api.tx.bfcStaking.setMaxBasicSelected

  • summary: 라운드당 선택되는 기본 검증자 후보의 최대 수를 설정합니다. 오리진은 루트 (root)여야 합니다.

set_min_total_selected(new: u32)

  • interface: api.tx.bfcStaking.setMinTotalSelected

  • summary: 라운드당 선택되는 검증자 후보의 최소 수를 설정합니다. 오리진은 루트 (root)여야 합니다.

set_default_validator_commission(new: Perbill, tier: TierType)

  • interface: api.tx.bfcStaking.setDefaultValidatorCommission

  • summary: 주어진 티어(tier)의 모든 검증자에 대한 기본 수수료율을 설정합니다. 오리진은 루트 (root)여야 합니다.

set_max_validator_commission(new: Perbill, tier: TierType)

  • interface: api.tx.bfcStaking.setMaxValidatorCommission

  • summary: 주어진 티어(tier)의 모든 검증자에 대한 최대 수수료율을 설정합니다. 오리진은 루트 (root)여야 합니다.

set_validator_commission(new: Perbill)

  • interface: api.tx.bfcStaking.setValidatorCommission

  • summary: 주어진 검증자의 수수료율을 설정합니다. 오리진은 컨트롤러 계정 (controller account)이어야 합니다.

set_validator_tier(more: BalanceOf, new: TierType, relayer?: AccountId)

  • interface: api.tx.bfcStaking.setValidatorTier

  • summary: 검증자 후보 티어(tier)를 수정합니다. 실제 상태 반영은 다음 라운드에 적용됩니다. 오리진은 스태시 계정(stash account)이어야 합니다.

set_blocks_per_round(new: u32)

  • interface: api.tx.bfcStaking.setBlocksPerRound

  • summary: 라운드당 블록 수를 설정합니다. 새로운 라운드 길이는 다음 블록에서 즉시 업데이트됩니다. 이는 라운드당 인플레이션 설정도 업데이트합니다. 오리진은 루트 (root)여야 합니다.

set_storage_cache_lifetime(new: u32)

  • interface: api.tx.bfcStaking.setStorageCacheLifetime

  • summary: StorageCacheLifetime 라운드 길이를 설정합니다. 오리진은 루트 (root)여야 합니다.

join_candidates(controller: AccountId, relayer?: AccountId, bond: BalanceOf, candidate_count: u32)

  • interface: api.tx.bfcStaking.joinCandidates

  • summary: 검증자 후보 집합에 합류합니다. 오리진은 스태시 계정 (stash account)이어야 합니다.

schedule_leave_candidates(candidate_count: u32)

  • interface: api.tx.bfcStaking.scheduleLeaveCandidates

  • summary: 후보 집합을 떠날 것을 요청합니다. 성공 시, 해당 계정은 검증자로 선택되는 것을 방지하기 위해 후보 풀에서 즉시 제거됩니다. 오리진은 컨트롤러 계정 (controller account)이어야 합니다.

execute_leave_candidates(candidate_nomination_count: u32)

  • interface: api.tx.bfcStaking.executeLeaveCandidates

  • summary: 후보 떠나기 요청을 실행합니다. 오리진은 스태시 계정 (stash account)이어야 합니다.

cancel_leave_candidates(candidate_count: u32)

  • interface: api.tx.bfcStaking.cancelLeaveCandidates

  • summary: 후보 떠나기 보류 중인 요청을 취소합니다. 오리진은 컨트롤러 계정 (controller account)이어야 합니다.

set_controller(new: AccountId)

  • interface: api.tx.bfcStaking.setController

  • summary: 본딩된 컨트롤러 계정을 (재)설정합니다. 오리진은 본딩된 스태시 계정 (stash account)이어야 합니다. 실제 변경 사항은 다음 라운드 업데이트에 적용됩니다. 오리진은 스태시 계정 (stash account)이어야 합니다.

set_candidate_reward_dst(new_reward_dst: RewardDestination)

  • interface: api.tx.bfcStaking.setCandidateRewardDst

  • summary: 검증자 후보 보상 목적지를 설정합니다. 오리진은 컨트롤러 계정 (controller account)이어야 합니다.

set_nominator_reward_dst(new_reward_dst: RewardDestination)

  • interface: api.tx.bfcStaking.setNominatorRewardDst

  • summary: 지명자 보상 목적지를 설정합니다.

go_offline()

  • interface: api.tx.bfcStaking.goOffline

  • summary: 언본딩 (unbonding) 없이 일시적으로 검증자 후보 집합을 떠납니다. 오리진은 컨트롤러 계정 (controller account)이어야 합니다.

go_online()

  • interface: api.tx.bfcStaking.goOnline

  • summary: 이전에 강제 퇴출되거나 오프라인 상태였던 경우 검증자 후보 집합에 다시 합류합니다. 오리진은 컨트롤러 계정 (controller account)이어야 합니다.

candidate_bond_more(more: BalanceOf)

  • interface: api.tx.bfcStaking.candidateBondMore

  • summary: 검증자 후보의 자체 본딩을 더 늘립니다. 오리진은 스태시 계정 (stash account)이어야 합니다.

schedule_candidate_bond_less(less: BalanceOf)

  • interface: api.tx.bfcStaking.scheduleCandidateBondLess

  • summary: 검증자 후보가 자체 본딩을 줄이도록 요청합니다. 오리진은 컨트롤러 계정 (controller account)이어야 합니다.

execute_candidate_bond_less()

  • interface: api.tx.bfcStaking.executeCandidateBondLess

  • summary: 검증자 후보 자체 본딩 조정을 위한 보류 중인 요청을 실행합니다. 오리진은 스태시 계정 (stash account)이어야 합니다.

cancel_candidate_bond_less()

  • interface: api.tx.bfcStaking.cancelCandidateBondLess

  • summary: 검증자 후보 자체 본딩 조정을 위한 보류 중인 요청을 취소합니다. 오리진은 컨트롤러 계정 (controller account)이어야 합니다.

nominate(candidate: AccountId, amount: BalanceOf, candidate_nomination_count: u32, nomination_count: u32)

  • interface: api.tx.bfcStaking.nominate

  • summary: 주어진 후보자를 지명합니다.

schedule_leave_nominators()

  • interface: api.tx.bfcStaking.scheduleLeaveNominators

  • summary: 지명자 (nominator) 집합을 떠날 것을 요청합니다.

execute_leave_nominators(nomination_count: u32)

  • interface: api.tx.bfcStaking.executeLeaveNominators

  • summary: 지명자 집합을 떠나고 진행 중인 모든 지명을 철회할 권한을 실행합니다.

cancel_leave_nominators()

  • interface: api.tx.bfcStaking.cancelLeaveNominators

  • summary: 지명자 집합을 떠나기 위한 보류 중인 요청을 취소합니다.

schedule_revoke_nomination(validator: AccountId)

  • interface: api.tx.bfcStaking.scheduleRevokeNomination

  • summary: 기존 지명을 철회할 것을 요청합니다.

nominator_bond_more(candidate: AccountId, more: BalanceOf)

  • interface: api.tx.bfcStaking.nominatorBondMore

  • summary: 특정 검증자 후보에게 더 많은 본딩을 합니다.

schedule_nominator_bond_less(candidate: AccountId, less: BalanceOf)

  • interface: api.tx.bfcStaking.scheduleNominatorBondLess

  • summary: 특정 검증자 후보에게 더 적은 본딩을 요청합니다.

execute_nomination_request(candidate: AccountId)

  • interface: api.tx.bfcStaking.executeNominationRequest

  • summary: 기존 지명을 변경하기 위한 보류 중인 요청을 실행합니다.

cancel_nomination_request(candidate: AccountId)

  • interface: api.tx.bfcStaking.cancelNominationRequest

  • summary: 기존 지명 변경 요청을 취소합니다.

Storage Values

Session(): SessionIndex

  • interface: api.query.bfcStaking.session

  • summary: 현재 라운드의 현재 세션 인덱스.

Round(): RoundInfo<T::BlockNumber>

  • interface: api.query.bfcStaking.round

  • summary: 현재 라운드 인덱스 및 특정 정보.

StorageCacheLifetime(): u32

  • interface: api.query.bfcStaking.storageCacheLifetime

  • summary: 스토리지 데이터가 캐시될 수 있는 최대 스토리지 수명.

DefaultFullValidatorCommission(): Perbill

  • interface: api.query.bfcStaking.defaultFullValidatorCommission

  • summary: 풀 검증자를 위한 기본 수수료율.

DefaultBasicValidatorCommission(): Perbill

  • interface: api.query.bfcStaking.defaultBasicValidatorCommission

  • summary: 기본 검증자를 위한 기본 수수료율.

MaxFullValidatorCommission(): Perbill

  • interface: api.query.bfcStaking.maxFullValidatorCommission

  • summary: 풀 검증자를 위한 최대 수수료율.

MaxBasicValidatorCommission(): Perbill

  • interface: api.query.bfcStaking.maxBasicValidatorCommission

  • summary: 기본 검증자를 위한 최대 수수료율.

MaxTotalSelected(): u32

  • interface: api.query.bfcStaking.maxTotalSelected

  • summary: 매 라운드마다 선택되는 최대 노드 후보 수.

MaxFullSelected(): u32

  • interface: api.query.bfcStaking.maxFullSelected

  • summary: 매 라운드마다 선택되는 최대 풀 노드 후보 수.

MaxBasicSelected(): u32

  • interface: api.query.bfcStaking.maxBasicSelected

  • summary: 매 라운드마다 선택되는 최대 기본 노드 후보 수.

MinTotalSelected(): u32

  • interface: api.query.bfcStaking.minTotalSelected

  • summary: 매 라운드마다 선택되는 최소 후보 수.

ProductivityPerBlock(): Perbill

  • interface: api.query.bfcStaking.productivityPerBlock

  • summary: 현재 라운드에서 블록 생산당 생산성 비율.

NominatorState(AccountId): Option<Nominator<AccountId, BalanceOf>>

  • interface: api.query.bfcStaking.nominatorState

  • summary: 계정이 지명자인 경우 해당 계정과 연결된 지명자 상태를 가져오고, 그렇지 않으면 None.

CandidateInfo(AccountId): Option<CandidateMetadata<AccountId, BalanceOf, BlockNumberOf>>

  • interface: api.query.bfcStaking.candidateInfo

  • summary: 계정이 후보자인 경우 해당 계정과 연결된 검증자 후보 정보를 가져오고, 그렇지 않으면 None.

BondedStash(AccountId): Option<AccountId>

  • interface: api.query.bfcStaking.bondedStash

  • summary: 모든 잠긴 "스태시" 계정에서 컨트롤러 계정으로의 매핑.

TopNominations(AccountId): Option<Nominations<AccountId, BalanceOf>>

  • interface: api.query.bfcStaking.topNominations

  • summary: 검증자 후보를 위한 상위 지명.

BottomNominations(AccountId): Option<Nominations<AccountId, BalanceOf>>

  • interface: api.query.bfcStaking.bottomNominations

  • summary: 검증자 후보를 위한 하위 지명.

SelectedCandidates(): Vec<AccountId>

  • interface: api.query.bfcStaking.selectedCandidates

  • summary: 현재 라운드를 위해 선택된 활성 검증자 세트 (풀 및 기본).

SelectedFullCandidates(): Vec<AccountId>

  • interface: api.query.bfcStaking.selectedFullCandidates

  • summary: 현재 라운드를 위해 선택된 활성 풀 검증자 세트.

SelectedBasicCandidates(): Vec<AccountId>

  • interface: api.query.bfcStaking.selectedBasicCandidates

  • summary: 현재 라운드를 위해 선택된 활성 기본 검증자 세트.

CachedSelectedCandidates(): Vec<(RoundIndex, Vec<AccountId>)>

  • interface: api.query.bfcStaking.cachedSelectedCandidates

  • summary: 전 라운드에서 선택된 캐시된 활성 검증자 세트.

Majority(): u32

  • interface: api.query.bfcStaking.majority

  • summary: 현재 활성 검증자 세트의 Majority.

CachedMajority(): Vec<(RoundIndex, u32)>

  • interface: api.query.bfcStaking.cachedMajority

  • summary: 이전 라운드에서 선택된 활성 검증자 세트를 기반으로 캐시된 Majority.

Total(): BalanceOf

  • interface: api.query.bfcStaking.total

  • summary: 이 스테이킹 팔렛(pallet)에 의해 잠긴 총 자본.

CandidatePool(): Vec<Bond<AccountId, BalanceOf>>

  • interface: api.query.bfcStaking.candidatePool

  • summary: 검증자 후보 풀, 각 후보는 총 투표력을 가짐.

AtStake(RoundIndex): ValidatorSnapshot<AccountId, BalanceOf>

  • interface: api.query.bfcStaking.atStake

  • summary: 라운드 시작 시 검증자 지명 스테이크 스냅샷.

TotalAtStake(RoundIndex): Option<TotalSnapshot<BalanceOf>>

  • interface: api.query.bfcStaking.totalAtStake

  • summary: 라운드 시작 시 네트워크 상태 스냅샷.

DelayedPayouts(RoundIndex): Option<DelayedPayout<BalanceOf>>

  • interface: api.query.bfcStaking.delayedPayouts

  • summary: 지연된 보상 지급.

DelayedControllerSets(RoundIndex): Vec<DelayedControllerSet<AccountId>>

  • interface: api.query.bfcStaking.delayedControllerSets

  • summary: 지연된 새 컨트롤러 계정 설정 요청.

Staked(RoundIndex): BalanceOf

  • interface: api.query.bfcStaking.staked

  • summary: 라운드에서 선택된 후보자에 대해 집계된 총 스테이크.

InflationConfig(): InflationInfo<BalanceOf>

  • interface: api.query.bfcStaking.inflationConfig

  • summary: 인플레이션 설정.

Points(RoundIndex): RewardPoint

  • interface: api.query.bfcStaking.points

  • summary: 라운드에서 블록 생산에 대해 검증자에게 부여된 총 점수.

AwardedPts(AccountId): RewardPoint

  • interface: api.query.bfcStaking.awardedPts

  • summary: 라운드당 각 검증자에 대한 점수.

AwardedTokens(): BalanceOf

  • interface: api.query.bfcStaking.awardedTokens

  • summary: 제네시스(genesis) 이후 검증자와 지명자에게 부여된 토큰.

Constants

DefaultBlocksPerSession: u32

  • interface: api.consts.bfcStaking.defaultBlocksPerSession

  • summary: 제네시스 (genesis) 시점의 기본 세션당 블록 수.

DefaultBlocksPerRound: u32

  • interface: api.consts.bfcStaking.defaultBlocksPerRound

  • summary: 제네시스 (genesis) 시점의 기본 라운드당 블록 수.

MinBlocksPerRound: u32

  • interface: api.consts.bfcStaking.minBlocksPerRound

  • summary: 제네시스 (genesis) 시점의 기본 최소 라운드당 블록 수.

StorageCacheLifetimeInRounds: u32

  • interface: api.consts.bfcStaking.storageCacheLifetimeInRounds

  • summary: 특정 스토리지 데이터가 캐시될 수 있는 라운드 기준 최대 수명.

LeaveCandidatesDelay: RoundIndex

  • interface: api.consts.bfcStaking.leaveCandidatesDelay

  • summary: 후보자가 종료 요청을 실행하기 전에 본딩된 상태로 유지되는 라운드 수.

CandidateBondLessDelay: RoundIndex

  • interface: api.consts.bfcStaking.candidateBondLessDelay

  • summary: 후보자가 자체 본딩을 줄이도록 요청한 후 실행 가능해지기까지 기다려야 하는 라운드 수.

LeaveNominatorsDelay: RoundIndex

  • interface: api.consts.bfcStaking.leaveNominatorsDelay

  • summary: 지명자가 종료 요청을 실행하기 전에 본딩된 상태로 유지되는 라운드 수.

RevokeNominationDelay: RoundIndex

  • interface: api.consts.bfcStaking.revokeNominationDelay

  • summary: 지명 철회 요청을 실행하기 전에 지명이 본딩된 상태로 유지되는 라운드 수.

NominationBondLessDelay: RoundIndex

  • interface: api.consts.bfcStaking.nominationBondLessDelay

  • summary: 지명 감소 요청이 실행 가능해지기까지 기다려야 하는 라운드 수.

RewardPaymentDelay: RoundIndex

  • interface: api.consts.bfcStaking.rewardPaymentDelay

  • summary: 블록 저자에게 보상이 지급되는 시점까지의 라운드 수.

DefaultMaxSelectedFullCandidates: u32

  • interface: api.consts.bfcStaking.defaultMaxSelectedFullCandidates

  • summary: 매 라운드마다 선택되는 기본 최대 풀 노드 후보 수.

DefaultMaxSelectedBasicCandidates: u32

  • interface: api.consts.bfcStaking.defaultMaxSelectedBasicCandidates

  • summary: 매 라운드마다 선택되는 기본 최대 기본 노드 후보 수.

DefaultMinSelectedCandidates: u32

  • interface: api.consts.bfcStaking.defaultMinSelectedCandidates

  • summary: 매 라운드마다 선택되는 기본 최소 후보 수 (풀 및 기본).

MaxTopNominationsPerCandidate: u32

  • interface: api.consts.bfcStaking.maxTopNominationsPerCandidate

  • summary: 후보자당 집계되는 최대 상위 지명 수.

MaxBottomNominationsPerCandidate: u32

  • interface: api.consts.bfcStaking.maxBottomNominationsPerCandidate

  • summary: 후보자당 집계되는 최대 하위 지명 수.

MaxNominationsPerNominator: u32

  • interface: api.consts.bfcStaking.maxNominationsPerNominator

  • summary: 지명자당 최대 지명 수.

DefaultFullValidatorCommission: Perbill

  • interface: api.consts.bfcStaking.defaultFullValidatorCommission

  • summary:풀 검증자를 위한 기본 수수료율.

DefaultBasicValidatorCommission: Perbill

  • interface: api.consts.bfcStaking.defaultBasicValidatorCommission

  • summary: 기본 검증자를 위한 기본 수수료율.

MaxFullValidatorCommission: Perbill

  • interface: api.consts.bfcStaking.maxFullValidatorCommission

  • summary: 풀 검증자를 위해 사용 가능한 최대 수수료율.

MaxBasicValidatorCommission: Perbill

  • interface: api.consts.bfcStaking.maxBasicValidatorCommission

  • summary: 기본 검증자를 위해 사용 가능한 최대 수수료율.

MinFullValidatorStk: BalanceOf

  • interface: api.consts.bfcStaking.minFullValidatorStk

  • summary: 라운드의 SelectedCandidates에 포함되기 위한 모든 풀 노드 후보에게 요구되는 최소 스테이크.

MinBasicValidatorStk: BalanceOf

  • interface: api.consts.bfcStaking.minBasicValidatorStk

  • summary: 라운드의 SelectedCandidates에 포함되기 위한 모든 기본 노드 후보에게 요구되는 최소 스테이크.

MinFullCandidateStk: BalanceOf

  • interface: api.consts.bfcStaking.minFullCandidateStk

  • summary: 풀 검증자 후보가 되기 위한 모든 계정에게 요구되는 최소 스테이크.

MinBasicCandidateStk: BalanceOf

  • interface: api.consts.bfcStaking.minBasicCandidateStk

  • summary: 기본 검증자 후보가 되기 위한 모든 계정에게 요구되는 최소 스테이크.

MinNominatorStk: BalanceOf

  • interface: api.consts.bfcStaking.minNominatorStk

  • summary: 온체인에 등록된 모든 계정이 지명자가 되기 위한 최소 스테이크.

Previous팔렛 인터페이스NextBfcUtility

Last updated 8 days ago