Skip to content

Commit

Permalink
Add thor planet
Browse files Browse the repository at this point in the history
  • Loading branch information
ipdae committed Oct 22, 2024
1 parent a8058b9 commit 795fcc9
Show file tree
Hide file tree
Showing 8 changed files with 50 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .gitallowed
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,5 @@ baa2081d3b485ef2906c95a3965531ec750a74cfaefe91d0c3061865608b426c
4582250d0da33b06779a8475d283d5dd210c683b9b999d74d03fac4f58fa6bce
ade4c29773fe83c1a51da6a667a5a26f08848155674637d43fe636b94a320514
209b22087045ec834f01249c8661c2734cea41ccc5d8c9a273a4c8c0521d22ec
729fa26958648a35b53e8e3905d11ec53b1b4929bf5f499884aed7df616f5913
729fa26958648a35b53e8e3905d11ec53b1b4929bf5f499884aed7df616f5913
a6b53f0a1ac983d6ae49edb89a58e0d3d697adf1d2c88c074e49ed6764a57f10
12 changes: 12 additions & 0 deletions Lib9c.Policy/Policy/BlockPolicySource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,18 @@ public IBlockPolicy GetPolicy(Planet planet)
maxTransactionsPerBlockPolicy: MaxTransactionsPerBlockPolicy.Heimdall,
maxTransactionsPerSignerPerBlockPolicy: MaxTransactionsPerSignerPerBlockPolicy.HeimdallInternal
),
Planet.Thor => GetPolicy(
maxTransactionsBytesPolicy: MaxTransactionsBytesPolicy.Thor,
minTransactionsPerBlockPolicy: MinTransactionsPerBlockPolicy.Thor,
maxTransactionsPerBlockPolicy: MaxTransactionsPerBlockPolicy.Thor,
maxTransactionsPerSignerPerBlockPolicy: MaxTransactionsPerSignerPerBlockPolicy.Thor
),
Planet.ThorInternal => GetPolicy(
maxTransactionsBytesPolicy: MaxTransactionsBytesPolicy.Thor,
minTransactionsPerBlockPolicy: MinTransactionsPerBlockPolicy.Thor,
maxTransactionsPerBlockPolicy: MaxTransactionsPerBlockPolicy.Thor,
maxTransactionsPerSignerPerBlockPolicy: MaxTransactionsPerSignerPerBlockPolicy.ThorInternal
),
_ => throw new ArgumentException(
$"Can't retrieve policy for given planet ({planet})",
nameof(planet)
Expand Down
11 changes: 11 additions & 0 deletions Lib9c.Policy/Policy/MaxTransactionsBytesPolicy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,17 @@ private MaxTransactionsBytesPolicy(
startIndex: 3_031_001L,
value: 1024L * 1024L)); // 1 MiB

public static IVariableSubPolicy<long> Thor =>
Default
// Note: The genesis block of Thor weights 4,700,853 B (4.5 MiB).
.Add(new SpannedSubPolicy<long>(
startIndex: 0L,
value: 1024L * 1024L * 5L)) // 5 MiB
// Note: Thor has been started after v200250
.Add(new SpannedSubPolicy<long>(
startIndex: 1L,
value: 1024L * 500L)); // 500 KiB

// Note: For internal testing.
public static IVariableSubPolicy<long> OdinInternal =>
Default
Expand Down
6 changes: 6 additions & 0 deletions Lib9c.Policy/Policy/MaxTransactionsPerBlockPolicy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,11 @@ private MaxTransactionsPerBlockPolicy(
.Add(new SpannedSubPolicy<int>(
startIndex: 0,
value: BlockPolicySource.MaxTransactionsPerBlock));

public static IVariableSubPolicy<int> Thor =>
Default
.Add(new SpannedSubPolicy<int>(
startIndex: 0,
value: BlockPolicySource.MaxTransactionsPerBlock));
}
}
6 changes: 6 additions & 0 deletions Lib9c.Policy/Policy/MaxTransactionsPerSignerPerBlockPolicy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,17 @@ private MaxTransactionsPerSignerPerBlockPolicy(
public static IVariableSubPolicy<int> Heimdall =>
Default;

public static IVariableSubPolicy<int> Thor =>
Default;

// Note: For internal testing.
public static IVariableSubPolicy<int> OdinInternal =>
Default;

public static IVariableSubPolicy<int> HeimdallInternal =>
Default;

public static IVariableSubPolicy<int> ThorInternal =>
Default;
}
}
1 change: 1 addition & 0 deletions Lib9c.Policy/Policy/MinTransactionsPerBlockPolicy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,6 @@ private MinTransactionsPerBlockPolicy(
));

public static IVariableSubPolicy<int> Heimdall => Default;
public static IVariableSubPolicy<int> Thor => Default;
}
}
2 changes: 2 additions & 0 deletions Lib9c/Planet.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ public enum Planet : byte
Odin,
Heimdall,
Idun,
Thor,
OdinInternal,
HeimdallInternal,
ThorInternal,
}
}
10 changes: 10 additions & 0 deletions Lib9c/PlanetExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ public static class PlanetExtension
"209b22087045ec834f01249c8661c2734cea41ccc5d8c9a273a4c8c0521d22ec"
);

// FIXME should be changed before Thor mainnet launches
private static readonly BlockHash ThorGenesisHash = BlockHash.FromString(
"a6b53f0a1ac983d6ae49edb89a58e0d3d697adf1d2c88c074e49ed6764a57f10"
);

public static Planet? DeterminePlanet(this ITransaction tx)
{
// TODO Replace planet detection to using transaction payload instead.
Expand All @@ -34,6 +39,11 @@ public static class PlanetExtension
return Planet.Idun;
}

if (tx.GenesisHash.Equals(ThorGenesisHash))
{
return Planet.Thor;
}

return null;
}
}
Expand Down

0 comments on commit 795fcc9

Please sign in to comment.