@typeberry/lib 0.8.4-7a69737 → 0.8.4-7d1719f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/package.json +5 -1
  2. package/packages/jam/database-fjall/hybrid-states.d.ts +45 -0
  3. package/packages/jam/database-fjall/hybrid-states.d.ts.map +1 -0
  4. package/packages/jam/database-fjall/hybrid-states.js +113 -0
  5. package/packages/jam/database-fjall/hybrid-states.test.d.ts +2 -0
  6. package/packages/jam/database-fjall/hybrid-states.test.d.ts.map +1 -0
  7. package/packages/jam/database-fjall/hybrid-states.test.js +83 -0
  8. package/packages/jam/database-fjall/index.d.ts +3 -0
  9. package/packages/jam/database-fjall/index.d.ts.map +1 -0
  10. package/packages/jam/database-fjall/index.js +2 -0
  11. package/packages/jam/database-fjall/root.d.ts +52 -0
  12. package/packages/jam/database-fjall/root.d.ts.map +1 -0
  13. package/packages/jam/database-fjall/root.js +85 -0
  14. package/packages/jam/jamnp-s/tasks/ticket-distribution.d.ts +18 -10
  15. package/packages/jam/jamnp-s/tasks/ticket-distribution.d.ts.map +1 -1
  16. package/packages/jam/jamnp-s/tasks/ticket-distribution.js +44 -68
  17. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +30 -8
  18. package/packages/jam/node/main-fuzz.d.ts.map +1 -1
  19. package/packages/jam/node/main-fuzz.js +16 -1
  20. package/packages/jam/node/main-importer.d.ts +6 -3
  21. package/packages/jam/node/main-importer.d.ts.map +1 -1
  22. package/packages/jam/node/main-importer.js +3 -2
  23. package/packages/jam/ticket-pool/index.d.ts +4 -0
  24. package/packages/jam/ticket-pool/index.d.ts.map +1 -0
  25. package/packages/jam/ticket-pool/index.js +3 -0
  26. package/packages/jam/ticket-pool/pending-ticket-pool.d.ts +30 -0
  27. package/packages/jam/ticket-pool/pending-ticket-pool.d.ts.map +1 -0
  28. package/packages/jam/ticket-pool/pending-ticket-pool.js +56 -0
  29. package/packages/jam/ticket-pool/pending-ticket-pool.test.d.ts +2 -0
  30. package/packages/jam/ticket-pool/pending-ticket-pool.test.d.ts.map +1 -0
  31. package/packages/jam/ticket-pool/pending-ticket-pool.test.js +67 -0
  32. package/packages/jam/ticket-pool/ticket-validator.d.ts +46 -0
  33. package/packages/jam/ticket-pool/ticket-validator.d.ts.map +1 -0
  34. package/packages/jam/ticket-pool/ticket-validator.js +29 -0
  35. package/packages/jam/ticket-pool/ticket-validator.test.d.ts +2 -0
  36. package/packages/jam/ticket-pool/ticket-validator.test.d.ts.map +1 -0
  37. package/packages/jam/ticket-pool/ticket-validator.test.js +34 -0
  38. package/packages/jam/ticket-pool/verified-ticket-pool.d.ts +24 -0
  39. package/packages/jam/ticket-pool/verified-ticket-pool.d.ts.map +1 -0
  40. package/packages/jam/ticket-pool/verified-ticket-pool.js +37 -0
  41. package/packages/jam/ticket-pool/verified-ticket-pool.test.d.ts +2 -0
  42. package/packages/jam/ticket-pool/verified-ticket-pool.test.d.ts.map +1 -0
  43. package/packages/jam/ticket-pool/verified-ticket-pool.test.js +54 -0
  44. package/packages/workers/api-node/config.d.ts +12 -5
  45. package/packages/workers/api-node/config.d.ts.map +1 -1
  46. package/packages/workers/api-node/config.js +20 -17
  47. package/packages/workers/api-node/config.test.js +38 -1
  48. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  49. package/packages/workers/block-authorship/main.js +22 -74
  50. package/packages/workers/block-authorship/ticket-validator.d.ts +32 -0
  51. package/packages/workers/block-authorship/ticket-validator.d.ts.map +1 -0
  52. package/packages/workers/block-authorship/ticket-validator.js +56 -0
  53. package/packages/workers/comms-authorship-network/protocol.d.ts +10 -0
  54. package/packages/workers/comms-authorship-network/protocol.d.ts.map +1 -1
  55. package/packages/workers/comms-authorship-network/protocol.js +8 -1
  56. package/packages/workers/jam-network/main.d.ts.map +1 -1
  57. package/packages/workers/jam-network/main.js +20 -4
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/jam-network/main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAK3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAI1E;;;;;;GAMG;AACH,wBAAsB,IAAI,CACxB,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,EACtC,KAAK,EAAE,kBAAkB,EACzB,eAAe,EAAE,eAAe,iBAyDjC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/jam-network/main.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAO3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAI1E;;;;;;GAMG;AACH,wBAAsB,IAAI,CACxB,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,EACtC,KAAK,EAAE,kBAAkB,EACzB,eAAe,EAAE,eAAe,iBAwEjC"}
@@ -2,6 +2,8 @@ import { parseBootnode } from "#@typeberry/config-node";
2
2
  import { ed25519, initWasm } from "#@typeberry/crypto";
3
3
  import { setup } from "#@typeberry/jamnp-s";
4
4
  import { Logger } from "#@typeberry/logger";
5
+ import { ValidationError } from "#@typeberry/ticket-pool";
6
+ import { Result } from "#@typeberry/utils";
5
7
  const logger = Logger.new(import.meta.filename, "net");
6
8
  /**
7
9
  * JAM networking worker.
@@ -38,11 +40,25 @@ export async function main(config, comms, authorshipComms) {
38
40
  network.ticketTask.addTicket(epochIndex, ticket);
39
41
  }
40
42
  });
41
- // Relay tickets received from peers back to block-authorship (one ticket at a time).
42
- // Returns the validation result so ticket-distribution knows whether to redistribute.
43
- network.ticketTask.setOnTicketReceived(async (epochIndex, ticket) => {
44
- return await authorshipComms.sendReceivedTickets({ epochIndex, ticket });
43
+ // Authorship pushes the authoritative ticket pool on epoch boundaries; networking
44
+ // replaces its redistribution pool wholesale so the two sides cannot drift.
45
+ authorshipComms.setOnReplaceTicketPool(async ({ epochIndex, tickets }) => {
46
+ logger.log `Replacing redistribution pool from block-authorship for epoch ${epochIndex} (${tickets.length} tickets)`;
47
+ network.ticketTask.replacePool(epochIndex, tickets);
45
48
  });
49
+ // Validator that hands a received ticket to block-authorship over IPC and waits
50
+ // for an accept/reject decision. The wire protocol stays a simple bool; the
51
+ // computed id stays inside authorship (it owns the verified pool).
52
+ const ipcValidator = {
53
+ validate: async (epochIndex, ticket) => {
54
+ const ok = await authorshipComms.sendReceivedTickets({ epochIndex, ticket });
55
+ if (!ok) {
56
+ return Result.error(ValidationError.InvalidProof, () => "authorship rejected the ticket");
57
+ }
58
+ return Result.ok({ id: null });
59
+ },
60
+ };
61
+ network.ticketTask.setTicketValidator(ipcValidator);
46
62
  await network.network.start();
47
63
  // stop the network when the worker is finishing.
48
64
  await waitForFinish;