classDiagram
class Model{
+CommitHash modelHash
+Int64 size //bits
+PublicKey author
+Int partitionCounts
+String signatureScheme
+PublicKey[] inRelays
+bool isEncrypted
}
class ModelManager{
+Int modelCount
+void registerModel(Model modelMeta)
+Model getModel(CommitHash modelHash)
}
ModelManager --> Model
class Relay{
+PublicKey hostKey
+IP[] ipAddresses
+String connectionSheme //ssh,ftp, etc
}
class RelayManager{
+Int relayCount
+Relay getRelay(PublicKey key)
+void registerRelay(Relay relayMeta)
+void updateRelay(Relay relayMeta)
+void depositeStaking(PublicKey relayKey)
+float lookupStakingAmount(PublicKey relayKey)
+void deactivateRelay(PublicKey key) //wait 1 month
}
RelayManager --> Relay
class Author{
+PublicKey authorKey
+CommitHash[] publishedModels
}
class AuthorManager{
+Int authorCount
+Author getAuthor(PublicKey key)
//+void updateAuthor(Auhtor authorMeta)
}
AuthorManager --> Author