Documentation
¶
Overview ¶
backend.go
ibackend.go
imimei.go
lapi2.go
vars.go
Index ¶
- Constants
- func GetArgs() []any
- func GetLocalPassport(port int, validPeriod int) (string, error)
- func GetRequest() map[string]string
- func GetWriter() io.Writer
- func InitStubByUrl(stub any, url string)
- func ScorePairs2Members(sps []ScorePair) []string
- type AddrInfo
- type App
- type AppDataStub
- type AppStub
- type AuthStub
- type BEAppDataStub
- type BEWebStub
- type BackEndStub
- func (s *BackEndStub) BELoginAsApp() (sid string, err error)
- func (s *BackEndStub) BELoginAsAuthor() (sid string, err error)
- func (s *BackEndStub) BEMMSync(strdhts string, mid string, param map[string]string) error
- func (s *BackEndStub) BEOpenAppDataApp(ver, mark string) (mmsid string, err error)
- func (s *BackEndStub) BEOpenAppDataNode(ver, mark string) (mmsid string, err error)
- func (s *BackEndStub) BEReadFile(name string, ops ...string) ([]byte, error)
- func (s *BackEndStub) BESign(info map[string]string) (string, error)
- func (s *BackEndStub) BESignPPT(info map[string]string, period int) (string, error)
- func (s *BackEndStub) CreateSession() (sid string)
- func (s *BackEndStub) Critical(format string, v ...interface{})
- func (s *BackEndStub) Debug(format string, v ...interface{})
- func (s *BackEndStub) Error(format string, v ...interface{})
- func (s *BackEndStub) Info(format string, v ...interface{})
- func (s *BackEndStub) ReleaseSession(sid string) error
- func (s *BackEndStub) SessionDelete(sid, key string) error
- func (s *BackEndStub) SessionGet(sid, key string) (value any, err error)
- func (s *BackEndStub) SessionSet(sid, key string, value any) error
- func (s *BackEndStub) Trace(format string, v ...interface{})
- func (s *BackEndStub) Warn(format string, v ...interface{})
- type DNSStub
- type DagNodeData
- type DagStat
- type DagStats
- type DagStub
- type DhtReply
- type FVPair
- type FileInfo
- type FilesStub
- type IAppData
- type IAuth
- type IBEAppData
- type IBEWeb
- type IBackEnd
- type IDNS
- type IDag
- type IFilesStub
- type IIpfsNode
- type ILApp
- type ILog
- type IMDb
- type IMFile
- type IMiMei
- type IMsg
- type INet
- type IRPC
- type ISession
- type IStat
- type ISwarm
- type IVarAct
- type IpfsNodeStub
- type LApi
- type LApiStub
- func (s *LApiStub) Act(sid, name string, args ...string) (any, error)
- func (stub *LApiStub) Begin(mmsid string, timeout int) error
- func (stub *LApiStub) CheckIntegrity(mmsid string, dataType uint8, key string, bRepair bool) error
- func (stub *LApiStub) Commit(mmsid string) error
- func (s *LApiStub) DagGet(sid, ps string) (DagNodeData, error)
- func (s *LApiStub) DagStat(sid, ps string) (*DagStats, error)
- func (stub *LApiStub) Del(mmsid string, key ...string) (int64, error)
- func (s *LApiStub) DelDomain(sid, domain string) error
- func (s *LApiStub) DelRoute(sid, path string) error
- func (stub *LApiStub) FilesCheck(sid, ps string, sync bool) error
- func (s *LApiStub) FilesCopy(sid, src, dst string, flush bool) error
- func (s *LApiStub) FilesFlush(sid, ps string) (string, error)
- func (s *LApiStub) FilesLs(sid, ps string) ([]LsLink, error)
- func (s *LApiStub) FilesMkdir(sid, ps string, flush bool) error
- func (s *LApiStub) FilesMv(sid, src, dst string, flush bool) error
- func (s *LApiStub) FilesRm(sid, ps string, recursive, flush bool) error
- func (s *LApiStub) FilesStat(sid, ps string) (*StatInfo, error)
- func (s *LApiStub) FiltersAdd(sid string, cidrs []string) error
- func (s *LApiStub) FiltersRm(sid string, cidrs []string) error
- func (stub *LApiStub) Get(mmsid, key string) (any, error)
- func (s *LApiStub) GetGobVar(sid, name string, args ...string) ([]byte, error)
- func (stub *LApiStub) GetLastSeq(mmsid string) (uint64, error)
- func (s *LApiStub) GetMiMeiStat(sid, mid string) (stats MiMeiStats, err error)
- func (s *LApiStub) GetUserMids(sid, uid string, start int64, count int) ([]ScorePair, error)
- func (s *LApiStub) GetVar(sid, name string, args ...string) (any, error)
- func (s *LApiStub) GetVarByContext(sid, name string, mapOpt map[string]string) (any, error)
- func (s *LApiStub) GetVarObj(obj any, sid string, name string, args ...string) error
- func (stub *LApiStub) Hclear(mmsid string, key string) (int64, error)
- func (stub *LApiStub) Hdel(mmsid, key string, field ...string) (int64, error)
- func (stub *LApiStub) Hget(mmsid, key, field string) (any, error)
- func (stub *LApiStub) Hgetall(mmsid, key string) ([]FVPair, error)
- func (stub *LApiStub) HincrBy(mmsid, key, field string, delta int64) (int64, error)
- func (stub *LApiStub) Hkeys(mmsid, key string) ([]string, error)
- func (stub *LApiStub) Hlen(mmsid, key string) (int64, error)
- func (stub *LApiStub) Hmclear(mmsid string, key ...string) (int64, error)
- func (stub *LApiStub) Hmget(mmsid, key string, fields ...string) ([]any, error)
- func (stub *LApiStub) Hmset(mmsid, key string, values ...FVPair) error
- func (stub *LApiStub) Hrevscan(mmsid, key, beginfield, match string, count int, inclusive bool) ([]FVPair, error)
- func (stub *LApiStub) Hscan(mmsid, key, beginfield, match string, count int, inclusive bool) ([]FVPair, error)
- func (stub *LApiStub) Hset(mmsid, key, field string, value any) (int64, error)
- func (s *LApiStub) INGetData(sid, ps string, start int64, count int) ([]byte, error)
- func (s *LApiStub) INOpen(sid, ps string, level int) ([]byte, error)
- func (stub *LApiStub) Incr(mmsid, key string) (int64, error)
- func (stub *LApiStub) IncrBy(mmsid, key string, delta int64) (int64, error)
- func (s *LApiStub) IpfsAdd(sid, ps string) (string, error)
- func (stub *LApiStub) Lclear(mmsid, key string) (int64, error)
- func (stub *LApiStub) Lindex(mmsid, key string, index int32) (any, error)
- func (stub *LApiStub) Llen(mmsid, key string) (int64, error)
- func (stub *LApiStub) Lmclear(mmsid string, keys ...string) (int64, error)
- func (s *LApiStub) LoginWithPPT(strPPT string) (*LoginReply, error)
- func (s *LApiStub) Logout(sid, info string) error
- func (stub *LApiStub) Lpop(mmsid, key string) (any, error)
- func (stub *LApiStub) Lpush(mmsid, key string, value ...any) (int64, error)
- func (stub *LApiStub) Lrange(mmsid, key string, start, stop int32) ([]any, error)
- func (stub *LApiStub) Lset(mmsid, key string, index int32, value any) error
- func (s *LApiStub) MFCopy(sid, src, dst string, bFlush, bForce bool) error
- func (stub *LApiStub) MFGetData(fsid string, start int64, count int) ([]byte, error)
- func (stub *LApiStub) MFGetMimeType(fsid string) (string, error)
- func (stub *LApiStub) MFGetObject(fsid string) (any, error)
- func (stub *LApiStub) MFGetSize(fsid string) (int64, error)
- func (stub *LApiStub) MFIsExist(fsid, fileid string) (bool, error)
- func (stub *LApiStub) MFLocal2MacFile(sid, mid, ps string) (string, error)
- func (s *LApiStub) MFLs(sid, ps string) ([]LsLink, error)
- func (s *LApiStub) MFMkdir(sid, ps string, flush bool) error
- func (stub *LApiStub) MFOpenByPath(sid, mid, path string, flag int) (string, error)
- func (stub *LApiStub) MFOpenMacFile(sid, mid, fileid string) (string, error)
- func (stub *LApiStub) MFOpenTempFile(sid string) (string, error)
- func (stub *LApiStub) MFPath2TempID(sid, localpath string) (string, error)
- func (stub *LApiStub) MFReaddir(fsid string, count int) ([]*FileInfo, error)
- func (stub *LApiStub) MFSetCid(sid, mid, cid string) (string, error)
- func (stub *LApiStub) MFSetData(fsid string, data []byte, start int64) (count int, err error)
- func (stub *LApiStub) MFSetObject(fsid string, obj any) error
- func (stub *LApiStub) MFStat(fsid string) (*FileInfo, error)
- func (stub *LApiStub) MFTemp2Files(fsid, ps string) (string, error)
- func (stub *LApiStub) MFTemp2Ipfs(fsid, mid string) (string, error)
- func (stub *LApiStub) MFTemp2MacFile(fsid, mid string) (string, error)
- func (stub *LApiStub) MFTruncate(fsid string, size int64) error
- func (s *LApiStub) MMAddRef(sid, mid string, fileids ...string) (int, error)
- func (s *LApiStub) MMBackup(sid, mid, memo string, opt ...string) (string, error)
- func (s *LApiStub) MMClose(mmsid string) error
- func (s *LApiStub) MMCreate(sid, appid, ext, mark string, tp byte, right uint64) (mid string, err error)
- func (s *LApiStub) MMCreateAppData(sid, aid, tp, defOwner, mark string, right uint64) (did string, err error)
- func (s *LApiStub) MMDelRef(sid, mid string, fileids ...string) (int, error)
- func (s *LApiStub) MMDelVers(sid, mid string, vers ...string) (int64, error)
- func (s *LApiStub) MMGetAppDataID(sid, aid, tp, owner, mark string, check bool) (appdataid string, err error)
- func (s *LApiStub) MMGetRef(sid, mid, ver string) (ret Refs, err error)
- func (s *LApiStub) MMGetRefs(sid, mid string, vers ...string) (MiMeiRefs, error)
- func (s *LApiStub) MMGetRight(sid, mmid, uid string) (right uint64, err error)
- func (s *LApiStub) MMOpen(sid, mid, ver string, opt ...string) (string, error)
- func (s *LApiStub) MMOpenAppData(sid, aid, tp, owner, ver, mark string) (mmsid string, err error)
- func (s *LApiStub) MMOpenAppDataApp(sid, aid, ver, mark string) (mmsid string, err error)
- func (s *LApiStub) MMOpenAppDataNode(sid, aid, ver, mark string) (mmsid string, err error)
- func (s *LApiStub) MMOpenAppDataUser(sid, aid, owner, ver, mark string) (mmsid string, err error)
- func (s *LApiStub) MMOpenUrl(sid, ps string) (string, error)
- func (s *LApiStub) MMRelease(sid, mid, ver string) (string, error)
- func (s *LApiStub) MMRestore(sid, mid, ver string) error
- func (s *LApiStub) MMSetRight(sid, mid, member string, right uint64) error
- func (s *LApiStub) MMSum(sid, mid, ver, tp string) (string, error)
- func (stub *LApiStub) MMSyncData(sid, mid, tp string, mark []byte, count uint64, verseq ...uint64) ([]byte, error)
- func (s *LApiStub) MiMeiIsProvider(sid, mid string) (bool, error)
- func (s *LApiStub) PPTStr2Map(strPPT string) (map[string]string, error)
- func (s *LApiStub) PullMsg(sid string, timeout int) (*Message, error)
- func (s *LApiStub) ReadMsg(sid string) ([]*Message, error)
- func (stub *LApiStub) Rollback(mmsid string) error
- func (stub *LApiStub) Rpop(mmsid, key string) (any, error)
- func (stub *LApiStub) Rpush(mmsid, key string, value ...any) (int64, error)
- func (s *LApiStub) RunMApp(entry string, request map[string]string, args []any, opt ...string) (ret any, err error)
- func (stub *LApiStub) Sadd(mmsid, key string, args ...string) (int64, error)
- func (stub *LApiStub) Scan(mmsid string, begin, match string, count int, inclusive bool, tp byte) (keys []string, err error)
- func (stub *LApiStub) Scard(mmsid, key string) (int64, error)
- func (stub *LApiStub) Sclear(mmsid, key string) (int64, error)
- func (stub *LApiStub) Sdiff(mmsid string, keys ...string) ([]string, error)
- func (s *LApiStub) SendMsg(sid string, msg *Message) error
- func (stub *LApiStub) Set(mmsid, key string, value any) error
- func (s *LApiStub) SetDomain(sid, domain string, info map[string]string) error
- func (s *LApiStub) SetRoute(sid, path, target string) error
- func (s *LApiStub) SetUserInfo(sid string, param map[string]string) error
- func (s *LApiStub) ShowDomain(sid string) ([]string, error)
- func (s *LApiStub) ShowRoute(sid string) (map[string]string, error)
- func (s *LApiStub) Sign(sid string, req *SignRequest) (sig []byte, err error)
- func (s *LApiStub) SignInfo2Map(strInfo string) (map[string]string, error)
- func (s *LApiStub) SignPPT(sid string, req *SignPPTRequest) (string, error)
- func (stub *LApiStub) Sinter(mmsid string, keys ...string) ([]string, error)
- func (stub *LApiStub) Smclear(mmsid string, key ...string) (int64, error)
- func (stub *LApiStub) Smembers(mmsid, key string) ([]string, error)
- func (stub *LApiStub) Srem(mmsid, key string, m string) (int64, error)
- func (stub *LApiStub) Strlen(mmsid, key string) (int64, error)
- func (stub *LApiStub) Sunion(mmsid string, keys ...string) ([]string, error)
- func (s *LApiStub) SwarmAddrs(sid string, pids ...string) (map[string][]string, error)
- func (s *LApiStub) SwarmConnect(sid, addr string) error
- func (s *LApiStub) SwarmDisconnect(sid, addr string) error
- func (s *LApiStub) SwarmListen(sid string) ([]string, error)
- func (s *LApiStub) SwarmLocal(sid string) ([]string, error)
- func (s *LApiStub) SwarmPeers(sid string) ([]string, error)
- func (stub *LApiStub) Zadd(mmsid, key string, args ...ScorePair) (int64, error)
- func (stub *LApiStub) Zaddwithseq(mmsid, key string, members ...string) (int64, error)
- func (stub *LApiStub) Zcard(mmsid, key string) (int64, error)
- func (stub *LApiStub) Zclear(mmsid, key string) (int64, error)
- func (stub *LApiStub) Zcount(mmsid, key string, mins, maxs int64) (int64, error)
- func (stub *LApiStub) ZincrBy(mmsid, key string, delta int64, member string) (int64, error)
- func (stub *LApiStub) Zmclear(mmsid string, key ...string) (int64, error)
- func (stub *LApiStub) Zrange(mmsid, key string, start, stop int) ([]ScorePair, error)
- func (stub *LApiStub) Zrangebyscore(mmsid, key string, mins, maxs int64, offset int, count int) ([]ScorePair, error)
- func (stub *LApiStub) Zrank(mmsid, key, member string) (int64, error)
- func (stub *LApiStub) Zrem(mmsid, key string, members ...string) (int64, error)
- func (stub *LApiStub) Zremrangebyscore(mmsid, key string, mins, maxs int64) (int64, error)
- func (stub *LApiStub) Zrevrange(mmsid, key string, start, stop int) ([]ScorePair, error)
- func (stub *LApiStub) Zrevrangebyscore(mmsid, key string, mins, maxs int64, offset int, count int) ([]ScorePair, error)
- func (stub *LApiStub) Zscore(mmsid, key, member string) (int64, error)
- type LogStub
- type LoginReply
- type LsLink
- type MDbStub
- type MFileStub
- type MMInfo
- type Message
- type MiMeiInfo
- type MiMeiRefs
- type MiMeiShowReply
- type MiMeiStat
- type MiMeiStats
- type MiMeiStub
- type MiMeiVersion
- type MiMeiVersions
- type MsgStub
- type Msgs
- type NetStub
- type NodeLoginReply
- type PinLsObject
- type Refs
- type RepoStat
- type ScorePair
- type ScriptInfo
- type Service
- type Services
- type SessionStub
- type SignPPTRequest
- type SignRequest
- type SpecialVersion
- type StatCPU
- type StatInfo
- type StatStub
- type StatUsage
- type StatVirtualMemory
- type SwarmStub
- type TaskSetting
- type VarActStub
- type Ver2ProvsInfo
Constants ¶
const ( Request_AppVer = "ver" Request_Author = "author" Request_AppName = "app" Request_AppID = "aid" Request_Entry = "entry" Request_MID = "mid" //内部必然有一个 Request_Sid = "sid" //内部必然有一个 Request_NodeID = "nid" Request_SidApp = "sidapp" //应用sid,作者身份 Request_MMRoot = "mmroot" //应用对外根目录,由节点注入 ApiVarNodeAppCode = "nodeappcode" )
const ( TFile = iota TDir )
const ( ApiVarVersion = "ver" //应用版本 ApiVarCPU = "cpu" //获取cpu的状态 ApiVarDisk = "disk" //获取cpu的状态 ApiVarVirtualMemory = "virtualmemory" //获取虚拟内存的状态 ApiVarMiMeiInfo = "mminfo" //弥媒信息 )
const ( LeitherApp = "Fc1BRTFafOGzq5P8KmkVJqwS2v2" //memo:leitherapp MExplorerID = "1ZLw8a9HvMnlnDzvo9JtktjW_3j" //memo:mExplorer Leither mimei create -m mExplorer -e app -k l.key LeitherDoc = "BWqzK1UxomhsLnxj6U1OZncvdux" //Leither mimei create -m leitherdocment -k l.key -a 1ZLw8a9HvMnlnDzvo9JtktjW_3j LeitherServiceID = "9QHDgCSdxWYPFyd4XxJz7DQasam" //系统应用LeitherService LeitherService2 = "x-zuVGwiGXZvq7q9FbojNldrjSD" //系统应用LeitherService2 )
系统弥媒id
Variables ¶
This section is empty.
Functions ¶
func GetLocalPassport ¶
GetLocalPassport 从本地节点获取通行证
func GetRequest ¶
Types ¶
type App ¶
type App struct {
//这个json标签可以去掉了
ID string //`json:"id"` //应用id
Name string //应用名称
Author string //开发者id
Release string //release
Last string //last ver
}
应用
type AppDataStub ¶ added in v0.3.0
type AppDataStub struct {
MMGetAppDataID func(sid, aid, tp, owner, mark string, check bool) (appdataid string, err error)
MMCreateAppData func(sid, aid, tp, defOwner, mark string, right uint64) (did string, err error)
MMOpenAppData func(sid, aid, tp, owner, ver, mark string) (mmsid string, err error)
MMOpenAppDataApp func(sid, aid, ver, mark string) (mmsid string, err error)
MMOpenAppDataNode func(sid, aid, ver, mark string) (mmsid string, err error)
MMOpenAppDataUser func(sid, aid, owner, ver, mark string) (mmsid string, err error)
}
AppDataStub 应用数据操作(Wave B appdata:自 api.AppDataStub 开放下沉)
type AppStub ¶ added in v0.3.0
type AppStub struct {
// RunMApp 调用应用的指定入口(app 由运行上下文决定)
RunMApp func(entry string, request map[string]string, args []any, opt ...string) (ret any, err error)
}
AppStub 应用操作(Wave B lapp:仅开放 RunMApp 应用间调用; UploadApp/UploadAppfile/UninstallApp 供应链写操作、RunScript 任意脚本执行,评审不开放)
type AuthStub ¶
type AuthStub struct {
LoginWithPPT func(strPPT string) (*LoginReply, error)
Logout func(sid, info string) error
// —— 以下自 api.AuthStub2 开放下沉(Wave B auth2,评审通过)——
SetUserInfo func(sid string, param map[string]string) error
SignPPT func(sid string, req *SignPPTRequest) (string, error)
Sign func(sid string, req *SignRequest) (sig []byte, err error)
PPTStr2Map func(strPPT string) (map[string]string, error)
SignInfo2Map func(strInfo string) (map[string]string, error)
}
type BEAppDataStub ¶
type BEAppDataStub struct {
BEOpenAppDataNode func(string, string) (mmsid string, err error)
BEOpenAppDataApp func(string, string) (mmsid string, err error)
BEMMSync func(strdhts string, mid string, param map[string]string) error
BELoginAsApp func() (sid string, err error)
BESignPPT func(info map[string]string, period int) (string, error)
BESign func(info map[string]string) (string, error)
// Deprecated: 2026-09-03 冻结(冻而不废):对外不再演进、禁止新增依赖;
// 删除走观测驱动,见 docs/KEY_AUTH_MECHANISM_AUDIT.md §2 F4 与
// planning-artifacts/milestone-2026-09/T1/f4-belogin-author-freeze-2026-09-02.md。
BELoginAsAuthor func() (sid string, err error)
}
BEAppDataStub
这里面放的是应用中后端数据操作的api接口。
一、BEOpenAppDataNode(ver, mark string) (mmsid string, err error) 简介:
这是应用在节点上的打开节点的弥媒
参数:
ver,弥媒的版本,cur表示当前的可写版本,last表示最后一次备份的版本
返回值:
mmsid 弥媒的数据id,可用于数据库相关的api操作
二、BEOpenAppDataApp(ver, mark string) (mmsid string, err error) 简介:
打开节点的弥媒
参数:
ver,弥媒的版本,cur表示当前的可写版本,last表示最后一次备份的版本
返回值:
mmsid 弥媒的数据id,可用于数据库相关的api操作
BELoginAsAuthor()(sid string, err error)
简介:
以作者作者身份登陆
返回值:
Sessionid,可用于所有需要会话id的api,执行的时候代表作者身份
【冻结标记 2026-09-03】DEPRECATED(冻而不废):对外不再演进、禁止新增依赖; 删除走观测驱动,见 docs/KEY_AUTH_MECHANISM_AUDIT.md §2 F4 与 planning-artifacts/milestone-2026-09/T1/f4-belogin-author-freeze-2026-09-02.md。
type BackEndStub ¶
type BackEndStub struct {
*LApiStub
*SessionStub
*BEAppDataStub
*LogStub
*BEWebStub
}
func (*BackEndStub) BELoginAsApp ¶
func (s *BackEndStub) BELoginAsApp() (sid string, err error)
BELoginAsApp 以应用身份登录
func (*BackEndStub) BELoginAsAuthor ¶
func (s *BackEndStub) BELoginAsAuthor() (sid string, err error)
BELoginAsAuthor 以作者身份登录 Deprecated: 2026-09-03 冻结(冻而不废):对外不再演进、禁止新增依赖; 接口接线不变、零行为变更,删除走观测驱动,见 docs/KEY_AUTH_MECHANISM_AUDIT.md §2 F4 与 planning-artifacts/milestone-2026-09/T1/f4-belogin-author-freeze-2026-09-02.md。
func (*BackEndStub) BEOpenAppDataApp ¶
func (s *BackEndStub) BEOpenAppDataApp(ver, mark string) (mmsid string, err error)
BEOpenAppDataApp 打开应用的弥媒数据
func (*BackEndStub) BEOpenAppDataNode ¶
func (s *BackEndStub) BEOpenAppDataNode(ver, mark string) (mmsid string, err error)
BEOpenAppDataNode 打开节点的弥媒数据
func (*BackEndStub) BEReadFile ¶ added in v0.2.0
func (s *BackEndStub) BEReadFile(name string, ops ...string) ([]byte, error)
BEReadFile 读取应用 mmroot 文件并可选预处理(nil 安全:未接线返回错误)。
func (*BackEndStub) BESign ¶
func (s *BackEndStub) BESign(info map[string]string) (string, error)
BESign 签名操作
func (*BackEndStub) CreateSession ¶
func (s *BackEndStub) CreateSession() (sid string)
CreateSession 创建一个session并返回id 注意:签名无 error 返回值,未接线时返回空 sid(调用方可判 sid==""); 其余可返回 error 的方法一律显式报"未接线"(D1)。
func (*BackEndStub) Critical ¶
func (s *BackEndStub) Critical(format string, v ...interface{})
Critical 记录严重级别日志
func (*BackEndStub) Debug ¶
func (s *BackEndStub) Debug(format string, v ...interface{})
Debug 记录调试级别日志
func (*BackEndStub) Error ¶
func (s *BackEndStub) Error(format string, v ...interface{})
Error 记录错误级别日志
func (*BackEndStub) Info ¶
func (s *BackEndStub) Info(format string, v ...interface{})
Info 记录信息级别日志
func (*BackEndStub) ReleaseSession ¶
func (s *BackEndStub) ReleaseSession(sid string) error
ReleaseSession 释放指定的session
func (*BackEndStub) SessionDelete ¶
func (s *BackEndStub) SessionDelete(sid, key string) error
SessionDelete 删除session中指定key的值
func (*BackEndStub) SessionGet ¶
func (s *BackEndStub) SessionGet(sid, key string) (value any, err error)
SessionGet 获取session中指定key的值
func (*BackEndStub) SessionSet ¶
func (s *BackEndStub) SessionSet(sid, key string, value any) error
SessionSet 设置session中指定key的值
func (*BackEndStub) Trace ¶
func (s *BackEndStub) Trace(format string, v ...interface{})
Trace 记录跟踪级别日志
func (*BackEndStub) Warn ¶
func (s *BackEndStub) Warn(format string, v ...interface{})
Warn 记录警告级别日志
type DNSStub ¶ added in v0.3.0
type DNSStub struct {
SetDomain func(sid, domain string, info map[string]string) error
DelDomain func(sid, domain string) error
ShowDomain func(sid string) ([]string, error)
SetRoute func(sid, path, target string) error
DelRoute func(sid, path string) error
ShowRoute func(sid string) (map[string]string, error)
}
DNSStub 域名与路由配置(Wave B net_dns:自 api.DNSStub 开放下沉)
type DagStat ¶
type DagStat struct {
Cid string `json:",omitempty"`
Size uint64 `json:",omitempty"`
NumBlocks uint64 `json:",omitempty"`
}
DagStat is a dag stat command response
type DagStub ¶ added in v0.3.0
type DagStub struct {
DagGet func(sid, ps string) (DagNodeData, error)
DagStat func(sid, ps string) (*DagStats, error)
}
DagStub DAG 查询(Wave B net_ipfs:自 api.DagStub 开放下沉)
type FileInfo ¶
type FilesStub ¶
type FilesStub struct {
FilesCopy func(sid, src, dst string, flush bool) error
FilesLs func(sid, ps string) ([]LsLink, error)
FilesCheck func(sid, ps string, sync bool) error
FilesMkdir func(sid, ps string, flush bool) error
FilesRm func(sid, ps string, recursive, flush bool) error
FilesMv func(sid, src, dst string, flush bool) error
FilesFlush func(sid, ps string) (string, error)
FilesStat func(sid, ps string) (*StatInfo, error)
}
type IAppData ¶ added in v0.3.0
type IAppData interface {
MMGetAppDataID(sid, aid, tp, owner, mark string, check bool) (appdataid string, err error)
MMCreateAppData(sid, aid, tp, defOwner, mark string, right uint64) (did string, err error)
MMOpenAppData(sid, aid, tp, owner, ver, mark string) (mmsid string, err error)
MMOpenAppDataApp(sid, aid, ver, mark string) (mmsid string, err error)
MMOpenAppDataNode(sid, aid, ver, mark string) (mmsid string, err error)
MMOpenAppDataUser(sid, aid, owner, ver, mark string) (mmsid string, err error)
}
IAppData 应用数据接口(Wave B appdata:自 api.IAppData 开放下沉)
type IAuth ¶
type IAuth interface {
LoginWithPPT(strPPT string) (*LoginReply, error)
Logout(sid, info string) error
// —— 以下自 api.IAuth 开放下沉(Wave B auth2,评审通过)——
// SetUserInfo 设置当前会话用户的公开信息
SetUserInfo(sid string, param map[string]string) error
// SignPPT 以会话用户身份签名 PPT(req.Period 单位:分钟,与服务端实现一致)
SignPPT(sid string, req *SignPPTRequest) (string, error)
// Sign 以会话用户身份签名消息(F4b 结构化请求;盲签裸 message 入口已移除)
Sign(sid string, req *SignRequest) (sig []byte, err error)
// PPTStr2Map 将 PPT 字符串解析为 Map(纯解析,无状态)
PPTStr2Map(strPPT string) (map[string]string, error)
// SignInfo2Map 将签名信息字符串解析为 Map(纯解析,无状态)
SignInfo2Map(strInfo string) (map[string]string, error)
}
IAuth 接口定义了认证相关的操作方法
type IBEAppData ¶
type IBEAppData interface {
// BEOpenAppDataNode 以节点身份打开应用数据区域
// 节点身份具有可读可写权限,适用于节点级别的数据管理
// 如果数据区域不存在会自动创建
// ver: 数据版本("cur"当前版本,"last"备份版本)
// mark: 数据区域标记
// 返回: 弥媒数据ID,可用于后续数据库操作
BEOpenAppDataNode(ver, mark string) (mmsid string, err error)
// BEOpenAppDataApp 以应用作者身份打开应用数据区域
// 应用作者身份具有可读可写权限,适用于应用级别的数据管理
// 如果数据区域不存在会自动创建
// ver: 数据版本("cur"当前版本,"last"备份版本)
// mark: 数据区域标记
// 返回: 弥媒数据ID,可用于后续数据库操作
BEOpenAppDataApp(ver, mark string) (mmsid string, err error)
// BEMMSync 同步弥媒数据到DHT网络
// strdhts: DHT网络标识
// mid: 弥媒ID
// param: 同步参数
BEMMSync(strdhts string, mid string, param map[string]string) error
// BELoginAsApp 以应用身份登录
// 返回会话ID,可用于需要会话的API操作
BELoginAsApp() (sid string, err error)
// BESignPPT 签名PPT文档
// info: 签名信息
// period: 有效期(分钟,T1 F2 全表面统一)
// 返回: 签名的PPT字符串
BESignPPT(info map[string]string, period int) (string, error)
// BESign 签名操作
// info: 签名信息
// 返回: 签名结果字符串
BESign(info map[string]string) (string, error)
// BELoginAsAuthor 以作者身份登录
// 返回会话ID,可用于需要会话的API操作
// Deprecated: 2026-09-03 冻结(冻而不废):对外不再演进、禁止新增依赖;
// 接口接线不变、零行为变更,删除走观测驱动(节点侧调用日志打点确认无外部调用后废弃),
// 见 docs/KEY_AUTH_MECHANISM_AUDIT.md §2 F4 与
// planning-artifacts/milestone-2026-09/T1/f4-belogin-author-freeze-2026-09-02.md。
BELoginAsAuthor() (sid string, err error)
}
type IBEWeb ¶ added in v0.2.0
type IBEWeb interface {
// BEReadFile 读取应用 mmroot 下文件并返回最终内容。
// name: mmroot 下相对路径(如 index.html、css/theme.css)。
// ops: 预处理操作(可多个,节点按内部固定顺序应用);空=原始读;
// 含 "web" = 网页可服务化流水线(css-inline + link-rewrite,仅 html 生效);
// 未知操作名返回错误。
BEReadFile(name string, ops ...string) ([]byte, error)
}
IBEWeb 定义后端 web 内容服务 API(mmroot 文件读取 + 网页预处理)。
type IDNS ¶ added in v0.3.0
type IDNS interface {
SetDomain(sid, domain string, info map[string]string) error
DelDomain(sid, domain string) error
ShowDomain(sid string) ([]string, error)
SetRoute(sid, path, target string) error
DelRoute(sid, path string) error
ShowRoute(sid string) (map[string]string, error)
}
IDNS 域名与路由配置接口(Wave B net_dns:自 api.IDNS 开放下沉)
type IDag ¶ added in v0.3.0
type IDag interface {
DagGet(sid, ps string) (DagNodeData, error)
DagStat(sid, ps string) (*DagStats, error)
}
IDag DAG 查询接口(Wave B net_ipfs:自 api.IDag 开放下沉)
type IFilesStub ¶
type IFilesStub interface {
FilesCopy(sid, src, dst string, flush bool) error
FilesLs(sid, ps string) ([]LsLink, error)
FilesCheck(sid, ps string, sync bool) error
FilesMkdir(sid, ps string, flush bool) error
FilesRm(sid, ps string, recursive, flush bool) error
FilesMv(sid, src, dst string, flush bool) error
FilesFlush(sid, ps string) (string, error)
FilesStat(sid, ps string) (*StatInfo, error)
}
type IIpfsNode ¶ added in v0.3.0
type IIpfsNode interface {
INOpen(sid, ps string, level int) ([]byte, error)
INGetData(sid, ps string, start int64, count int) ([]byte, error)
}
IIpfsNode IPFS 节点数据读取接口(Wave B net_ipfs:自 api.IIpfsNode 开放下沉)
type ILApp ¶
type ILApp interface {
RunMApp(entry string, request map[string]string, args []any, opt ...string) (ret any, err error)
}
ILApp 应用调用接口(Wave B lapp:仅开放 RunMApp 应用间组合; UploadApp/UploadAppfile/UninstallApp 供应链写操作评审不开放,保留在 api.ILApp 节点侧)
type ILog ¶
type ILog interface {
// Trace 记录跟踪级别日志
Trace(format string, v ...interface{})
// Debug 记录调试级别日志
Debug(format string, v ...interface{})
// Info 记录信息级别日志
Info(format string, v ...interface{})
// Warn 记录警告级别日志
Warn(format string, v ...interface{})
// Error 记录错误级别日志
Error(format string, v ...interface{})
// Critical 记录严重级别日志
Critical(format string, v ...interface{})
}
ILogStub 接口定义了日志操作的所有方法
type IMDb ¶
type IMDb interface {
Begin(mmsid string, timeout int) error
Commit(mmsid string) error
Rollback(mmsid string) error
GetLastSeq(mmsid string) (uint64, error)
Set(mmsid, key string, value any) error
Get(mmsid, key string) (any, error)
Del(mmsid string, key ...string) (int64, error)
Incr(mmsid, key string) (int64, error)
IncrBy(mmsid, key string, delta int64) (int64, error)
Strlen(mmsid, key string) (int64, error)
Hmclear(mmsid string, key ...string) (int64, error)
Hclear(mmsid string, key string) (int64, error)
Hdel(mmsid, key string, field ...string) (int64, error)
Hlen(mmsid, key string) (int64, error)
Hset(mmsid, key, field string, value any) (int64, error)
Hget(mmsid, key, field string) (any, error)
Hmget(mmsid, key string, fields ...string) ([]any, error)
Hmset(mmsid, key string, values ...FVPair) error
Hgetall(mmsid, key string) ([]FVPair, error)
Hkeys(mmsid, key string) ([]string, error)
Hscan(mmsid, key, beginfield, match string, count int, inclusive bool) (ret []FVPair, err error)
Hrevscan(mmsid, key, beginfield, match string, count int, inclusive bool) (ret []FVPair, err error)
HincrBy(mmsid, key, field string, delta int64) (ret int64, err error)
Lpush(mmsid, key string, value ...any) (int64, error)
Lpop(mmsid, key string) (any, error)
Rpush(mmsid, key string, value ...any) (int64, error)
Rpop(mmsid, key string) (any, error)
Lrange(mmsid, key string, start, stop int32) ([]any, error)
Lclear(mmsid, key string) (int64, error)
Lmclear(mmsid string, keys ...string) (int64, error)
Lindex(mmsid, key string, index int32) (any, error)
Llen(mmsid, key string) (int64, error)
Lset(mmsid, key string, index int32, value any) error
Zadd(mmsid, key string, args ...ScorePair) (int64, error)
Zaddwithseq(mmsid, key string, members ...string) (ret int64, err error)
Zcard(mmsid, key string) (int64, error)
Zcount(mmsid, key string, mins, maxs int64) (int64, error)
Zrem(mmsid, key string, members ...string) (int64, error)
Zscore(mmsid, key, member string) (int64, error)
Zrank(mmsid, key, member string) (int64, error)
Zrange(mmsid, key string, start, stop int) ([]ScorePair, error)
Zrangebyscore(mmsid, key string, mins, maxs int64, offset int, count int) ([]ScorePair, error)
Zremrangebyscore(mmsid, key string, mins, maxs int64) (int64, error)
Zrevrange(mmsid, key string, start, stop int) (ret []ScorePair, err error)
Zrevrangebyscore(mmsid, key string, mins, maxs int64, offset int, count int) (ret []ScorePair, err error)
Zmclear(mmsid string, key ...string) (int64, error)
Zclear(mmsid, key string) (int64, error)
ZincrBy(mmsid, key string, delta int64, member string) (int64, error)
Sadd(mmsid, key string, args ...string) (int64, error)
Scard(mmsid, key string) (int64, error)
Sclear(mmsid, key string) (int64, error)
Sdiff(mmsid string, keys ...string) ([]string, error)
Sinter(mmsid string, keys ...string) ([]string, error)
Smclear(mmsid string, key ...string) (int64, error)
Smembers(mmsid, key string) ([]string, error)
Srem(mmsid, key string, m string) (int64, error)
Sunion(mmsid string, keys ...string) ([]string, error)
Scan(mmsid string, begin, match string, count int, inclusive bool, tp byte) (keys []string, err error)
MMSyncData(sid, mid, tp string, mark []byte, count uint64, verseq ...uint64) ([]byte, error)
CheckIntegrity(mmsid string, dataType uint8, key string, bRepair bool) error
}
MDbStub接口定义
type IMFile ¶
type IMFile interface {
// MFOpenByPath 通过路径打开文件
// 参数: sid-会话ID, mid-弥媒ID, path-文件路径, flag-打开标志
// 返回值: 文件会话ID,用于后续文件操作
MFOpenByPath(sid, mid, path string, flag int) (string, error)
// MFOpenMacFile 通过文件ID打开Mac文件
// 参数: sid-会话ID, mid-弥媒ID, fileid-文件ID
// 返回值: 文件会话ID
MFOpenMacFile(sid, mid, fileid string) (string, error)
// MFOpenTempFile 创建并打开临时文件
// 参数: sid-会话ID
// 返回值: 临时文件会话ID
MFOpenTempFile(sid string) (string, error)
// MFPath2TempID 将本地路径转换为临时文件ID
// 参数: sid-会话ID, localpath-本地文件路径
// 返回值: 临时文件ID
MFPath2TempID(sid, localpath string) (string, error)
// MFLocal2MacFile 将本地文件转换为Mac文件格式
// 参数: sid-会话ID, mid-弥媒ID, ps-本地文件路径
// 返回值: 转换后的Mac文件ID
// 说明: 转换后的Mac文件存储在mac目录中,文件名为hash值
MFLocal2MacFile(sid, mid, ps string) (string, error)
// MFTemp2MacFile 将临时文件转换为Mac文件
// 参数: fsid-文件会话ID, mid-弥媒ID
// 返回值: 转换后的Mac文件ID
// 说明: 转换后的Mac文件存储在mac目录中,文件名为hash值
MFTemp2MacFile(fsid, mid string) (string, error)
// MFTemp2Ipfs 将临时文件转换为IPFS文件
// 参数: fsid-文件会话ID, mid-弥媒ID
// 返回值: 转换后的IPFS CID
// 说明: 转换后的IPFS文件存储在系统的IPFS仓库中
MFTemp2Ipfs(fsid, mid string) (string, error)
// MFTemp2Files 将临时文件转换为Files系统文件
// 参数: fsid-文件会话ID, psfiles-目标路径
// 返回值: 转换后的CID
// 说明: 转换后的文件存储在files文件系统的.mm目录中
MFTemp2Files(fsid, ps string) (string, error)
// MFTruncate 截断文件到指定大小
// 参数: fsid-文件会话ID, size-目标大小
MFTruncate(fsid string, size int64) error
// MFSetObject 将对象序列化写入文件
// 参数: fsid-文件会话ID, obj-要写入的对象
MFSetObject(fsid string, obj any) error
// MFGetObject 从文件中读取并反序列化对象
// 参数: fsid-文件会话ID
// 返回值: 反序列化后的对象
// 注意(B10 契约): 返回 map 的键类型随执行模式变化——local(hprose RPC)为
// map[interface{}]interface{},container(json /entry)为 map[string]interface{};
// 应用必须做键类型归一(fmt.Sprint(key) 或显式转换),勿直接断言 map[string]any。
MFGetObject(fsid string) (any, error)
// MFSetData 在文件指定位置写入数据
// 参数: fsid-文件会话ID, data-要写入的数据, start-起始位置
// 返回值: 实际写入的字节数
// 说明: start为正表示从头部偏移,start为负表示从尾部偏移
MFSetData(fsid string, data []byte, start int64) (count int, err error)
// MFGetData 从文件指定位置读取数据
// 参数: fsid-文件会话ID, start-起始位置, count-读取字节数
// 返回值: 读取的数据
// 说明: start为正表示从头部偏移,start为负表示从尾部偏移
MFGetData(fsid string, start int64, count int) ([]byte, error)
// MFGetSize 获取文件大小
// 参数: fsid-文件会话ID
// 返回值: 文件大小
MFGetSize(fsid string) (int64, error)
// MFStat 获取文件信息
// 参数: fsid-文件会话ID
// 返回值: 文件信息结构
MFStat(fsid string) (*FileInfo, error)
// MFIsExist 检查文件是否存在
// 参数: fsid-文件会话ID, fileid-文件ID
// 返回值: 文件是否存在
MFIsExist(fsid, fileid string) (bool, error)
// MFReaddir 读取目录内容
// 参数: fsid-文件会话ID, count-读取条目数
// 返回值: 目录条目列表
MFReaddir(fsid string, count int) ([]*FileInfo, error)
// MFGetMimeType 获取文件MIME类型
// 参数: fsid-文件会话ID
// 返回值: MIME类型字符串
MFGetMimeType(fsid string) (string, error)
// MFSetCid 设置文件的IPFS CID
// 参数: sid-会话ID, mid-弥媒ID, cid-IPFS CID
// 返回值: 设置后的文件ID
MFSetCid(sid, mid, cid string) (string, error)
}
IMFile 接口定义了弥媒文件操作的核心功能 该接口提供了对弥媒中文件的完整生命周期管理,包括打开、读写、转换、查询等操作 所有文件操作都通过会话ID进行权限控制和状态管理
弥媒文件存储机制: - 备份版本:备份后会生成数字版本号,对应两种数据类型:
- mac文件:保存在mac目录中,文件名为文件hash转化成的字符串 (PATH_MacFILE="mac")
- ipfs文件:保存在系统的ipfs文件仓库中
- 未备份版本:
- mac文件:保存在mid目录中 (PATH_MIDFILE="mid")
- ipfs文件:保存在files文件系统的.mm目录中 (Path_Files_MM="/.mm/")
- 版本信息存储在Redis数据库中,通过GetVerInfo等函数管理
type IMiMei ¶
type IMiMei interface {
IMDb
IMFile
IAppData //应用数据(Wave B appdata 开放下沉)
// MMCreate 创建新的弥媒对象
// 参数: sid-会话ID, appid-应用ID, ext-扩展标识, mark-标记字符串, tp-弥媒类型, right-权限位掩码
// 返回值: mid-新创建的弥媒ID
MMCreate(sid, appid, ext, mark string, tp byte, right uint64) (mid string, err error)
// MMOpen 打开指定版本的弥媒
// 参数: sid-会话ID, mid-弥媒ID, ver-版本号(空字符串表示最新版本), opt-可选参数
// 返回值: 会话句柄,用于后续操作
MMOpen(sid, mid, ver string, opt ...string) (string, error)
// MMOpenUrl 通过URL路径打开弥媒
// 参数: sid-会话ID, ps-URL路径
// 返回值: 会话句柄
MMOpenUrl(sid, ps string) (string, error)
// MMClose 关闭弥媒会话
// 参数: mmsid-弥媒会话ID
MMClose(mmsid string) error
// MMSetRight 设置弥媒成员权限
// 参数: sid-会话ID, mid-弥媒ID, member-成员标识, right-权限位掩码
MMSetRight(sid, mid, member string, right uint64) error
// MMGetRight 获取成员对弥媒的权限
// 参数: sid-会话ID, mmid-弥媒ID, uid-用户ID
// 返回值: right-权限位掩码
MMGetRight(sid, mmid, uid string) (right uint64, err error)
// MMBackup 创建弥媒快照备份
// 参数: sid-会话ID, mid-弥媒ID, memo-备份备注信息, opt-可选参数
// 返回值: 备份版本号
MMBackup(sid, mid, memo string, opt ...string) (string, error)
// MMRestore 从指定版本恢复弥媒
// 参数: sid-会话ID, mid-弥媒ID, ver-要恢复的版本号
MMRestore(sid, mid, ver string) error
// MMDelVers 删除指定版本
// 参数: sid-会话ID, mid-弥媒ID, vers-要删除的版本号列表
// 返回值: 删除的版本数量
MMDelVers(sid, mid string, vers ...string) (int64, error)
// MMRelease 发布指定版本
// 参数: sid-会话ID, mid-弥媒ID, ver-要发布的版本号
// 返回值: 发布后的版本标识
MMRelease(sid, mid, ver string) (string, error)
// MMAddRef 为弥媒添加文件引用
// 参数: sid-会话ID, mid-弥媒ID, fileids-要引用的文件ID列表
// 返回值: 成功添加的引用数量
MMAddRef(sid, mid string, fileids ...string) (int, error)
// MMDelRef 删除弥媒的文件引用
// 参数: sid-会话ID, mid-弥媒ID, fileids-要删除引用的文件ID列表
// 返回值: 成功删除的引用数量
MMDelRef(sid, mid string, fileids ...string) (int, error)
// MMGetRef 获取指定版本的引用关系
// 参数: sid-会话ID, mid-弥媒ID, ver-版本号
// 返回值: ret-文件引用关系映射
MMGetRef(sid, mid, ver string) (ret Refs, err error)
// MMGetRefs 获取多个版本的引用关系
// 参数: sid-会话ID, mid-弥媒ID, vers-版本号列表
// 返回值: 各版本的引用关系映射
MMGetRefs(sid, mid string, vers ...string) (MiMeiRefs, error)
// MMSum 计算弥媒的摘要信息
// 参数: sid-会话ID, mid-弥媒ID, ver-版本号, tp-摘要类型
// 返回值: 摘要字符串
MMSum(sid, mid, ver, tp string) (string, error)
// MiMeiIsProvider 检查当前节点是否是指定弥媒的提供者(本地查询,不走网络)
MiMeiIsProvider(sid, mid string) (bool, error)
// MFLs 查询弥媒文件系统目录(针对 ipfs 文件系统路径)
// 注意(B18 契约): 返回 LsLink.Type 为 unixfs 枚举——文件=2(TFile)/目录=1;
// 与 FilesLs(mfs 枚举:文件=0/目录=1)不一致,应用须按 API 分别处理。
MFLs(sid, ps string) ([]LsLink, error)
// MFCopy 弥媒文件系统内复制
MFCopy(sid, src, dst string, bFlush, bForce bool) error
// MFMkdir 弥媒文件系统建目录
MFMkdir(sid, ps string, flush bool) error
}
IMiMei 接口定义了弥媒相关的操作方法 弥媒是Leither平台中的核心数据对象,支持版本控制、权限管理、备份恢复等功能 该接口提供了对弥媒对象的完整生命周期管理
type IMsg ¶ added in v0.3.0
type IMsg interface {
SendMsg(sid string, msg *Message) error
ReadMsg(sid string) ([]*Message, error)
PullMsg(sid string, timeout int) (*Message, error)
}
IMsg 消息接口(Wave B msg:自 api.IMsg 开放下沉)
type INet ¶
type INet interface {
IFilesStub
IDNS //域名与路由(Wave B 开放)
ISwarm //节点网络只读 4 方法(Wave B 开放;写操作不开放)
IIpfsNode //IPFS 节点数据读取(Wave B 开放)
IDag //DAG 查询(Wave B 开放)
// IpfsAdd 添加本地文件到 IPFS(Wave B 开放)
IpfsAdd(sid, ps string) (string, error)
}
INetStub 接口定义了网络相关的操作方法
type IRPC ¶
type IRPC interface {
IAuth //认证部分
IVarAct //封装了大批Api
IMiMei //弥媒
INet //网络部分 TunnelStub, DNSStub,NodeStub
}
跨节点获取的api,通过rpc方式获取生成
type ISession ¶
type ISession interface {
// CreateSession 创建一个session并返回id
CreateSession() (sid string)
// SessionSet 设置session中指定key的值
SessionSet(sid, key string, value any) error
// SessionGet 获取session中指定key的值
SessionGet(sid, key string) (value any, err error)
// SessionDelete 删除session中指定key的值
SessionDelete(sid, key string) error
// ReleaseSession 释放指定的session
ReleaseSession(sid string) error
}
ISession 接口定义了Session操作的所有方法
type IStat ¶ added in v0.3.0
type IStat interface {
GetUserMids(sid, uid string, start int64, count int) ([]ScorePair, error)
GetMiMeiStat(sid, mid string) (stats MiMeiStats, err error)
}
IStat 状态查询接口(Wave B stat:自 api.IStat 开放下沉)
type ISwarm ¶ added in v0.3.0
type ISwarm interface {
SwarmAddrs(sid string, pids ...string) (map[string][]string, error)
SwarmLocal(sid string) ([]string, error)
SwarmListen(sid string) ([]string, error)
SwarmPeers(sid string) ([]string, error)
}
ISwarm 节点网络只读查询接口(Wave B net_swarm:仅开放只读方法, Connect/Disconnect/Filters* 不对 MApp 开放)
type IpfsNodeStub ¶ added in v0.3.0
type IpfsNodeStub struct {
INOpen func(sid, ps string, level int) ([]byte, error)
INGetData func(sid, ps string, start int64, count int) ([]byte, error)
}
IpfsNodeStub IPFS 节点数据读取(Wave B net_ipfs:自 api.IpfsNodeStub 开放下沉)
type LApi ¶
type LApi interface {
IBackEnd //节点内使用
IAuth //认证部分
IVarAct //封装了大批Api,GetVar是获取系统变量, Act一类是执行一个动作,这个动作有需求但还没有到需要单独封装为Api的程度。
IMiMei //弥媒,封装了文件和数据库操作
INet //网络,封装了所有的网络相关操作
IMsg //消息(Wave B 开放)
IStat //状态查询(Wave B 开放)
ILApp //应用调用 RunMApp(Wave B 开放)
}
LApi描述节点内使用的api(包括节点内外都可以使用的rpc调用的接口和节点内使用的后端接口) 对于Rpc方式,可以通过InitLApiStubByUrl等api以获取stub句柄的方式访问节点功能。 对于节点内执行的应用,可以直接通过GetLApi的方式获取api接口 所有api最后都使用接口进行了抽象,后续功能介绍都基于接口进行介绍
type LApiStub ¶
type LApiStub struct {
AuthStub
VarActStub
MiMeiStub
NetStub
MsgStub // Wave B msg:自 api.MsgStub 开放下沉
StatStub // Wave B stat:自 api.StatStub 开放下沉
AppStub // Wave B lapp:仅 RunMApp 开放下沉
}
Package lapi provides RPC functionality for the Leither project
func InitLApiStubByUrl ¶
func (*LApiStub) CheckIntegrity ¶
func (*LApiStub) DagGet ¶ added in v0.3.0
func (s *LApiStub) DagGet(sid, ps string) (DagNodeData, error)
func (*LApiStub) FilesCheck ¶
FilesCheck 检查指定路径中的文件哪些不在本地
func (*LApiStub) FiltersAdd ¶ added in v0.3.0
func (*LApiStub) GetMiMeiStat ¶ added in v0.3.0
func (s *LApiStub) GetMiMeiStat(sid, mid string) (stats MiMeiStats, err error)
func (*LApiStub) GetUserMids ¶ added in v0.3.0
func (*LApiStub) GetVarByContext ¶
func (*LApiStub) LoginWithPPT ¶
func (s *LApiStub) LoginWithPPT(strPPT string) (*LoginReply, error)
在LApiStub上实现IAuth接口方法
func (*LApiStub) MFLocal2MacFile ¶
func (*LApiStub) MFOpenByPath ¶
在LApiStub中实现IMFileStub接口方法
func (*LApiStub) MFOpenMacFile ¶
func (*LApiStub) MFPath2TempID ¶
func (*LApiStub) MFTemp2MacFile ¶
func (*LApiStub) MMCreate ¶
func (s *LApiStub) MMCreate(sid, appid, ext, mark string, tp byte, right uint64) (mid string, err error)
在LApiStub上实现IMiMei接口方法(部分示例)
func (*LApiStub) MMCreateAppData ¶ added in v0.3.0
func (*LApiStub) MMGetAppDataID ¶ added in v0.3.0
func (*LApiStub) MMGetRight ¶
func (*LApiStub) MMOpenAppData ¶ added in v0.3.0
func (*LApiStub) MMOpenAppDataApp ¶ added in v0.3.0
func (*LApiStub) MMOpenAppDataNode ¶ added in v0.3.0
func (*LApiStub) MMOpenAppDataUser ¶ added in v0.3.0
func (*LApiStub) MMSetRight ¶
func (*LApiStub) MMSyncData ¶
func (*LApiStub) MiMeiIsProvider ¶ added in v0.3.0
func (*LApiStub) PPTStr2Map ¶ added in v0.2.0
func (*LApiStub) SetUserInfo ¶ added in v0.2.0
func (*LApiStub) ShowDomain ¶ added in v0.3.0
func (*LApiStub) Sign ¶ added in v0.2.0
func (s *LApiStub) Sign(sid string, req *SignRequest) (sig []byte, err error)
func (*LApiStub) SignInfo2Map ¶ added in v0.2.0
func (*LApiStub) SignPPT ¶ added in v0.2.0
func (s *LApiStub) SignPPT(sid string, req *SignPPTRequest) (string, error)
func (*LApiStub) SwarmAddrs ¶ added in v0.3.0
func (*LApiStub) SwarmConnect ¶ added in v0.3.0
func (*LApiStub) SwarmDisconnect ¶ added in v0.3.0
func (*LApiStub) SwarmListen ¶ added in v0.3.0
func (*LApiStub) SwarmLocal ¶ added in v0.3.0
func (*LApiStub) SwarmPeers ¶ added in v0.3.0
func (*LApiStub) Zaddwithseq ¶
func (*LApiStub) Zrangebyscore ¶
func (*LApiStub) Zremrangebyscore ¶
func (*LApiStub) Zrevrangebyscore ¶
type LogStub ¶
type LogStub struct {
Trace func(format string, v ...interface{})
Debug func(format string, v ...interface{})
Info func(format string, v ...interface{})
Warn func(format string, v ...interface{})
Error func(format string, v ...interface{})
Critical func(format string, v ...interface{})
}
LogStub
这里面放的是应用中日志操作的api接口。
type LsLink ¶
type MDbStub ¶
type MDbStub struct {
Begin func(mmsid string, timeout int) error
Commit func(mmsid string) error
Rollback func(mmsid string) error
GetLastSeq func(mmsid string) (uint64, error)
Set func(mmsid, key string, value any) error
Get func(mmsid, key string) (any, error)
Del func(mmsid string, key ...string) (int64, error)
Incr func(mmsid, key string) (int64, error)
IncrBy func(mmsid, key string, delta int64) (int64, error)
Strlen func(mmsid, key string) (int64, error)
Hmclear func(mmsid string, key ...string) (int64, error)
Hclear func(mmsid string, key string) (int64, error)
Hdel func(mmsid, key string, field ...string) (int64, error)
Hlen func(mmsid, key string) (int64, error)
Hset func(mmsid, key, field string, value any) (int64, error)
Hget func(mmsid, key, field string) (any, error)
Hmget func(mmsid, key string, fields ...string) ([]any, error)
Hmset func(mmsid, key string, values ...FVPair) error
Hgetall func(mmsid, key string) ([]FVPair, error)
Hkeys func(mmsid, key string) ([]string, error)
Hscan func(mmsid, key, beginfield, match string, count int, inclusive bool) (ret []FVPair, err error)
Hrevscan func(mmsid, key, beginfield, match string, count int, inclusive bool) (ret []FVPair, err error)
HincrBy func(mmsid, key, field string, delta int64) (ret int64, err error)
Lpush func(mmsid, key string, value ...any) (int64, error)
Lpop func(mmsid, key string) (any, error)
Rpush func(mmsid, key string, value ...any) (int64, error)
Rpop func(mmsid, key string) (any, error)
Lrange func(mmsid, key string, start, stop int32) ([]any, error)
Lclear func(mmsid, key string) (int64, error)
Lmclear func(mmsid string, keys ...string) (int64, error)
Lindex func(mmsid, key string, index int32) (any, error)
Llen func(mmsid, key string) (int64, error)
Lset func(mmsid, key string, index int32, value any) error
Zadd func(mmsid, key string, args ...ScorePair) (int64, error)
Zaddwithseq func(mmsid, key string, members ...string) (ret int64, err error)
Zcard func(mmsid, key string) (int64, error)
Zcount func(mmsid, key string, mins, maxs int64) (int64, error)
Zrem func(mmsid, key string, members ...string) (int64, error)
Zscore func(mmsid, key, member string) (int64, error)
Zrank func(mmsid, key, member string) (int64, error)
Zrange func(mmsid, key string, start, stop int) ([]ScorePair, error)
Zrangebyscore func(mmsid, key string, mins, maxs int64, offset int, count int) ([]ScorePair, error)
Zremrangebyscore func(mmsid, key string, mins, maxs int64) (int64, error)
Zrevrange func(mmsid, key string, start, stop int) (ret []ScorePair, err error)
Zrevrangebyscore func(mmsid, key string, mins, maxs int64, offset int, count int) (ret []ScorePair, err error)
Zmclear func(mmsid string, key ...string) (int64, error)
Zclear func(mmsid, key string) (int64, error)
ZincrBy func(mmsid, key string, delta int64, member string) (ret int64, err error)
Sadd func(mmsid, key string, args ...string) (int64, error)
Scard func(mmsid, key string) (int64, error)
Sclear func(mmsid, key string) (int64, error)
Sdiff func(mmsid string, keys ...string) ([]string, error)
Sinter func(mmsid string, keys ...string) ([]string, error)
Smclear func(mmsid string, key ...string) (int64, error)
Smembers func(mmsid, key string) ([]string, error)
Srem func(mmsid, key string, m string) (int64, error)
Sunion func(mmsid string, keys ...string) ([]string, error)
Scan func(mmsid string, begin, match string, count int, inclusive bool, tp byte) (keys []string, err error)
MMSyncData func(sid, mid, tp string, mark []byte, count uint64, verseq ...uint64) ([]byte, error)
CheckIntegrity func(mmsid string, dataType uint8, key string, bRepair bool) error //校验数据
}
type MFileStub ¶
type MFileStub struct {
MFOpenByPath func(sid, mid, path string, flag int) (string, error)
MFOpenMacFile func(sid, mid, fileid string) (string, error)
MFOpenTempFile func(sid string) (string, error)
MFPath2TempID func(sid, localpath string) (string, error) //这个函数有争议
MFLocal2MacFile func(sid, mid, ps string) (string, error)
MFTemp2MacFile func(fsid, mid string) (string, error)
MFTemp2Ipfs func(fsid, mid string) (string, error)
MFTemp2Files func(fsid, ps string) (string, error)
MFTruncate func(fsid string, size int64) error
MFSetObject func(fsid string, obj any) error
MFGetObject func(fsid string) (any, error)
MFSetData func(fsid string, data []byte, start int64) (count int, err error)
MFGetData func(fsid string, start int64, count int) ([]byte, error)
MFGetSize func(fsid string) (int64, error)
MFStat func(fsid string) (*FileInfo, error)
MFIsExist func(fsid, fileid string) (bool, error)
MFReaddir func(fsid string, count int) ([]*FileInfo, error)
MFGetMimeType func(fsid string) (string, error)
MFSetCid func(sid, mid, cid string) (string, error)
}
type Message ¶
type Message struct {
Tm time.Time //消息发生的时间
From string
To string
AppID string //空表示系统消息
Msg string //表示命令,是由appid约定的,如果appid为空,则是系统消息?
Data any //应用自定义的数据格式
Sign string //发送者签名
}
SendMsg
消息接口
type MiMeiShowReply ¶
type MiMeiShowReply struct {
Versions *MiMeiVersions
Rights map[string]uint64
}
type MiMeiStats ¶
type MiMeiStub ¶
type MiMeiStub struct {
MDbStub
MFileStub
// MMCreate 创建新的弥媒对象
// 参数: sid-会话ID, appid-应用ID, ext-扩展标识, mark-标记字符串, tp-弥媒类型, right-权限位掩码
// 返回值: mid-新创建的弥媒ID
MMCreate func(sid, appid, ext, mark string, tp byte, right uint64) (mid string, err error)
// MMOpen 打开指定版本的弥媒
// 参数: sid-会话ID, mid-弥媒ID, ver-版本号(空字符串表示最新版本), opt-可选参数
// 返回值: 会话句柄,用于后续操作
MMOpen func(sid, mid, ver string, opt ...string) (string, error)
// MMOpenUrl 通过URL路径打开弥媒
// 参数: sid-会话ID, ps-URL路径
// 返回值: 会话句柄
MMOpenUrl func(sid, ps string) (string, error)
// MMClose 关闭弥媒会话
// 参数: mmsid-弥媒会话ID
MMClose func(mmsid string) error
// MMSetRight 设置弥媒成员权限
// 参数: sid-会话ID, mid-弥媒ID, member-成员标识, right-权限位掩码
MMSetRight func(sid, mid, member string, right uint64) error
// MMGetRight 获取成员对弥媒的权限
// 参数: sid-会话ID, mmid-弥媒ID, uid-用户ID
// 返回值: right-权限位掩码
MMGetRight func(sid, mmid, uid string) (right uint64, err error)
// MMBackup 创建弥媒快照备份
// 参数: sid-会话ID, mid-弥媒ID, memo-备份备注信息, opt-可选参数
// 返回值: 备份版本号
MMBackup func(sid, mid, memo string, opt ...string) (string, error) //snapshot
// MMRestore 从指定版本恢复弥媒
// 参数: sid-会话ID, mid-弥媒ID, ver-要恢复的版本号
MMRestore func(sid, mid, ver string) error
// MMDelVers 删除指定版本
// 参数: sid-会话ID, mid-弥媒ID, vers-要删除的版本号列表
// 返回值: 删除的版本数量
MMDelVers func(sid, mid string, vers ...string) (int64, error)
// MMRelease 发布指定版本
// 参数: sid-会话ID, mid-弥媒ID, ver-要发布的版本号
// 返回值: 发布后的版本标识
MMRelease func(sid, mid, ver string) (string, error)
// MMAddRef 为弥媒添加文件引用
// 参数: sid-会话ID, mid-弥媒ID, fileids-要引用的文件ID列表
// 返回值: 成功添加的引用数量
MMAddRef func(sid, mid string, fileids ...string) (int, error)
// MMDelRef 删除弥媒的文件引用
// 参数: sid-会话ID, mid-弥媒ID, fileids-要删除引用的文件ID列表
// 返回值: 成功删除的引用数量
MMDelRef func(sid, mid string, fileids ...string) (int, error)
// MMGetRef 获取指定版本的引用关系
// 参数: sid-会话ID, mid-弥媒ID, ver-版本号
// 返回值: ret-文件引用关系映射
MMGetRef func(sid, mid, ver string) (ret Refs, err error)
// MMGetRefs 获取多个版本的引用关系
// 参数: sid-会话ID, mid-弥媒ID, vers-版本号列表
// 返回值: 各版本的引用关系映射
MMGetRefs func(sid, mid string, vers ...string) (MiMeiRefs, error)
// MMSum 计算弥媒的摘要信息
// 参数: sid-会话ID, mid-弥媒ID, ver-版本号, tp-摘要类型
// 返回值: 摘要字符串
MMSum func(sid, mid, ver, tp string) (string, error) //
// Wave B appdata:自 api.AppDataStub 开放下沉(置于末尾保持既有位置字面量兼容)
AppDataStub
// Wave B mimei_cmd 本地语义接口下沉(原 api.MiMeiCmdStub 中的本地部分;
// 网络部分 Publish/Provide/FindProvs/Show/Sync 依赖 DHT,仍不开放)
MiMeiIsProvider func(sid, mid string) (bool, error)
MFLs func(sid, ps string) ([]LsLink, error)
MFCopy func(sid, src, dst string, bFlush, bForce bool) error
MFMkdir func(sid, ps string, flush bool) error
}
MiMeiStub 弥媒操作结构体 提供对弥媒对象的完整生命周期管理,包括创建、权限控制、版本管理、引用管理等
type MiMeiVersion ¶
type MiMeiVersions ¶
type MiMeiVersions struct {
//StructVer uint8 //数据结构的版本,当前为0,后期兼容用
Versions []*MiMeiVersion //所有的版本
SpecialVers []*SpecialVersion //特殊版本
MinDifSeq uint64 //最小的差值序号,当前数据版本大于这个序号可以差值获取数据。20230308
}
TODO:必要的话,在这里增加一个最大序号
type MsgStub ¶ added in v0.3.0
type MsgStub struct {
// SendMsg 消息发送
// 参数:发送者ID,from;接收者ID:to;appID:消息所属应用ID;msg:消息文本内容;
// data:消息对象内容;ppt:消息的校验信息
// 返回值:正常则为空,出错则返回错误信息
SendMsg func(sid string, msg *Message) error
// ReadMsg 消息接收
// 返回值:消息数组;返回不为空就需要重新读数据
ReadMsg func(sid string) ([]*Message, error)
// PullMsg 拉取消息(阻塞至 timeout)
PullMsg func(sid string, timeout int) (*Message, error)
}
MsgStub 消息接口(Wave B msg:自 api.MsgStub 开放下沉)
type PinLsObject ¶
type ScriptInfo ¶
type SessionStub ¶
type SignPPTRequest ¶ added in v0.3.0
type SignPPTRequest struct {
Info map[string]string //PPT 信息键值
Period int //有效期(分钟,服务端钳制)
Purpose string //签名用途声明,可空
AidDecl string //调用方声明的 app id(可空;与服务端导出不一致即拒绝)
}
SignPPTRequest F4b 结构化 SignPPT 请求(D10:与 Sign 同代一次付清)。 G2 防护语义不变:非系统用户会话经 filterSignPPTInfo 过滤保留键 + 有效期钳制。
type SignRequest ¶ added in v0.3.0
type SignRequest struct {
Content []byte //被签内容
Purpose string //签名用途声明(供审计/UX 展示),可空
AidDecl string //调用方声明的 app id(可空;与服务端导出不一致即拒绝)
}
SignRequest F4b 结构化签名请求(G5 契约变更,2026-09-04 裁决 D10/D11)。 盲签裸 message 入口自 lapi 面移除(D11 变体 A':api 层另留 api-only SignRaw)。 AidDecl 为「调用方声明的 app id」——服务端以可信导出值(容器=AppDataer、 app 会话=SessionKey_AppID)为准交叉验证,不一致即 deny(rule=signacl:aid-spoof)。
type SpecialVersion ¶
type StatInfo ¶
type StatStub ¶ added in v0.3.0
type StatStub struct {
GetUserMids func(sid, uid string, start int64, count int) ([]ScorePair, error)
GetMiMeiStat func(sid, mid string) (stats MiMeiStats, err error)
}
StatStub 状态查询(Wave B stat:自 api.StatStub 开放下沉)
type StatUsage ¶
type UsageStat struct {
Path string `json:"path"`
Fstype string `json:"fstype"`
Total uint64 `json:"total"`
Free uint64 `json:"free"`
Used uint64 `json:"used"`
UsedPercent float64 `json:"usedPercent"`
InodesTotal uint64 `json:"inodesTotal"`
InodesUsed uint64 `json:"inodesUsed"`
InodesFree uint64 `json:"inodesFree"`
InodesUsedPercent float64 `json:"inodesUsedPercent"`
}
type StatVirtualMemory ¶
type StatVirtualMemory = mem.VirtualMemoryStat
type SwarmStub ¶ added in v0.3.0
type SwarmStub struct {
SwarmAddrs func(sid string, pids ...string) (map[string][]string, error)
SwarmLocal func(sid string) ([]string, error)
SwarmListen func(sid string) ([]string, error)
SwarmPeers func(sid string) ([]string, error)
SwarmConnect func(sid, addr string) error
SwarmDisconnect func(sid, addr string) error
FiltersAdd func(sid string, cidrs []string) error
FiltersRm func(sid string, cidrs []string) error
}
SwarmStub 节点网络操作(Wave B net_swarm:整体下沉;lapi.INet 接口仅开放只读 4 方法, Connect/Disconnect/Filters* 仍不对 MApp 开放)