sdk

package
v1.1.2 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2020 License: MIT Imports: 40 Imported by: 10

Documentation

Index

Constants

View Source
const (
	DOWNLOAD_CONTENT_FULL  = "full"
	DOWNLOAD_CONTENT_THUMB = "thumbnail"
)
View Source
const (
	OpUpload   int = 0
	OpDownload int = 1
	OpRepair   int = 2
	OpUpdate   int = 3
)
View Source
const (
	Upload      = "Upload"
	Download    = "Download"
	Update      = "Update"
	Delete      = "Delete"
	Conflict    = "Conflict"
	LocalDelete = "LocalDelete"
)

For sync app

View Source
const NETWORK_ENDPOINT = "/network"
View Source
const STORAGE_SCADDRESS = "6dba10422e368813802877a85039d3985d96760ed844092319743fb3a76712d7"

Variables

This section is empty.

Functions

func AddBlockDownloadReq

func AddBlockDownloadReq(req *BlockDownloadRequest)

func AddCommitRequest

func AddCommitRequest(req *CommitRequest)

func CancelAlloctioan added in v1.0.41

func CancelAlloctioan(allocID string) (hash string, err error)

func CommitToFabric

func CommitToFabric(metaTxnData, fabricConfigJSON string) (string, error)

func CreateAllocation

func CreateAllocation(datashards, parityshards int, size, expiry int64,
	readPrice, writePrice PriceRange, mcct time.Duration, lock int64) (
	string, error)

func CreateAllocationForOwner

func CreateAllocationForOwner(owner, ownerpublickey string,
	datashards, parityshards int, size, expiry int64,
	readPrice, writePrice PriceRange, mcct time.Duration,
	lock int64, preferredBlobbers []string) (hash string, err error)

func CreateReadPool

func CreateReadPool() (err error)

func FinalizeAllocation

func FinalizeAllocation(allocID string) (hash string, err error)

func GetClientEncryptedPublicKey

func GetClientEncryptedPublicKey() (string, error)

func GetVersion

func GetVersion() string

GetVersion - returns version string

func InitBlockDownloader

func InitBlockDownloader(blobbers []*blockchain.StorageNode)

func InitCommitWorker

func InitCommitWorker(blobbers []*blockchain.StorageNode)

func InitStorageSDK

func InitStorageSDK(clientJson string, blockWorker string, chainID string, signatureScheme string, preferredBlobbers []string) error

func ReadPoolLock

func ReadPoolLock(dur time.Duration, allocID, blobberID string,
	tokens, fee int64) (err error)

ReadPoolLock locks given number of tokes for given duration in read pool.

func ReadPoolUnlock

func ReadPoolUnlock(poolID string, fee int64) (err error)

ReadPoolUnlock unlocks tokens in expired read pool

func SetLogFile

func SetLogFile(logFile string, verbose bool)

logFile - Log file verbose - true - console output; false - no console output

func SetLogLevel

func SetLogLevel(lvl int)

SetLogLevel set the log level. lvl - 0 disabled; higher number (upto 4) more verbosity

func SetMaxTxnQuery

func SetMaxTxnQuery(num int)

func SetMinConfirmation

func SetMinConfirmation(num int)

func SetMinSubmit

func SetMinSubmit(num int)

func SetNetwork

func SetNetwork(miners []string, sharders []string)

func SetNumBlockDownloads

func SetNumBlockDownloads(num int)

func SetQuerySleepTime

func SetQuerySleepTime(time int)

func StakePoolLock

func StakePoolLock(blobberID string, value, fee int64) (poolID string, err error)

StakePoolLock locks tokens lack in stake pool

func StakePoolPayInterests

func StakePoolPayInterests(bloberID string) (err error)

StakePoolPayInterests unlocks a stake pool rewards.

func StakePoolUnlock

func StakePoolUnlock(blobberID, poolID string, fee int64) (
	unstake common.Timestamp, err error)

StakePoolUnlock unlocks a stake pool tokens. If tokens can't be unlocked due to opened offers, then it returns time where the tokens can be unlocked, marking the pool as 'want to unlock' to avoid its usage in offers in the future. The time is maximal time that can be lesser in some cases. To unlock tokens can't be unlocked now, wait the time and unlock them (call this function again).

func UpdateAllocation

func UpdateAllocation(size int64, expiry int64, allocationID string,
	lock int64) (hash string, err error)

func UpdateBlobberSettings

func UpdateBlobberSettings(blob *Blobber) (resp string, err error)

func UpdateNetworkDetails

func UpdateNetworkDetails() error

func UpdateNetworkDetailsWorker

func UpdateNetworkDetailsWorker(ctx context.Context)

func UpdateRequired

func UpdateRequired(networkDetails *Network) bool

func WritePoolLock

func WritePoolLock(dur time.Duration, allocID, blobberID string,
	tokens, fee int64) (err error)

WritePoolLock locks given number of tokes for given duration in read pool.

func WritePoolUnlock

func WritePoolUnlock(poolID string, fee int64) (err error)

WritePoolUnlock unlocks tokens in expired read pool

Types

type Allocation

type Allocation struct {
	ID             string                    `json:"id"`
	Tx             string                    `json:"tx"`
	DataShards     int                       `json:"data_shards"`
	ParityShards   int                       `json:"parity_shards"`
	Size           int64                     `json:"size"`
	Expiration     int64                     `json:"expiration_date"`
	Owner          string                    `json:"owner_id"`
	OwnerPublicKey string                    `json:"owner_public_key"`
	Payer          string                    `json:"payer_id"`
	Blobbers       []*blockchain.StorageNode `json:"blobbers"`
	Stats          *AllocationStats          `json:"stats"`
	TimeUnit       time.Duration             `json:"time_unit"`

	// BlobberDetails contains real terms used for the allocation.
	// If the allocation has updated, then terms calculated using
	// weighted average values.
	BlobberDetails []*BlobberAllocation `json:"blobber_details"`

	// ReadPriceRange is requested reading prices range.
	ReadPriceRange PriceRange `json:"read_price_range"`
	// WritePriceRange is requested writing prices range.
	WritePriceRange PriceRange `json:"write_price_range"`

	ChallengeCompletionTime time.Duration    `json:"challenge_completion_time"`
	StartTime               common.Timestamp `json:"start_time"`
	Finalized               bool             `json:"finalized,omitempty"`
	Canceled                bool             `json:"canceled,omitempty"`
	MovedToChallenge        common.Balance   `json:"moved_to_challenge,omitempty"`
	MovedBack               common.Balance   `json:"moved_back,omitempty"`
	MovedToValidators       common.Balance   `json:"moved_to_validators,omitempty"`
	// contains filtered or unexported fields
}

func GetAllocation

func GetAllocation(allocationID string) (*Allocation, error)

func GetAllocationFromAuthTicket

func GetAllocationFromAuthTicket(authTicket string) (*Allocation, error)

func GetAllocations

func GetAllocations() ([]*Allocation, error)

func GetAllocationsForClient

func GetAllocationsForClient(clientID string) ([]*Allocation, error)

func (*Allocation) CancelDownload

func (a *Allocation) CancelDownload(remotepath string) error

func (*Allocation) CancelRepair

func (a *Allocation) CancelRepair() error

func (*Allocation) CancelUpload

func (a *Allocation) CancelUpload(localpath string) error

func (*Allocation) CommitFolderChange

func (a *Allocation) CommitFolderChange(operation, preValue, currValue string) (string, error)

func (*Allocation) CommitMetaTransaction

func (a *Allocation) CommitMetaTransaction(path, crudOperation, authTicket, lookupHash string, fileMeta *ConsolidatedFileMeta, status StatusCallback) (err error)

func (*Allocation) CopyObject

func (a *Allocation) CopyObject(path string, destPath string) error

func (*Allocation) DeleteFile

func (a *Allocation) DeleteFile(path string) error

func (*Allocation) DownloadFile

func (a *Allocation) DownloadFile(localPath string, remotePath string, status StatusCallback) error

func (*Allocation) DownloadFileByBlock

func (a *Allocation) DownloadFileByBlock(localPath string, remotePath string, startBlock int64, endBlock int64, numBlocks int, status StatusCallback) error

func (*Allocation) DownloadFromAuthTicket

func (a *Allocation) DownloadFromAuthTicket(localPath string, authTicket string, remoteLookupHash string, remoteFilename string, status StatusCallback) error

func (*Allocation) DownloadFromAuthTicketByBlocks

func (a *Allocation) DownloadFromAuthTicketByBlocks(localPath string, authTicket string, startBlock int64, endBlock int64, numBlocks int, remoteLookupHash string, remoteFilename string, status StatusCallback) error

func (*Allocation) DownloadThumbnail

func (a *Allocation) DownloadThumbnail(localPath string, remotePath string, status StatusCallback) error

func (*Allocation) DownloadThumbnailFromAuthTicket

func (a *Allocation) DownloadThumbnailFromAuthTicket(localPath string, authTicket string, remoteLookupHash string, remoteFilename string, status StatusCallback) error

func (*Allocation) EncryptAndUpdateFile

func (a *Allocation) EncryptAndUpdateFile(localpath string, remotepath string, status StatusCallback) error

func (*Allocation) EncryptAndUpdateFileWithThumbnail

func (a *Allocation) EncryptAndUpdateFileWithThumbnail(localpath string, remotepath string, thumbnailpath string, status StatusCallback) error

func (*Allocation) EncryptAndUploadFile

func (a *Allocation) EncryptAndUploadFile(localpath string, remotepath string, status StatusCallback) error

func (*Allocation) EncryptAndUploadFileWithThumbnail

func (a *Allocation) EncryptAndUploadFileWithThumbnail(localpath string, remotepath string, thumbnailpath string, status StatusCallback) error

func (*Allocation) GetAllocationDiff

func (a *Allocation) GetAllocationDiff(lastSyncCachePath string, localRootPath string, localFileFilters []string, remoteExcludePath []string) ([]FileDiff, error)

func (*Allocation) GetAuthTicket

func (a *Allocation) GetAuthTicket(path string, filename string, referenceType string, refereeClientID string, refereeEncryptionPublicKey string) (string, error)

func (*Allocation) GetAuthTicketForShare

func (a *Allocation) GetAuthTicketForShare(path string, filename string, referenceType string, refereeClientID string) (string, error)

func (*Allocation) GetBlobberStats

func (a *Allocation) GetBlobberStats() map[string]*BlobberAllocationStats

func (*Allocation) GetFileMeta

func (a *Allocation) GetFileMeta(path string) (*ConsolidatedFileMeta, error)

func (*Allocation) GetFileMetaFromAuthTicket

func (a *Allocation) GetFileMetaFromAuthTicket(authTicket string, lookupHash string) (*ConsolidatedFileMeta, error)

func (*Allocation) GetFileStats

func (a *Allocation) GetFileStats(path string) (map[string]*FileStats, error)

func (*Allocation) GetRemoteFileMap

func (a *Allocation) GetRemoteFileMap(exclMap map[string]int) (map[string]fileInfo, error)

func (*Allocation) GetStats

func (a *Allocation) GetStats() *AllocationStats

func (*Allocation) InitAllocation

func (a *Allocation) InitAllocation()

func (*Allocation) ListDir

func (a *Allocation) ListDir(path string) (*ListResult, error)

func (*Allocation) ListDirFromAuthTicket

func (a *Allocation) ListDirFromAuthTicket(authTicket string, lookupHash string) (*ListResult, error)

func (*Allocation) MoveObject

func (a *Allocation) MoveObject(path string, destPath string) error

func (*Allocation) RenameObject

func (a *Allocation) RenameObject(path string, destName string) error

func (*Allocation) RepairFile

func (a *Allocation) RepairFile(localpath string, remotepath string, status StatusCallback) error

func (*Allocation) RepairRequired

func (a *Allocation) RepairRequired(remotepath string) (uint32, bool, *fileref.FileRef, error)

func (*Allocation) SaveRemoteSnapshot

func (a *Allocation) SaveRemoteSnapshot(pathToSave string, remoteExcludePath []string) error

SaveRemoteSnapShot - Saves the remote current information to the given file This file can be passed to GetAllocationDiff to exactly find the previous sync state to current.

func (*Allocation) StartRepair

func (a *Allocation) StartRepair(localRootPath, pathToRepair string, statusCB StatusCallback) error

func (*Allocation) UpdateFile

func (a *Allocation) UpdateFile(localpath string, remotepath string, status StatusCallback) error

func (*Allocation) UpdateFileWithThumbnail

func (a *Allocation) UpdateFileWithThumbnail(localpath string, remotepath string, thumbnailpath string, status StatusCallback) error

func (*Allocation) UploadFile

func (a *Allocation) UploadFile(localpath string, remotepath string, status StatusCallback) error

func (*Allocation) UploadFileWithThumbnail

func (a *Allocation) UploadFileWithThumbnail(localpath string, remotepath string, thumbnailpath string, status StatusCallback) error

type AllocationPoolStat

type AllocationPoolStat struct {
	ID           string             `json:"id"`
	Balance      common.Balance     `json:"balance"`
	ExpireAt     common.Timestamp   `json:"expire_at"`
	AllocationID common.Key         `json:"allocation_id"`
	Blobbers     []*BlobberPoolStat `json:"blobbers"`
	Locked       bool               `json:"locked"`
}

type AllocationPoolStats

type AllocationPoolStats struct {
	Pools []*AllocationPoolStat `json:"pools"`
	Back  *BackPool             `json:"back,omitempty"`
}

AllocationPoolsStat represents read or write pool statistic.

func GetReadPoolInfo

func GetReadPoolInfo(clientID string) (info *AllocationPoolStats, err error)

GetReadPoolInfo for given client, or, if the given clientID is empty, for current client of the sdk.

func GetWritePoolInfo

func GetWritePoolInfo(clientID string) (info *AllocationPoolStats, err error)

GetWritePoolInfo for given client, or, if the given clientID is empty, for current client of the sdk.

func (*AllocationPoolStats) AllocFilter

func (aps *AllocationPoolStats) AllocFilter(allocID string)

type AllocationStats

type AllocationStats struct {
	UsedSize                  int64  `json:"used_size"`
	NumWrites                 int64  `json:"num_of_writes"`
	NumReads                  int64  `json:"num_of_reads"`
	TotalChallenges           int64  `json:"total_challenges"`
	OpenChallenges            int64  `json:"num_open_challenges"`
	SuccessChallenges         int64  `json:"num_success_challenges"`
	FailedChallenges          int64  `json:"num_failed_challenges"`
	LastestClosedChallengeTxn string `json:"latest_closed_challenge"`
}

type AuthTicket

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

func InitAuthTicket

func InitAuthTicket(authTicket string) *AuthTicket

func (*AuthTicket) GetFileName

func (at *AuthTicket) GetFileName() (string, error)

func (*AuthTicket) GetLookupHash

func (at *AuthTicket) GetLookupHash() (string, error)

func (*AuthTicket) IsDir

func (at *AuthTicket) IsDir() (bool, error)

type BackPool

type BackPool struct {
	ID      string         `json:"id"`
	Balance common.Balance `json:"balance"`
}

type Blobber

type Blobber struct {
	ID                common.Key        `json:"id"`
	BaseURL           string            `json:"url"`
	Terms             Terms             `json:"terms"`
	Capacity          common.Size       `json:"capacity"`
	Used              common.Size       `json:"used"`
	LastHealthCheck   common.Timestamp  `json:"last_health_check"`
	PublicKey         string            `json:"-"`
	StakePoolSettings StakePoolSettings `json:"stake_pool_settings"`
}

func GetBlobber

func GetBlobber(blobberID string) (blob *Blobber, err error)

GetBlobber instance.

func GetBlobbers

func GetBlobbers() (bs []*Blobber, err error)

type BlobberAllocation

type BlobberAllocation struct {
	BlobberID       string         `json:"blobber_id"`
	Size            int64          `json:"size"`
	Terms           Terms          `json:"terms"`
	MinLockDemand   common.Balance `json:"min_lock_demand"`
	Spent           common.Balance `json:"spent"`
	Penalty         common.Balance `json:"penalty"`
	ReadReward      common.Balance `json:"read_reward"`
	Returned        common.Balance `json:"returned"`
	ChallengeReward common.Balance `json:"challenge_reward"`
	FinalReward     common.Balance `json:"final_reward"`
}

type BlobberAllocationStats

type BlobberAllocationStats struct {
	BlobberID        string
	BlobberURL       string
	ID               string `json:"ID"`
	Tx               string `json:"Tx"`
	TotalSize        int64  `json:"TotalSize"`
	UsedSize         int    `json:"UsedSize"`
	OwnerID          string `json:"OwnerID"`
	OwnerPublicKey   string `json:"OwnerPublicKey"`
	Expiration       int    `json:"Expiration"`
	AllocationRoot   string `json:"AllocationRoot"`
	BlobberSize      int    `json:"BlobberSize"`
	BlobberSizeUsed  int    `json:"BlobberSizeUsed"`
	LatestRedeemedWM string `json:"LatestRedeemedWM"`
	IsRedeemRequired bool   `json:"IsRedeemRequired"`
	CleanedUp        bool   `json:"CleanedUp"`
	Finalized        bool   `json:"Finalized"`
	Terms            []struct {
		ID           int    `json:"ID"`
		BlobberID    string `json:"BlobberID"`
		AllocationID string `json:"AllocationID"`
		ReadPrice    int    `json:"ReadPrice"`
		WritePrice   int    `json:"WritePrice"`
	} `json:"Terms"`
	PayerID string `json:"PayerID"`
}

type BlobberPoolStat

type BlobberPoolStat struct {
	BlobberID common.Key     `json:"blobber_id"`
	Balance   common.Balance `json:"balance"`
}

type BlockDownloadRequest

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

type ChallengePoolInfo

type ChallengePoolInfo struct {
	ID         string           `json:"id"`
	Balance    common.Balance   `json:"balance"`
	StartTime  common.Timestamp `json:"start_time"`
	Expiration common.Timestamp `json:"expiration"`
	Finalized  bool             `json:"finalized"`
}

ChallengePoolInfo represents a challenge pool stat.

func GetChallengePoolInfo

func GetChallengePoolInfo(allocID string) (info *ChallengePoolInfo, err error)

GetChallengePoolInfo for given allocation.

type CommitFolderData

type CommitFolderData struct {
	OpType    string
	PreValue  string
	CurrValue string
}

type CommitFolderResponse

type CommitFolderResponse struct {
	TxnID string
	Data  *CommitFolderData
}

type CommitMetaData

type CommitMetaData struct {
	CrudType string
	MetaData *ConsolidatedFileMeta
}

type CommitMetaRequest

type CommitMetaRequest struct {
	CommitMetaData
	// contains filtered or unexported fields
}

type CommitMetaResponse

type CommitMetaResponse struct {
	TxnID    string
	MetaData *ConsolidatedFileMeta
}

type CommitRequest

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

type CommitResult

type CommitResult struct {
	Success      bool   `json:"success"`
	ErrorMessage string `json:"error_msg,omitempty"`
}

func ErrorCommitResult

func ErrorCommitResult(errMsg string) *CommitResult

func SuccessCommitResult

func SuccessCommitResult() *CommitResult

type Consensus

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

type ConsolidatedFileMeta

type ConsolidatedFileMeta struct {
	Name           string
	Type           string
	Path           string
	LookupHash     string
	Hash           string
	MimeType       string
	Size           int64
	EncryptedKey   string
	CommitMetaTxns []fileref.CommitMetaTxn
}

type CopyRequest

type CopyRequest struct {
	Consensus
	// contains filtered or unexported fields
}

func (*CopyRequest) ProcessCopy

func (req *CopyRequest) ProcessCopy() error

type DeleteRequest

type DeleteRequest struct {
	Consensus
	// contains filtered or unexported fields
}

func (*DeleteRequest) ProcessDelete

func (req *DeleteRequest) ProcessDelete() error

type DownloadRequest

type DownloadRequest struct {
	Consensus
	// contains filtered or unexported fields
}

type FileDiff

type FileDiff struct {
	Op   string `json:"operation"`
	Path string `json:"path"`
	Type string `json:"type"`
}

type FileStats

type FileStats struct {
	Name                     string    `json:"name"`
	Size                     int64     `json:"size"`
	PathHash                 string    `json:"path_hash"`
	Path                     string    `json:"path"`
	NumBlocks                int64     `json:"num_of_blocks"`
	NumUpdates               int64     `json:"num_of_updates"`
	NumBlockDownloads        int64     `json:"num_of_block_downloads"`
	SuccessChallenges        int64     `json:"num_of_challenges"`
	FailedChallenges         int64     `json:"num_of_failed_challenges"`
	LastChallengeResponseTxn string    `json:"last_challenge_txn"`
	WriteMarkerRedeemTxn     string    `json:"write_marker_txn"`
	BlobberID                string    `json:"blobber_id"`
	BlobberURL               string    `json:"blobber_url"`
	BlockchainAware          bool      `json:"blockchain_aware"`
	CreatedAt                time.Time `json:"CreatedAt"`
}

type ListRequest

type ListRequest struct {
	Consensus
	// contains filtered or unexported fields
}

func (*ListRequest) GetListFromBlobbers

func (req *ListRequest) GetListFromBlobbers() *ListResult

type ListResult

type ListResult struct {
	Name          string        `json:"name"`
	Path          string        `json:"path,omitempty"`
	Type          string        `json:"type"`
	Size          int64         `json:"size"`
	Hash          string        `json:"hash,omitempty"`
	MimeType      string        `json:"mimetype,omitempty"`
	NumBlocks     int64         `json:"num_blocks"`
	LookupHash    string        `json:"lookup_hash"`
	EncryptionKey string        `json:"encryption_key"`
	CreatedAt     string        `json:"created_at"`
	UpdatedAt     string        `json:"updated_at"`
	Children      []*ListResult `json:"list"`
	Consensus     `json:"-"`
}

type Network

type Network struct {
	Miners   []string `json:"miners"`
	Sharders []string `json:"sharders"`
}

func GetNetwork

func GetNetwork() *Network

func GetNetworkDetails

func GetNetworkDetails() (*Network, error)

type PriceRange

type PriceRange struct {
	Min int64 `json:"min"`
	Max int64 `json:"max"`
}

PriceRange represents a price range allowed by user to filter blobbers.

func (*PriceRange) IsValid

func (pr *PriceRange) IsValid() bool

IsValid price range.

type ReferencePathResult

type ReferencePathResult struct {
	*fileref.ReferencePath
	LatestWM *marker.WriteMarker `json:"latest_write_marker"`
}

type RenameRequest

type RenameRequest struct {
	Consensus
	// contains filtered or unexported fields
}

func (*RenameRequest) ProcessRename

func (req *RenameRequest) ProcessRename() error

type RepairRequest

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

type RepairStatusCB

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

func (*RepairStatusCB) CommitMetaCompleted

func (cb *RepairStatusCB) CommitMetaCompleted(request, response string, err error)

func (*RepairStatusCB) Completed

func (cb *RepairStatusCB) Completed(allocationId, filePath string, filename string, mimetype string, size int, op int)

func (*RepairStatusCB) Error

func (cb *RepairStatusCB) Error(allocationID string, filePath string, op int, err error)

func (*RepairStatusCB) InProgress

func (cb *RepairStatusCB) InProgress(allocationId, filePath string, op int, completedBytes int)

func (*RepairStatusCB) RepairCompleted

func (cb *RepairStatusCB) RepairCompleted(filesRepaired int)

func (*RepairStatusCB) Started

func (cb *RepairStatusCB) Started(allocationId, filePath string, op int, totalBytes int)

type ShareRequest

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

func (*ShareRequest) GetAuthTicket

func (req *ShareRequest) GetAuthTicket(clientID string) (string, error)

func (*ShareRequest) GetAuthTicketForEncryptedFile

func (req *ShareRequest) GetAuthTicketForEncryptedFile(clientID string, encPublicKey string) (string, error)

type StakePoolDelegatePoolInfo

type StakePoolDelegatePoolInfo struct {
	ID               common.Key     `json:"id"`                // pool ID
	Balance          common.Balance `json:"balance"`           // current balance
	DelegateID       common.Key     `json:"delegate_id"`       // wallet
	Rewards          common.Balance `json:"rewards"`           // total for all time
	Interests        common.Balance `json:"interests"`         // total for all time
	Penalty          common.Balance `json:"penalty"`           // total for all time
	PendingInterests common.Balance `json:"pending_interests"` // total for all time
	// Unstake > 0, then the pool wants to unstake. And the Unstake is maximal
	// time it can't be unstaked.
	Unstake common.Timestamp `json:"unstake"`
}

StakePoolDelegatePoolInfo represents delegate pool of a stake pool info.

type StakePoolInfo

type StakePoolInfo struct {
	ID      common.Key     `json:"pool_id"` // blobber ID
	Balance common.Balance `json:"balance"` // total stake
	Unstake common.Balance `json:"unstake"` // total unstake amount

	Free       common.Size    `json:"free"`        // free staked space
	Capacity   common.Size    `json:"capacity"`    // blobber bid
	WritePrice common.Balance `json:"write_price"` // its write price

	Offers      []*StakePoolOfferInfo `json:"offers"`       //
	OffersTotal common.Balance        `json:"offers_total"` //
	// delegate pools
	Delegate []*StakePoolDelegatePoolInfo `json:"delegate"`
	Earnings common.Balance               `json:"interests"` // total for all
	Penalty  common.Balance               `json:"penalty"`   // total for all
	// rewards
	Rewards StakePoolRewardsInfo `json:"rewards"`
	// settings
	Settings StakePoolSettings `json:"settings"`
}

StakePool full info.

func GetStakePoolInfo

func GetStakePoolInfo(blobberID string) (info *StakePoolInfo, err error)

GetStakePoolInfo for given client, or, if the given clientID is empty, for current client of the sdk.

type StakePoolOfferInfo

type StakePoolOfferInfo struct {
	Lock         common.Balance   `json:"lock"`
	Expire       common.Timestamp `json:"expire"`
	AllocationID common.Key       `json:"allocation_id"`
	IsExpired    bool             `json:"is_expired"`
}

StakePoolOfferInfo represents stake pool offer information.

type StakePoolRewardsInfo

type StakePoolRewardsInfo struct {
	Charge    common.Balance `json:"charge"`    // total for all time
	Blobber   common.Balance `json:"blobber"`   // total for all time
	Validator common.Balance `json:"validator"` // total for all time
}

StakePoolRewardsInfo represents stake pool rewards.

type StakePoolSettings

type StakePoolSettings struct {
	// DelegateWallet for pool owner.
	DelegateWallet string `json:"delegate_wallet"`
	// MinStake allowed.
	MinStake common.Balance `json:"min_stake"`
	// MaxStake allowed.
	MaxStake common.Balance `json:"max_stake"`
	// NumDelegates maximum allowed.
	NumDelegates int `json:"num_delegates"`
	// ServiceCharge is blobber service charge.
	ServiceCharge float64 `json:"service_charge"`
}

StakePoolSettings information.

type StakePoolUnlockUnstake

type StakePoolUnlockUnstake struct {
	Unstake common.Timestamp `json:"unstake"`
}

StakePoolUnlockUnstake is stake pool unlock response in case where tokens can't be unlocked due to opened offers. In this case it returns the maximal time to wait to be able to unlock the tokens. The real time can be lesser if someone cancels an allocation, or someone else stake more tokens, etc.

type StakePoolUserInfo

type StakePoolUserInfo struct {
	Pools map[common.Key][]*StakePoolDelegatePoolInfo `json:"pools"`
}

StakePoolUserInfo represents user stake pools statistic.

func GetStakePoolUserInfo

func GetStakePoolUserInfo(clientID string) (info *StakePoolUserInfo, err error)

GetStakePoolUserInfo obtains blobbers/validators delegate pools statistic for a user. If given clientID is empty string, then current client used.

type StatusCallback

type StatusCallback interface {
	Started(allocationId, filePath string, op int, totalBytes int)
	InProgress(allocationId, filePath string, op int, completedBytes int)
	Error(allocationID string, filePath string, op int, err error)
	Completed(allocationId, filePath string, filename string, mimetype string, size int, op int)
	CommitMetaCompleted(request, response string, err error)
	RepairCompleted(filesRepaired int)
}

type StorageReadPoolConfig

type StorageReadPoolConfig struct {
	MinLock       common.Balance `json:"min_lock"`
	MinLockPeriod time.Duration  `json:"min_lock_period"`
	MaxLockPeriod time.Duration  `json:"max_lock_period"`
}

type StorageSCConfig

type StorageSCConfig struct {
	MinAllocSize                    common.Size             `json:"min_alloc_size"`
	MinAllocDuration                time.Duration           `json:"min_alloc_duration"`
	MaxChallengeCompletionTime      time.Duration           `json:"max_challenge_completion_time"`
	MinOfferDuration                time.Duration           `json:"min_offer_duration"`
	MinBlobberCapacity              common.Size             `json:"min_blobber_capacity"`
	ReadPool                        *StorageReadPoolConfig  `json:"readpool"`
	WritePool                       *StorageWritePoolConfig `json:"writepool"`
	StakePool                       *StorageStakePoolConfig `json:"stakepool"`
	ValidatorReward                 float64                 `json:"validator_reward"`
	BlobberSlash                    float64                 `json:"blobber_slash"`
	MaxReadPrice                    common.Balance          `json:"max_read_price"`
	MaxWritePrice                   common.Balance          `json:"max_write_price"`
	FailedChallengesToCancel        int                     `json:"failed_challenges_to_cancel"`
	FailedChallengesToRevokeMinLock int                     `json:"failed_challenges_to_revoke_min_lock"`
	ChallengeEnabled                bool                    `json:"challenge_enabled"`
	MaxChallengesPerGeneration      int                     `json:"max_challenges_per_generation"`
	ChallengeGenerationRate         float64                 `json:"challenge_rate_per_mb_min"`
	MaxDelegates                    int                     `json:"max_delegates"`
	MaxCharge                       float64                 `json:"max_charge"`
	TimeUnit                        time.Duration           `json:"time_unit"`
}

func GetStorageSCConfig

func GetStorageSCConfig() (conf *StorageSCConfig, err error)

type StorageStakePoolConfig

type StorageStakePoolConfig struct {
	MinLock          common.Balance `json:"min_lock"`
	InterestRate     float64        `json:"interest_rate"`
	InterestInterval time.Duration  `json:"interest_interval"`
}

type StorageWritePoolConfig

type StorageWritePoolConfig struct {
	MinLock       common.Balance `json:"min_lock"`
	MinLockPeriod time.Duration  `json:"min_lock_period"`
	MaxLockPeriod time.Duration  `json:"max_lock_period"`
}

type Terms

type Terms struct {
	ReadPrice               common.Balance `json:"read_price"`  // tokens / GB
	WritePrice              common.Balance `json:"write_price"` // tokens / GB
	MinLockDemand           float64        `json:"min_lock_demand"`
	MaxOfferDuration        time.Duration  `json:"max_offer_duration"`
	ChallengeCompletionTime time.Duration  `json:"challenge_completion_time"`
}

Terms represents Blobber terms. A Blobber can update its terms, but any existing offer will use terms of offer signing time.

type UploadFileMeta

type UploadFileMeta struct {
	Name          string
	Path          string
	Hash          string
	MimeType      string
	Size          int64
	ThumbnailSize int64
	ThumbnailHash string
}

type UploadRequest

type UploadRequest struct {
	Consensus
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

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