payroutes

package
v0.1.20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2023 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NodeRoutesDataFileNameOfState = "state.dat"
	NodeRoutesDataFileNameOfNodes = "nodes.dat"
	NodeRoutesDataFileNameOfGraph = "graph.dat"
)

Variables

This section is empty.

Functions

func IsValidServicerIdentificationName

func IsValidServicerIdentificationName(name string) bool

Is it a legal node name

Types

type ChannelRelationship

type ChannelRelationship struct {
	LeftNodeID  fields.VarUint4 // Node 1
	RightNodeID fields.VarUint4 // Node 2

}

*

  • 通道连通关系

func (ChannelRelationship) Serialize

func (c ChannelRelationship) Serialize() ([]byte, error)

type PayRelayNode

type PayRelayNode struct {
	ID                 fields.VarUint4         `json:"id"`
	CountryCode        fields.Bytes2           `json:"country_code"`        // 城市
	IdentificationName fields.StringMax255     `json:"identification_name"` // 服务识别码名称
	FeeMin             fields.Amount           `json:"fee_min"`             // 最低手续费
	FeeRatio           fields.VarUint4         `json:"fee_ratio"`           // 最低比率 单位:一亿分之一
	FeeMax             fields.Amount           `json:"fee_max"`             // 最高手续费上限
	Gateway1           fields.StringMax255     `json:"gateway_1"`           // 服务网关域名
	Gateway2           fields.StringMax255     `json:"gateway_2"`           // 备用域名
	OverdueTime        fields.BlockTxTimestamp `json:"overdue_time"`        // 注册服务过期时间
	RegisterTime       fields.BlockTxTimestamp `json:"register_time"`       // 手册注册时间

}

*

  • 支付路由节点

func (PayRelayNode) Copy

func (m PayRelayNode) Copy() *PayRelayNode

func (*PayRelayNode) Parse

func (m *PayRelayNode) Parse(buf []byte, seek uint32) (uint32, error)

func (PayRelayNode) PredictFeeForPay

func (m PayRelayNode) PredictFeeForPay(payamt *fields.Amount, paysat *fields.Satoshi) (*fields.Amount, *fields.Satoshi)

Estimated service charge

func (PayRelayNode) Serialize

func (m PayRelayNode) Serialize() ([]byte, error)

func (PayRelayNode) Size

func (m PayRelayNode) Size() uint32

type RoutingManager

type RoutingManager struct {
	// contains filtered or unexported fields
}

func NewRoutingManager

func NewRoutingManager() *RoutingManager

func (*RoutingManager) FindNodeById

func (r *RoutingManager) FindNodeById(id uint32) *PayRelayNode

func (*RoutingManager) FindNodeByName

func (r *RoutingManager) FindNodeByName(name string) *PayRelayNode

find node by name

func (*RoutingManager) FlushAllNodesAndRelationshipToDiskUnsafe

func (p *RoutingManager) FlushAllNodesAndRelationshipToDiskUnsafe(datadir string, datanodes, datagraph *[]byte) error

*

  • 将所有节点及关系表刷到磁盘永久保存

func (*RoutingManager) ForceUpdataNodesAndRelationshipByJsonBytesUnsafe

func (p *RoutingManager) ForceUpdataNodesAndRelationshipByJsonBytesUnsafe(databytes []byte, filenum uint32) error

to update

func (*RoutingManager) ForceWriteAllNodesAndRelationshipToDiskUnsafe

func (p *RoutingManager) ForceWriteAllNodesAndRelationshipToDiskUnsafe(datadir string, statbts, datanodes, datagraph []byte) error

*

  • 保存到磁盘永久保存

func (*RoutingManager) GetUpdateLastestPageNum

func (r *RoutingManager) GetUpdateLastestPageNum() uint32

func (*RoutingManager) LoadAllNodesAndRelationshipFormDisk

func (p *RoutingManager) LoadAllNodesAndRelationshipFormDisk(datadir string, datanodes, datagraph *[]byte) error

*

  • 从磁盘读取节点及关系表

func (*RoutingManager) RebuildNodesAndRelationshipUnsafe

func (p *RoutingManager) RebuildNodesAndRelationshipUnsafe(fnamety string, conbts []byte) error

*

  • 重建节点与关系数据

func (*RoutingManager) SearchNodePath

func (r *RoutingManager) SearchNodePath(startName, targetName string) ([][]*PayRelayNode, error)

*

  • 搜索路径
  • 返回路径的节点路径表
  • 只通过关系查找,不管容量

func (*RoutingManager) UpdateLock

func (r *RoutingManager) UpdateLock()

func (*RoutingManager) UpdateUnlock

func (r *RoutingManager) UpdateUnlock()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL