Namespaces, assemblies, projects and directories, the solution, binaries, images, systemd units, config paths, environment variables, protocol method names, the media type and the raw chunk magic all move to MoShiro/moshiro. Existing data and deployments are not compatible and must be recreated. Also fix the architecture tests after the solution layout change and make the update tests independent of their order.
44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
namespace MoShiro.Protocol;
|
||
|
||
public static class ProtocolVersion
|
||
{
|
||
public const int Container = 1;
|
||
public const int Wire = 1;
|
||
}
|
||
|
||
public static class ProtocolLimits
|
||
{
|
||
/// <summary>持续任务每 10 秒切一块。</summary>
|
||
public const int ChunkSeconds = 10;
|
||
|
||
/// <summary>单块记录数上限。</summary>
|
||
public const int MaxRecordsPerChunk = 50_000;
|
||
|
||
/// <summary>解压后的块上限(防解压炸弹)。</summary>
|
||
public const int MaxDecodedChunkBytes = 64 << 20;
|
||
|
||
public const int MaxStreamsPerChunk = 16;
|
||
|
||
public const int MaxColumnsPerStream = 64;
|
||
|
||
/// <summary>每条线路持续任务的总带宽上限(bit/s)。</summary>
|
||
public const long MaxLineBudgetBitsPerSecond = 100_000;
|
||
}
|
||
|
||
/// <summary>二进制通道号(0–15 属于 Fleet,MoShiro 从 16 开始)。</summary>
|
||
public static class MoShiroChannels
|
||
{
|
||
/// <summary>Agent → Backend:RawChunk(发件箱)。</summary>
|
||
public const byte RawChunk = 16;
|
||
|
||
/// <summary>Probe → Agent:列块(点对点会话的发件箱)。</summary>
|
||
public const byte ColumnBlock = 17;
|
||
}
|
||
|
||
public static class MoShiroCapabilities
|
||
{
|
||
public const string Base = "moshiro.v1";
|
||
public const string KindsPrefix = "moshiro.kinds:";
|
||
public const string BlocksPrefix = "moshiro.blocks:";
|
||
}
|