mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-11-24 06:25:55 +00:00
name pre change
This commit is contained in:
parent
8608748ac1
commit
54126889c5
@ -13,37 +13,51 @@ import (
|
||||
const (
|
||||
// DefaultServices describes the default services that are supported by
|
||||
// the server.
|
||||
// DefaultServices는 지원되는 기본 서비스를 설명합니다.
|
||||
// 서버.
|
||||
DefaultServices = SFNodeNetwork | SFNodeBloom | SFNodeCF
|
||||
)
|
||||
|
||||
// ServiceFlag identifies services supported by a kaspa peer.
|
||||
// ServiceFlag는 kaspa 피어가 지원하는 서비스를 식별합니다.
|
||||
type ServiceFlag uint64
|
||||
|
||||
const (
|
||||
// SFNodeNetwork is a flag used to indicate a peer is a full node.
|
||||
// ServiceFlag는 kaspa 액세서리가 지원하는 서비스를 정의합니다.
|
||||
SFNodeNetwork ServiceFlag = 1 << iota
|
||||
|
||||
// SFNodeGetUTXO is a flag used to indicate a peer supports the
|
||||
// getutxos and utxos commands (BIP0064).
|
||||
// SFNodeGetUTXO는 피어가 다음을 지원함을 나타내는 데 사용되는 플래그입니다.
|
||||
// getutxos 및 utxos 명령(BIP0064).
|
||||
SFNodeGetUTXO
|
||||
|
||||
// SFNodeBloom is a flag used to indicate a peer supports bloom
|
||||
// filtering.
|
||||
// SFNodeBloom은 피어가 블룸을 지원함을 나타내는 데 사용되는 플래그입니다.
|
||||
// 필터링 중입니다.
|
||||
SFNodeBloom
|
||||
|
||||
// SFNodeXthin is a flag used to indicate a peer supports xthin blocks.
|
||||
// SFNodeXthin은 피어가 xthin 블록을 지원함을 나타내는 데 사용되는 플래그입니다.
|
||||
SFNodeXthin
|
||||
|
||||
// SFNodeBit5 is a flag used to indicate a peer supports a service
|
||||
// defined by bit 5.
|
||||
// SFNodeBit5는 피어가 서비스를 지원함을 나타내는 데 사용되는 플래그입니다.
|
||||
// 비트 5로 정의됩니다.
|
||||
SFNodeBit5
|
||||
|
||||
// SFNodeCF is a flag used to indicate a peer supports committed
|
||||
// filters (CFs).
|
||||
// SFNodeCF는 피어가 커밋을 지원함을 나타내는 데 사용되는 플래그입니다.
|
||||
// 필터(CF).
|
||||
SFNodeCF
|
||||
)
|
||||
|
||||
// Map of service flags back to their constant names for pretty printing.
|
||||
// 서비스 플래그 맵은 예쁜 인쇄를 위해 상수 이름으로 다시 표시됩니다.
|
||||
var sfStrings = map[ServiceFlag]string{
|
||||
SFNodeNetwork: "SFNodeNetwork",
|
||||
SFNodeGetUTXO: "SFNodeGetUTXO",
|
||||
@ -55,6 +69,8 @@ var sfStrings = map[ServiceFlag]string{
|
||||
|
||||
// orderedSFStrings is an ordered list of service flags from highest to
|
||||
// lowest.
|
||||
// OrderedSFStrings는 서비스 플래그를 가장 높은 것부터 순서대로 나열한 목록입니다.
|
||||
// 최저.
|
||||
var orderedSFStrings = []ServiceFlag{
|
||||
SFNodeNetwork,
|
||||
SFNodeGetUTXO,
|
||||
@ -81,6 +97,7 @@ func (f ServiceFlag) String() string {
|
||||
}
|
||||
|
||||
// Add any remaining flags which aren't accounted for as hex.
|
||||
// 16진수로 간주되지 않는 나머지 플래그를 추가합니다.
|
||||
s = strings.TrimRight(s, "|")
|
||||
if f != 0 {
|
||||
s += "|0x" + strconv.FormatUint(uint64(f), 16)
|
||||
@ -90,14 +107,20 @@ func (f ServiceFlag) String() string {
|
||||
}
|
||||
|
||||
// KaspaNet represents which kaspa network a message belongs to.
|
||||
// KaspaNet은 메시지가 속한 Kaspa 네트워크를 나타냅니다.
|
||||
type KaspaNet uint32
|
||||
|
||||
// Constants used to indicate the message kaspa network. They can also be
|
||||
// used to seek to the next message when a stream's state is unknown, but
|
||||
// this package does not provide that functionality since it's generally a
|
||||
// better idea to simply disconnect clients that are misbehaving over TCP.
|
||||
// 메시지 kaspa 네트워크를 나타내는 데 사용되는 상수입니다. 그들은 또한
|
||||
// 스트림 상태를 알 수 없을 때 다음 메시지를 찾는 데 사용되지만,
|
||||
// 이 패키지는 일반적으로 다음과 같은 기능을 제공하므로 해당 기능을 제공하지 않습니다.
|
||||
// TCP를 통해 오작동하는 클라이언트의 연결을 끊는 것이 더 나은 아이디어입니다.
|
||||
const (
|
||||
// Mainnet represents the main kaspa network.
|
||||
// 메인넷은 주요 kaspa 네트워크를 나타냅니다.
|
||||
Mainnet KaspaNet = 0x3ddcf71d
|
||||
|
||||
// Testnet represents the test network.
|
||||
@ -112,6 +135,8 @@ const (
|
||||
|
||||
// bnStrings is a map of kaspa networks back to their constant names for
|
||||
// pretty printing.
|
||||
// bnStrings는 kaspa 네트워크의 상수 이름으로 돌아가는 맵입니다.
|
||||
// 예쁜 인쇄.
|
||||
var bnStrings = map[KaspaNet]string{
|
||||
Mainnet: "Mainnet",
|
||||
Testnet: "Testnet",
|
||||
@ -120,6 +145,7 @@ var bnStrings = map[KaspaNet]string{
|
||||
}
|
||||
|
||||
// String returns the KaspaNet in human-readable form.
|
||||
// 문자열은 사람이 읽을 수 있는 형식으로 KaspaNet을 반환합니다.
|
||||
func (n KaspaNet) String() string {
|
||||
if s, ok := bnStrings[n]; ok {
|
||||
return s
|
||||
|
||||
@ -268,6 +268,12 @@ Non-breaking changes:
|
||||
* ExpectedHeaderPruningPoint fix (#1876)
|
||||
* Changes to libkaspawallet to support Kaspaper (#1878)
|
||||
* Get rid of genesis's UTXO dump (#1867)
|
||||
주요 변경 사항:
|
||||
* devnet 및 testnet에서 헤더 질량을 무시합니다(#1879)
|
||||
* CalcSubsidy에서 사용하지 않는 인수 제거(#1877)
|
||||
* ExpectedHeaderPruningPoint 수정(#1876)
|
||||
* Kaspaper를 지원하기 위해 libkaspwallet 변경(#1878)
|
||||
* Genesis의 UTXO 덤프 제거(#1867)
|
||||
|
||||
Kaspad v0.11.2 - 2021-11-11
|
||||
===========================
|
||||
|
||||
@ -83,6 +83,7 @@ func (bpb *blockParentBuilder) BuildParents(stagingArea *model.StagingArea,
|
||||
}
|
||||
|
||||
if !foundFirstParentInFutureOfPruningPoint {
|
||||
// BuildParents는 향후 가지치기 지점에서 적어도 하나의 부모를 얻어야 합니다.
|
||||
return nil, errors.New("BuildParents should get at least one parent in the future of the pruning point")
|
||||
}
|
||||
|
||||
@ -144,6 +145,8 @@ func (bpb *blockParentBuilder) BuildParents(stagingArea *model.StagingArea,
|
||||
if hasReachabilityData {
|
||||
// If a block is in the future of one of the virtual genesis children it means we have the full DAG between the current block
|
||||
// and this parent, so there's no need for any indirect reference blocks, and normal reachability queries can be used.
|
||||
// 블록이 가상 창세기 자식 중 하나의 미래에 있는 경우 이는 현재 블록 사이에 전체 DAG가 있음을 의미합니다.
|
||||
// 및 이 부모이므로 간접 참조 블록이 필요하지 않으며 일반적인 연결 가능성 쿼리를 사용할 수 있습니다.
|
||||
isInFutureOfVirtualGenesisChildren, err = bpb.dagTopologyManager.IsAnyAncestorOf(stagingArea, virtualGenesisChildren, parent)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -160,6 +163,16 @@ func (bpb *blockParentBuilder) BuildParents(stagingArea *model.StagingArea,
|
||||
// the virtual genesis children in the pruning point anticone. So we can check which
|
||||
// virtual genesis children have this block as parent and use those block as
|
||||
// reference blocks.
|
||||
// 참조 블록은 도달 가능성 쿼리에서 다음을 확인하는 데 사용되는 블록입니다.
|
||||
// 후보자는 다른 후보자의 미래에 있습니다. 대부분의 경우 이는 단지
|
||||
// 자체를 차단하지만 블록에 필요한 도달 가능성 데이터가 없는 경우
|
||||
// 대신 미래에 일부 블록을 참조로 사용합니다.
|
||||
// 먼저 가지치기 지점의 미래에 부모를 추가했는지 확인하면 다음을 수행할 수 있습니다.
|
||||
// 가지치기에서 일부 블록의 과거에 있는 가지치기된 후보를 알고 있습니다.
|
||||
// 포인트 안티콘은 다음 중 하나의 상위(관련 수준)여야 합니다.
|
||||
// 가지치기 지점 안티콘의 가상 기원 자식. 그래서 우리는 어느 것을 확인할 수 있습니다
|
||||
// 가상 제네시스 자식은 이 블록을 부모로 갖고 해당 블록을 다음과 같이 사용합니다.
|
||||
// 참조 블록.
|
||||
var referenceBlocks []*externalapi.DomainHash
|
||||
if isInFutureOfVirtualGenesisChildren {
|
||||
referenceBlocks = []*externalapi.DomainHash{parent}
|
||||
@ -217,6 +230,8 @@ func (bpb *blockParentBuilder) BuildParents(stagingArea *model.StagingArea,
|
||||
|
||||
// We should add the block as a candidate if it's in the future of another candidate
|
||||
// or in the anticone of all candidates.
|
||||
// 블록이 다른 후보의 미래에 있는 경우 해당 블록을 후보로 추가해야 합니다.
|
||||
// 또는 모든 후보자의 반대쪽에 있습니다.
|
||||
if !isAncestorOfAnyCandidate || toRemove.Length() > 0 {
|
||||
candidatesByLevelToReferenceBlocksMap[blockLevel][*parent] = referenceBlocks
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import (
|
||||
// we need to embed the utxoset of mainnet genesis here
|
||||
_ "embed"
|
||||
"fmt"
|
||||
|
||||
"github.com/kaspanet/kaspad/domain/consensus/model"
|
||||
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||
"github.com/kaspanet/kaspad/domain/consensus/ruleerrors"
|
||||
@ -233,6 +234,16 @@ func (bp *blockProcessor) loadUTXODataForGenesis(stagingArea *model.StagingArea,
|
||||
// The actual UTXO set that fits Mainnet's genesis' UTXO commitment was removed from the codebase in order
|
||||
// to make reduce the consensus initialization time and the compiled binary size, but can be still
|
||||
// found here for anyone to verify: https://github.com/kaspanet/kaspad/blob/dbf18d8052f000ba0079be9e79b2d6f5a98b74ca/domain/consensus/processes/blockprocessor/resources/utxos.gz
|
||||
// 참고: 적용된 UTXO 집합 및 다중 집합은 UTXO 약속을 충족하지 않습니다.
|
||||
// 메인넷의 탄생. 그렇기 때문에 모든 블록은 제네시스 위에 구축될 것입니다.
|
||||
// 잘못된 UTXO 약속도 갖게 되며 합의에 도달할 수 없습니다.
|
||||
// 나머지 네트워크와 함께.
|
||||
// 이것이 바로 제네시스 위에 직접 블록을 가져오는 것이 금지된 이유이며, 유일한 방법은
|
||||
// 최근 노드에 대한 증명을 요청하여 생성된 노드의 최신 상태를 얻습니다.
|
||||
// 가지치기 지점.
|
||||
// 메인넷 제네시스의 UTXO 공약에 맞는 실제 UTXO 세트는 순서대로 코드베이스에서 제거되었습니다.
|
||||
// 합의 초기화 시간과 컴파일된 바이너리 크기를 줄이기 위해 하지만 여전히
|
||||
// 누구나 확인할 수 있도록 여기에 있습니다: https://github.com/kaspanet/kaspad/blob/dbf18d8052f000ba0079be9e79b2d6f5a98b74ca/domain/consensus/processes/blockprocessor/resources/utxos.gz
|
||||
bp.consensusStateStore.StageVirtualUTXODiff(stagingArea, utxo.NewUTXODiff())
|
||||
bp.utxoDiffStore.Stage(stagingArea, blockHash, utxo.NewUTXODiff(), nil)
|
||||
bp.multisetStore.Stage(stagingArea, blockHash, multiset.New())
|
||||
|
||||
@ -9,7 +9,7 @@ import (
|
||||
|
||||
func (bp *blockProcessor) validateAndInsertImportedPruningPoint(
|
||||
stagingArea *model.StagingArea, newPruningPointHash *externalapi.DomainHash) error {
|
||||
|
||||
// 주어진 가지치기 지점이 예상되는 가지치기 지점인지 확인
|
||||
log.Info("Checking that the given pruning point is the expected pruning point")
|
||||
|
||||
isValidPruningPoint, err := bp.pruningManager.IsValidPruningPoint(stagingArea, newPruningPointHash)
|
||||
@ -18,6 +18,7 @@ func (bp *blockProcessor) validateAndInsertImportedPruningPoint(
|
||||
}
|
||||
|
||||
if !isValidPruningPoint {
|
||||
// 유효한 가지치기 지점이 아닙니다.
|
||||
return errors.Wrapf(ruleerrors.ErrUnexpectedPruningPoint, "%s is not a valid pruning point",
|
||||
newPruningPointHash)
|
||||
}
|
||||
@ -28,10 +29,11 @@ func (bp *blockProcessor) validateAndInsertImportedPruningPoint(
|
||||
}
|
||||
|
||||
if !arePruningPointsInValidChain {
|
||||
// 가지치기 지점은 유효한 "+"제네시스 체인
|
||||
return errors.Wrapf(ruleerrors.ErrInvalidPruningPointsChain, "pruning points do not compose a valid "+
|
||||
"chain to genesis")
|
||||
}
|
||||
|
||||
// 새로운 가지치기 지점에 따라 합의 상태 관리자 업데이트
|
||||
log.Infof("Updating consensus state manager according to the new pruning point %s", newPruningPointHash)
|
||||
err = bp.consensusStateManager.ImportPruningPointUTXOSet(stagingArea, newPruningPointHash)
|
||||
if err != nil {
|
||||
|
||||
@ -83,6 +83,7 @@ func (csm *consensusStateManager) isCandidateToBeNextVirtualSelectedParent(
|
||||
defer log.Tracef("isCandidateToBeNextVirtualSelectedParent end for block %s", blockHash)
|
||||
|
||||
if blockHash.Equal(csm.genesisHash) {
|
||||
// "블록 %s은(는) 최초 블록이므로 "+"정의에 따라 선택된 부모"
|
||||
log.Debugf("Block %s is the genesis block, therefore it is "+
|
||||
"the selected parent by definition", blockHash)
|
||||
return true, nil
|
||||
@ -128,6 +129,7 @@ func (csm *consensusStateManager) calculateNewTips(
|
||||
defer log.Tracef("calculateNewTips end for new tip %s", newTipHash)
|
||||
|
||||
if newTipHash.Equal(csm.genesisHash) {
|
||||
// 새로운 팁은 제네시스 블록이므로 정의상 유일한 팁입니다.
|
||||
log.Debugf("The new tip is the genesis block, therefore it is the only tip by definition")
|
||||
return []*externalapi.DomainHash{newTipHash}, nil
|
||||
}
|
||||
|
||||
@ -49,6 +49,9 @@ type KType uint8
|
||||
// Params defines a Kaspa network by its parameters. These parameters may be
|
||||
// used by Kaspa applications to differentiate networks as well as addresses
|
||||
// and keys for one network from those intended for use on another network.
|
||||
// Params는 매개변수로 Kaspa 네트워크를 정의합니다. 이러한 매개변수는 다음과 같습니다.
|
||||
// 네트워크와 주소를 구별하기 위해 Kaspa 애플리케이션에서 사용됩니다.
|
||||
// 그리고 다른 네트워크에서 사용하기 위한 키 중 하나의 네트워크에 대한 키입니다.
|
||||
type Params struct {
|
||||
// K defines the K parameter for GHOSTDAG consensus algorithm.
|
||||
// See ghostdag.go for further details.
|
||||
@ -86,11 +89,16 @@ type Params struct {
|
||||
|
||||
// BlockCoinbaseMaturity is the number of blocks required before newly mined
|
||||
// coins can be spent.
|
||||
// BlockCoinbaseMaturity는 새로 채굴되기 전에 필요한 블록 수입니다.
|
||||
// 코인을 사용할 수 있습니다.
|
||||
BlockCoinbaseMaturity uint64
|
||||
|
||||
// SubsidyGenesisReward SubsidyMergeSetRewardMultiplier, and
|
||||
// SubsidyPastRewardMultiplier are part of the block subsidy equation.
|
||||
// Further details: https://hashdag.medium.com/kaspa-launch-plan-9a63f4d754a6
|
||||
// SubsidyGenesisReward SubsidyMergeSetRewardMultiplier 및
|
||||
// SubsidyPastRewardMultiplier는 블록 보조금 방정식의 일부입니다.
|
||||
// 자세한 내용: https://hashdag.medium.com/kaspa-launch-plan-9a63f4d754a6
|
||||
SubsidyGenesisReward uint64
|
||||
PreDeflationaryPhaseBaseSubsidy uint64
|
||||
DeflationaryPhaseBaseSubsidy uint64
|
||||
@ -104,10 +112,14 @@ type Params struct {
|
||||
|
||||
// TimestampDeviationTolerance is the maximum offset a block timestamp
|
||||
// is allowed to be in the future before it gets delayed
|
||||
// TimestampDeviationTolerance는 블록 타임스탬프의 최대 오프셋입니다.
|
||||
// 지연되기 전에 미래에 있을 수 있습니다.
|
||||
TimestampDeviationTolerance int
|
||||
|
||||
// DifficultyAdjustmentWindowSize is the size of window that is inspected
|
||||
// to calculate the required difficulty of each block.
|
||||
// TimestampDeviationTolerance는 블록 타임스탬프의 최대 예외입니다.
|
||||
// 지연되기 전에 미래에 있을 수 있습니다.
|
||||
DifficultyAdjustmentWindowSize int
|
||||
|
||||
// These fields are related to voting on consensus rule changes as
|
||||
@ -123,6 +135,16 @@ type Params struct {
|
||||
//
|
||||
// Deployments define the specific consensus rule changes to be voted
|
||||
// on.
|
||||
// 이 필드는 다음과 같이 합의 규칙 변경에 대한 투표와 관련됩니다.
|
||||
// BIP0009에 의해 정의됩니다.
|
||||
// RuleChangeActivationThreshold는 임계값의 블록 수입니다.
|
||||
// 규칙 변경에 대해 긍정적인 투표를 한 상태 재타겟 창 상태
|
||||
// 규칙 변경을 잠그려면 캐스팅해야 합니다. 일반적으로
|
||||
// 메인 네트워크의 경우 95%, 테스트 네트워크의 경우 75%입니다.
|
||||
// MinerConfirmationWindow는 각 임계값의 블록 수입니다.
|
||||
// 상태 변경 창.
|
||||
// 배포는 투표할 특정 합의 규칙 변경 사항을 정의합니다.
|
||||
// 에.
|
||||
RuleChangeActivationThreshold uint64
|
||||
MinerConfirmationWindow uint64
|
||||
|
||||
@ -131,60 +153,81 @@ type Params struct {
|
||||
|
||||
// AcceptUnroutable specifies whether this network accepts unroutable
|
||||
// IP addresses, such as 10.0.0.0/8
|
||||
// AcceptUnroutable은 이 네트워크가 라우팅 불가를 허용하는지 여부를 지정합니다.
|
||||
// IP 주소(예: 10.0.0.0/8)
|
||||
AcceptUnroutable bool
|
||||
|
||||
// Human-readable prefix for Bech32 encoded addresses
|
||||
// Bech32로 인코딩된 주소에 대한 사람이 읽을 수 있는 접두사
|
||||
Prefix util.Bech32Prefix
|
||||
|
||||
// Address encoding magics
|
||||
PrivateKeyID byte // First byte of a WIF private key
|
||||
|
||||
// EnableNonNativeSubnetworks enables non-native/coinbase transactions
|
||||
// EnableNonNativeSubnetworks는 비네이티브/코인베이스 거래를 활성화합니다.
|
||||
EnableNonNativeSubnetworks bool
|
||||
|
||||
// DisableDifficultyAdjustment determine whether to use difficulty
|
||||
// DisableDifficultyAdjustment 난이도 사용 여부를 결정합니다.
|
||||
DisableDifficultyAdjustment bool
|
||||
|
||||
// SkipProofOfWork indicates whether proof of work should be checked.
|
||||
// SkipProofOfWork는 작업 증명을 확인해야 하는지 여부를 나타냅니다.
|
||||
SkipProofOfWork bool
|
||||
|
||||
// MaxCoinbasePayloadLength is the maximum length in bytes allowed for a block's coinbase's payload
|
||||
// MaxCoinbasePayloadLength는 블록의 코인베이스 페이로드에 허용되는 최대 길이(바이트)입니다.
|
||||
MaxCoinbasePayloadLength uint64
|
||||
|
||||
// MaxBlockMass is the maximum mass a block is allowed
|
||||
// MaxBlockMass는 블록에 허용되는 최대 질량입니다.
|
||||
MaxBlockMass uint64
|
||||
|
||||
// MaxBlockParents is the maximum number of blocks a block is allowed to point to
|
||||
// MaxBlockParents는 블록이 가리킬 수 있는 최대 블록 수입니다.
|
||||
MaxBlockParents externalapi.KType
|
||||
|
||||
// MassPerTxByte is the number of grams that any byte
|
||||
// adds to a transaction.
|
||||
// MassPerTxByte는 임의의 바이트가 전송하는 그램 수입니다.
|
||||
// 트랜잭션에 추가합니다.
|
||||
MassPerTxByte uint64
|
||||
|
||||
// MassPerScriptPubKeyByte is the number of grams that any
|
||||
// scriptPubKey byte adds to a transaction.
|
||||
// MassPerScriptPubKeyByte는 임의의 그램 수입니다.
|
||||
// scriptPubKey 바이트가 트랜잭션에 추가됩니다.
|
||||
MassPerScriptPubKeyByte uint64
|
||||
|
||||
// MassPerSigOp is the number of grams that any
|
||||
// signature operation adds to a transaction.
|
||||
// MassPerSigOp는 임의의 그램 수입니다.
|
||||
// 서명 작업이 트랜잭션에 추가됩니다.
|
||||
MassPerSigOp uint64
|
||||
|
||||
// MergeSetSizeLimit is the maximum number of blocks in a block's merge set
|
||||
// MergeSetSizeLimit은 블록 병합 세트의 최대 블록 수입니다.
|
||||
MergeSetSizeLimit uint64
|
||||
|
||||
// CoinbasePayloadScriptPublicKeyMaxLength is the maximum allowed script public key in the coinbase's payload
|
||||
// CoinbasePayloadScriptPublicKeyMaxLength는 코인베이스 페이로드에서 허용되는 최대 스크립트 공개 키입니다.
|
||||
CoinbasePayloadScriptPublicKeyMaxLength uint8
|
||||
|
||||
// PruningProofM is the 'm' constant in the pruning proof. For more details see: https://github.com/kaspanet/research/issues/3
|
||||
// PruningProofM은 가지치기 증명의 'm' 상수입니다. 자세한 내용은 https://github.com/kaspanet/research/issues/3을 참조하세요.
|
||||
PruningProofM uint64
|
||||
|
||||
// DeflationaryPhaseDaaScore is the DAA score after which the monetary policy switches
|
||||
// to its deflationary phase
|
||||
// DeflationaryPhaseDaaScore는 통화 정책이 전환된 이후의 DAA 점수입니다.
|
||||
// 디플레이션 단계로
|
||||
DeflationaryPhaseDaaScore uint64
|
||||
|
||||
DisallowDirectBlocksOnTopOfGenesis bool
|
||||
|
||||
// MaxBlockLevel is the maximum possible block level.
|
||||
// MaxBlockLevel은 가능한 최대 블록 레벨입니다.
|
||||
MaxBlockLevel int
|
||||
|
||||
MergeDepth uint64
|
||||
@ -192,21 +235,26 @@ type Params struct {
|
||||
|
||||
// NormalizeRPCServerAddress returns addr with the current network default
|
||||
// port appended if there is not already a port specified.
|
||||
// NormalizeRPCServerAddress는 현재 네트워크 기본값으로 addr을 반환합니다.
|
||||
// 포트가 아직 지정되지 않은 경우 포트가 추가됩니다.
|
||||
func (p *Params) NormalizeRPCServerAddress(addr string) (string, error) {
|
||||
return network.NormalizeAddress(addr, p.RPCPort)
|
||||
}
|
||||
|
||||
// FinalityDepth returns the finality duration represented in blocks
|
||||
// FinalityDepth는 블록으로 표현된 최종 지속 기간을 반환합니다.
|
||||
func (p *Params) FinalityDepth() uint64 {
|
||||
return uint64(p.FinalityDuration / p.TargetTimePerBlock)
|
||||
}
|
||||
|
||||
// PruningDepth returns the pruning duration represented in blocks
|
||||
// PruningDepth는 블록으로 표시된 가지치기 기간을 반환합니다.
|
||||
func (p *Params) PruningDepth() uint64 {
|
||||
return 2*p.FinalityDepth() + 4*p.MergeSetSizeLimit*uint64(p.K) + 2*uint64(p.K) + 2
|
||||
}
|
||||
|
||||
// MainnetParams defines the network parameters for the main Kaspa network.
|
||||
// MainnetParams는 기본 Kaspa 네트워크에 대한 네트워크 매개변수를 정의합니다.
|
||||
var MainnetParams = Params{
|
||||
K: defaultGHOSTDAGK,
|
||||
Name: "c4ex-mainnet",
|
||||
@ -365,6 +413,13 @@ var TestnetParams = Params{
|
||||
// which are specifically specified are used to create the network rather than
|
||||
// following normal discovery rules. This is important as otherwise it would
|
||||
// just turn into another public testnet.
|
||||
// SimnetParams는 Kaspa 시뮬레이션 테스트를 위한 네트워크 매개변수를 정의합니다.
|
||||
// 네트워크. 이 네트워크는 다음을 제외하면 일반 테스트 네트워크와 유사합니다.
|
||||
// 시뮬레이션을 수행하는 개인 그룹 내에서 개인적으로 사용하기 위한 것입니다.
|
||||
// 테스트 중입니다. 기능은 유일한 노드라는 점에서 다릅니다.
|
||||
// 특별히 지정된 것은 네트워크를 생성하는 데 사용됩니다.
|
||||
// 일반적인 검색 규칙을 따릅니다. 그렇지 않은 경우에는 이것이 중요합니다.
|
||||
// 다른 공개 테스트넷으로 전환합니다.
|
||||
var SimnetParams = Params{
|
||||
K: defaultGHOSTDAGK,
|
||||
Name: "c4ex-simnet",
|
||||
|
||||
@ -153,6 +153,7 @@ func mineOrFetchBlock(blockData JSONBlock, mdb *miningDB, testConsensus testapi.
|
||||
var random = rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||
|
||||
// SolveBlock increments the given block's nonce until it matches the difficulty requirements in its bits field
|
||||
// SolveBlock은 비트 필드의 난이도 요구 사항과 일치할 때까지 주어진 블록의 nonce를 증가시킵니다.
|
||||
func SolveBlock(block *externalapi.DomainBlock) {
|
||||
mining.SolveBlock(block, random)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user