remote

package
v0.0.0-...-15ab7cc Latest Latest
Warning

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

Go to latest
Published: Jul 21, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var StorageServer = &server{stores: make(map[string]blkstorage.BlockStore), err: make(chan error, 1)}

Functions

func RegisterStoragePeerServer

func RegisterStoragePeerServer(s *grpc.Server, srv StoragePeerServer)

func StartServer

func StartServer(address string)

func StartStoragePeerClient

func StartStoragePeerClient(address string) error

Types

type GetBlockchainInfoRequest

type GetBlockchainInfoRequest struct {
	LedgerId             string   `protobuf:"bytes,1,opt,name=ledgerId,proto3" json:"ledgerId,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*GetBlockchainInfoRequest) Descriptor

func (*GetBlockchainInfoRequest) Descriptor() ([]byte, []int)

func (*GetBlockchainInfoRequest) GetLedgerId

func (m *GetBlockchainInfoRequest) GetLedgerId() string

func (*GetBlockchainInfoRequest) ProtoMessage

func (*GetBlockchainInfoRequest) ProtoMessage()

func (*GetBlockchainInfoRequest) Reset

func (m *GetBlockchainInfoRequest) Reset()

func (*GetBlockchainInfoRequest) String

func (m *GetBlockchainInfoRequest) String() string

func (*GetBlockchainInfoRequest) XXX_DiscardUnknown

func (m *GetBlockchainInfoRequest) XXX_DiscardUnknown()

func (*GetBlockchainInfoRequest) XXX_Marshal

func (m *GetBlockchainInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetBlockchainInfoRequest) XXX_Merge

func (m *GetBlockchainInfoRequest) XXX_Merge(src proto.Message)

func (*GetBlockchainInfoRequest) XXX_Size

func (m *GetBlockchainInfoRequest) XXX_Size() int

func (*GetBlockchainInfoRequest) XXX_Unmarshal

func (m *GetBlockchainInfoRequest) XXX_Unmarshal(b []byte) error

type Iterator

type Iterator struct {
	IteratorId           int32    `protobuf:"varint,1,opt,name=iteratorId,proto3" json:"iteratorId,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Iterator) Descriptor

func (*Iterator) Descriptor() ([]byte, []int)

func (*Iterator) GetIteratorId

func (m *Iterator) GetIteratorId() int32

func (*Iterator) ProtoMessage

func (*Iterator) ProtoMessage()

func (*Iterator) Reset

func (m *Iterator) Reset()

func (*Iterator) String

func (m *Iterator) String() string

func (*Iterator) XXX_DiscardUnknown

func (m *Iterator) XXX_DiscardUnknown()

func (*Iterator) XXX_Marshal

func (m *Iterator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Iterator) XXX_Merge

func (m *Iterator) XXX_Merge(src proto.Message)

func (*Iterator) XXX_Size

func (m *Iterator) XXX_Size() int

func (*Iterator) XXX_Unmarshal

func (m *Iterator) XXX_Unmarshal(b []byte) error

type Result

type Result struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Result) Descriptor

func (*Result) Descriptor() ([]byte, []int)

func (*Result) ProtoMessage

func (*Result) ProtoMessage()

func (*Result) Reset

func (m *Result) Reset()

func (*Result) String

func (m *Result) String() string

func (*Result) XXX_DiscardUnknown

func (m *Result) XXX_DiscardUnknown()

func (*Result) XXX_Marshal

func (m *Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Result) XXX_Merge

func (m *Result) XXX_Merge(src proto.Message)

func (*Result) XXX_Size

func (m *Result) XXX_Size() int

func (*Result) XXX_Unmarshal

func (m *Result) XXX_Unmarshal(b []byte) error

type RetrieveBlockByHashRequest

type RetrieveBlockByHashRequest struct {
	LedgerId             string   `protobuf:"bytes,1,opt,name=ledgerId,proto3" json:"ledgerId,omitempty"`
	BlockHash            []byte   `protobuf:"bytes,2,opt,name=blockHash,proto3" json:"blockHash,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*RetrieveBlockByHashRequest) Descriptor

func (*RetrieveBlockByHashRequest) Descriptor() ([]byte, []int)

func (*RetrieveBlockByHashRequest) GetBlockHash

func (m *RetrieveBlockByHashRequest) GetBlockHash() []byte

func (*RetrieveBlockByHashRequest) GetLedgerId

func (m *RetrieveBlockByHashRequest) GetLedgerId() string

func (*RetrieveBlockByHashRequest) ProtoMessage

func (*RetrieveBlockByHashRequest) ProtoMessage()

func (*RetrieveBlockByHashRequest) Reset

func (m *RetrieveBlockByHashRequest) Reset()

func (*RetrieveBlockByHashRequest) String

func (m *RetrieveBlockByHashRequest) String() string

func (*RetrieveBlockByHashRequest) XXX_DiscardUnknown

func (m *RetrieveBlockByHashRequest) XXX_DiscardUnknown()

func (*RetrieveBlockByHashRequest) XXX_Marshal

func (m *RetrieveBlockByHashRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RetrieveBlockByHashRequest) XXX_Merge

func (m *RetrieveBlockByHashRequest) XXX_Merge(src proto.Message)

func (*RetrieveBlockByHashRequest) XXX_Size

func (m *RetrieveBlockByHashRequest) XXX_Size() int

func (*RetrieveBlockByHashRequest) XXX_Unmarshal

func (m *RetrieveBlockByHashRequest) XXX_Unmarshal(b []byte) error

type RetrieveBlockByNumberRequest

type RetrieveBlockByNumberRequest struct {
	LedgerId             string   `protobuf:"bytes,1,opt,name=ledgerId,proto3" json:"ledgerId,omitempty"`
	BlockNo              uint64   `protobuf:"varint,2,opt,name=blockNo,proto3" json:"blockNo,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*RetrieveBlockByNumberRequest) Descriptor

func (*RetrieveBlockByNumberRequest) Descriptor() ([]byte, []int)

func (*RetrieveBlockByNumberRequest) GetBlockNo

func (m *RetrieveBlockByNumberRequest) GetBlockNo() uint64

func (*RetrieveBlockByNumberRequest) GetLedgerId

func (m *RetrieveBlockByNumberRequest) GetLedgerId() string

func (*RetrieveBlockByNumberRequest) ProtoMessage

func (*RetrieveBlockByNumberRequest) ProtoMessage()

func (*RetrieveBlockByNumberRequest) Reset

func (m *RetrieveBlockByNumberRequest) Reset()

func (*RetrieveBlockByNumberRequest) String

func (*RetrieveBlockByNumberRequest) XXX_DiscardUnknown

func (m *RetrieveBlockByNumberRequest) XXX_DiscardUnknown()

func (*RetrieveBlockByNumberRequest) XXX_Marshal

func (m *RetrieveBlockByNumberRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RetrieveBlockByNumberRequest) XXX_Merge

func (m *RetrieveBlockByNumberRequest) XXX_Merge(src proto.Message)

func (*RetrieveBlockByNumberRequest) XXX_Size

func (m *RetrieveBlockByNumberRequest) XXX_Size() int

func (*RetrieveBlockByNumberRequest) XXX_Unmarshal

func (m *RetrieveBlockByNumberRequest) XXX_Unmarshal(b []byte) error

type RetrieveBlockByTxIDRequest

type RetrieveBlockByTxIDRequest struct {
	LedgerId             string   `protobuf:"bytes,1,opt,name=ledgerId,proto3" json:"ledgerId,omitempty"`
	TxID                 string   `protobuf:"bytes,2,opt,name=txID,proto3" json:"txID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*RetrieveBlockByTxIDRequest) Descriptor

func (*RetrieveBlockByTxIDRequest) Descriptor() ([]byte, []int)

func (*RetrieveBlockByTxIDRequest) GetLedgerId

func (m *RetrieveBlockByTxIDRequest) GetLedgerId() string

func (*RetrieveBlockByTxIDRequest) GetTxID

func (m *RetrieveBlockByTxIDRequest) GetTxID() string

func (*RetrieveBlockByTxIDRequest) ProtoMessage

func (*RetrieveBlockByTxIDRequest) ProtoMessage()

func (*RetrieveBlockByTxIDRequest) Reset

func (m *RetrieveBlockByTxIDRequest) Reset()

func (*RetrieveBlockByTxIDRequest) String

func (m *RetrieveBlockByTxIDRequest) String() string

func (*RetrieveBlockByTxIDRequest) XXX_DiscardUnknown

func (m *RetrieveBlockByTxIDRequest) XXX_DiscardUnknown()

func (*RetrieveBlockByTxIDRequest) XXX_Marshal

func (m *RetrieveBlockByTxIDRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RetrieveBlockByTxIDRequest) XXX_Merge

func (m *RetrieveBlockByTxIDRequest) XXX_Merge(src proto.Message)

func (*RetrieveBlockByTxIDRequest) XXX_Size

func (m *RetrieveBlockByTxIDRequest) XXX_Size() int

func (*RetrieveBlockByTxIDRequest) XXX_Unmarshal

func (m *RetrieveBlockByTxIDRequest) XXX_Unmarshal(b []byte) error

type RetrieveBlocksRequest

type RetrieveBlocksRequest struct {
	LedgerId             string   `protobuf:"bytes,1,opt,name=ledgerId,proto3" json:"ledgerId,omitempty"`
	StartNum             uint64   `protobuf:"varint,2,opt,name=startNum,proto3" json:"startNum,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*RetrieveBlocksRequest) Descriptor

func (*RetrieveBlocksRequest) Descriptor() ([]byte, []int)

func (*RetrieveBlocksRequest) GetLedgerId

func (m *RetrieveBlocksRequest) GetLedgerId() string

func (*RetrieveBlocksRequest) GetStartNum

func (m *RetrieveBlocksRequest) GetStartNum() uint64

func (*RetrieveBlocksRequest) ProtoMessage

func (*RetrieveBlocksRequest) ProtoMessage()

func (*RetrieveBlocksRequest) Reset

func (m *RetrieveBlocksRequest) Reset()

func (*RetrieveBlocksRequest) String

func (m *RetrieveBlocksRequest) String() string

func (*RetrieveBlocksRequest) XXX_DiscardUnknown

func (m *RetrieveBlocksRequest) XXX_DiscardUnknown()

func (*RetrieveBlocksRequest) XXX_Marshal

func (m *RetrieveBlocksRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RetrieveBlocksRequest) XXX_Merge

func (m *RetrieveBlocksRequest) XXX_Merge(src proto.Message)

func (*RetrieveBlocksRequest) XXX_Size

func (m *RetrieveBlocksRequest) XXX_Size() int

func (*RetrieveBlocksRequest) XXX_Unmarshal

func (m *RetrieveBlocksRequest) XXX_Unmarshal(b []byte) error

type RetrieveTxByBlockNumTranNumRequest

type RetrieveTxByBlockNumTranNumRequest struct {
	LedgerId             string   `protobuf:"bytes,1,opt,name=ledgerId,proto3" json:"ledgerId,omitempty"`
	BlockNo              uint64   `protobuf:"varint,2,opt,name=blockNo,proto3" json:"blockNo,omitempty"`
	TxNo                 uint64   `protobuf:"varint,3,opt,name=txNo,proto3" json:"txNo,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*RetrieveTxByBlockNumTranNumRequest) Descriptor

func (*RetrieveTxByBlockNumTranNumRequest) Descriptor() ([]byte, []int)

func (*RetrieveTxByBlockNumTranNumRequest) GetBlockNo

func (*RetrieveTxByBlockNumTranNumRequest) GetLedgerId

func (m *RetrieveTxByBlockNumTranNumRequest) GetLedgerId() string

func (*RetrieveTxByBlockNumTranNumRequest) GetTxNo

func (*RetrieveTxByBlockNumTranNumRequest) ProtoMessage

func (*RetrieveTxByBlockNumTranNumRequest) ProtoMessage()

func (*RetrieveTxByBlockNumTranNumRequest) Reset

func (*RetrieveTxByBlockNumTranNumRequest) String

func (*RetrieveTxByBlockNumTranNumRequest) XXX_DiscardUnknown

func (m *RetrieveTxByBlockNumTranNumRequest) XXX_DiscardUnknown()

func (*RetrieveTxByBlockNumTranNumRequest) XXX_Marshal

func (m *RetrieveTxByBlockNumTranNumRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RetrieveTxByBlockNumTranNumRequest) XXX_Merge

func (*RetrieveTxByBlockNumTranNumRequest) XXX_Size

func (*RetrieveTxByBlockNumTranNumRequest) XXX_Unmarshal

func (m *RetrieveTxByBlockNumTranNumRequest) XXX_Unmarshal(b []byte) error

type RetrieveTxByIDRequest

type RetrieveTxByIDRequest struct {
	LedgerId             string   `protobuf:"bytes,1,opt,name=ledgerId,proto3" json:"ledgerId,omitempty"`
	TxID                 string   `protobuf:"bytes,2,opt,name=txID,proto3" json:"txID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*RetrieveTxByIDRequest) Descriptor

func (*RetrieveTxByIDRequest) Descriptor() ([]byte, []int)

func (*RetrieveTxByIDRequest) GetLedgerId

func (m *RetrieveTxByIDRequest) GetLedgerId() string

func (*RetrieveTxByIDRequest) GetTxID

func (m *RetrieveTxByIDRequest) GetTxID() string

func (*RetrieveTxByIDRequest) ProtoMessage

func (*RetrieveTxByIDRequest) ProtoMessage()

func (*RetrieveTxByIDRequest) Reset

func (m *RetrieveTxByIDRequest) Reset()

func (*RetrieveTxByIDRequest) String

func (m *RetrieveTxByIDRequest) String() string

func (*RetrieveTxByIDRequest) XXX_DiscardUnknown

func (m *RetrieveTxByIDRequest) XXX_DiscardUnknown()

func (*RetrieveTxByIDRequest) XXX_Marshal

func (m *RetrieveTxByIDRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RetrieveTxByIDRequest) XXX_Merge

func (m *RetrieveTxByIDRequest) XXX_Merge(src proto.Message)

func (*RetrieveTxByIDRequest) XXX_Size

func (m *RetrieveTxByIDRequest) XXX_Size() int

func (*RetrieveTxByIDRequest) XXX_Unmarshal

func (m *RetrieveTxByIDRequest) XXX_Unmarshal(b []byte) error

type RetrieveTxValidationCodeByTxIDRequest

type RetrieveTxValidationCodeByTxIDRequest struct {
	LedgerId             string   `protobuf:"bytes,1,opt,name=ledgerId,proto3" json:"ledgerId,omitempty"`
	TxID                 string   `protobuf:"bytes,2,opt,name=txID,proto3" json:"txID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*RetrieveTxValidationCodeByTxIDRequest) Descriptor

func (*RetrieveTxValidationCodeByTxIDRequest) Descriptor() ([]byte, []int)

func (*RetrieveTxValidationCodeByTxIDRequest) GetLedgerId

func (*RetrieveTxValidationCodeByTxIDRequest) GetTxID

func (*RetrieveTxValidationCodeByTxIDRequest) ProtoMessage

func (*RetrieveTxValidationCodeByTxIDRequest) ProtoMessage()

func (*RetrieveTxValidationCodeByTxIDRequest) Reset

func (*RetrieveTxValidationCodeByTxIDRequest) String

func (*RetrieveTxValidationCodeByTxIDRequest) XXX_DiscardUnknown

func (m *RetrieveTxValidationCodeByTxIDRequest) XXX_DiscardUnknown()

func (*RetrieveTxValidationCodeByTxIDRequest) XXX_Marshal

func (m *RetrieveTxValidationCodeByTxIDRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RetrieveTxValidationCodeByTxIDRequest) XXX_Merge

func (*RetrieveTxValidationCodeByTxIDRequest) XXX_Size

func (*RetrieveTxValidationCodeByTxIDRequest) XXX_Unmarshal

func (m *RetrieveTxValidationCodeByTxIDRequest) XXX_Unmarshal(b []byte) error

type StoragePeerClient

type StoragePeerClient interface {
	GetBlockchainInfo(ctx context.Context, in *GetBlockchainInfoRequest, opts ...grpc.CallOption) (*common.BlockchainInfo, error)
	RetrieveBlockByHash(ctx context.Context, in *RetrieveBlockByHashRequest, opts ...grpc.CallOption) (*common.Block, error)
	RetrieveBlockByNumber(ctx context.Context, in *RetrieveBlockByNumberRequest, opts ...grpc.CallOption) (*common.Block, error)
	RetrieveTxByID(ctx context.Context, in *RetrieveTxByIDRequest, opts ...grpc.CallOption) (*common.Envelope, error)
	RetrieveTxByBlockNumTranNum(ctx context.Context, in *RetrieveTxByBlockNumTranNumRequest, opts ...grpc.CallOption) (*common.Envelope, error)
	RetrieveBlockByTxID(ctx context.Context, in *RetrieveBlockByTxIDRequest, opts ...grpc.CallOption) (*common.Block, error)
	RetrieveTxValidationCodeByTxID(ctx context.Context, in *RetrieveTxValidationCodeByTxIDRequest, opts ...grpc.CallOption) (*ValidationCode, error)
	RetrieveBlocks(ctx context.Context, in *RetrieveBlocksRequest, opts ...grpc.CallOption) (*Iterator, error)
	IteratorNext(ctx context.Context, in *Iterator, opts ...grpc.CallOption) (*common.Block, error)
	IteratorClose(ctx context.Context, in *Iterator, opts ...grpc.CallOption) (*Result, error)
}

StoragePeerClient is the client API for StoragePeer service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func GetStoragePeerClient

func GetStoragePeerClient() StoragePeerClient

func NewStoragePeerClient

func NewStoragePeerClient(cc *grpc.ClientConn) StoragePeerClient

type StoragePeerServer

StoragePeerServer is the server API for StoragePeer service.

type StorageRequest

type StorageRequest struct {
	LedgerId             string        `protobuf:"bytes,1,opt,name=ledgerId,proto3" json:"ledgerId,omitempty"`
	Block                *common.Block `protobuf:"bytes,2,opt,name=block,proto3" json:"block,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (*StorageRequest) Descriptor

func (*StorageRequest) Descriptor() ([]byte, []int)

func (*StorageRequest) GetBlock

func (m *StorageRequest) GetBlock() *common.Block

func (*StorageRequest) GetLedgerId

func (m *StorageRequest) GetLedgerId() string

func (*StorageRequest) ProtoMessage

func (*StorageRequest) ProtoMessage()

func (*StorageRequest) Reset

func (m *StorageRequest) Reset()

func (*StorageRequest) String

func (m *StorageRequest) String() string

func (*StorageRequest) XXX_DiscardUnknown

func (m *StorageRequest) XXX_DiscardUnknown()

func (*StorageRequest) XXX_Marshal

func (m *StorageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*StorageRequest) XXX_Merge

func (m *StorageRequest) XXX_Merge(src proto.Message)

func (*StorageRequest) XXX_Size

func (m *StorageRequest) XXX_Size() int

func (*StorageRequest) XXX_Unmarshal

func (m *StorageRequest) XXX_Unmarshal(b []byte) error

type UnimplementedStoragePeerServer

type UnimplementedStoragePeerServer struct {
}

UnimplementedStoragePeerServer can be embedded to have forward compatible implementations.

func (*UnimplementedStoragePeerServer) GetBlockchainInfo

func (*UnimplementedStoragePeerServer) IteratorClose

func (*UnimplementedStoragePeerServer) IteratorClose(ctx context.Context, req *Iterator) (*Result, error)

func (*UnimplementedStoragePeerServer) IteratorNext

func (*UnimplementedStoragePeerServer) RetrieveBlockByHash

func (*UnimplementedStoragePeerServer) RetrieveBlockByNumber

func (*UnimplementedStoragePeerServer) RetrieveBlockByTxID

func (*UnimplementedStoragePeerServer) RetrieveBlocks

func (*UnimplementedStoragePeerServer) RetrieveTxByBlockNumTranNum

func (*UnimplementedStoragePeerServer) RetrieveTxByID

func (*UnimplementedStoragePeerServer) RetrieveTxValidationCodeByTxID

type ValidationCode

type ValidationCode struct {
	ValidationCode       int32    `protobuf:"varint,1,opt,name=validationCode,proto3" json:"validationCode,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*ValidationCode) Descriptor

func (*ValidationCode) Descriptor() ([]byte, []int)

func (*ValidationCode) GetValidationCode

func (m *ValidationCode) GetValidationCode() int32

func (*ValidationCode) ProtoMessage

func (*ValidationCode) ProtoMessage()

func (*ValidationCode) Reset

func (m *ValidationCode) Reset()

func (*ValidationCode) String

func (m *ValidationCode) String() string

func (*ValidationCode) XXX_DiscardUnknown

func (m *ValidationCode) XXX_DiscardUnknown()

func (*ValidationCode) XXX_Marshal

func (m *ValidationCode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ValidationCode) XXX_Merge

func (m *ValidationCode) XXX_Merge(src proto.Message)

func (*ValidationCode) XXX_Size

func (m *ValidationCode) XXX_Size() int

func (*ValidationCode) XXX_Unmarshal

func (m *ValidationCode) XXX_Unmarshal(b []byte) error

Jump to

Keyboard shortcuts

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