@xyo-network/chain-mempool 1.19.8 → 1.19.10

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 (103) hide show
  1. package/dist/node/MempoolActor.d.ts +20 -0
  2. package/dist/node/MempoolActor.d.ts.map +1 -0
  3. package/dist/node/index.d.ts +2 -1
  4. package/dist/node/index.d.ts.map +1 -1
  5. package/dist/node/index.mjs +87 -385
  6. package/dist/node/index.mjs.map +1 -1
  7. package/dist/node/runMempool.d.ts +4 -0
  8. package/dist/node/runMempool.d.ts.map +1 -0
  9. package/package.json +8 -20
  10. package/src/MempoolActor.ts +83 -0
  11. package/src/index.ts +2 -1
  12. package/src/runMempool.ts +28 -0
  13. package/dist/node/MempoolContext.d.ts +0 -9
  14. package/dist/node/MempoolContext.d.ts.map +0 -1
  15. package/dist/node/helpers/index.d.ts +0 -2
  16. package/dist/node/helpers/index.d.ts.map +0 -1
  17. package/dist/node/helpers/initChainId.d.ts +0 -4
  18. package/dist/node/helpers/initChainId.d.ts.map +0 -1
  19. package/dist/node/manifest/getLocator.d.ts +0 -14
  20. package/dist/node/manifest/getLocator.d.ts.map +0 -1
  21. package/dist/node/manifest/getNode.d.ts +0 -15
  22. package/dist/node/manifest/getNode.d.ts.map +0 -1
  23. package/dist/node/manifest/index.d.ts +0 -6
  24. package/dist/node/manifest/index.d.ts.map +0 -1
  25. package/dist/node/manifest/nodeManifest.d.ts +0 -6
  26. package/dist/node/manifest/nodeManifest.d.ts.map +0 -1
  27. package/dist/node/manifest/private/index.d.ts +0 -5
  28. package/dist/node/manifest/private/index.d.ts.map +0 -1
  29. package/dist/node/manifest/public/index.d.ts +0 -14
  30. package/dist/node/manifest/public/index.d.ts.map +0 -1
  31. package/dist/node/server/app.d.ts +0 -4
  32. package/dist/node/server/app.d.ts.map +0 -1
  33. package/dist/node/server/index.d.ts +0 -11
  34. package/dist/node/server/index.d.ts.map +0 -1
  35. package/dist/node/server/instrumentation.d.ts +0 -9
  36. package/dist/node/server/instrumentation.d.ts.map +0 -1
  37. package/dist/node/server/model.d.ts +0 -5
  38. package/dist/node/server/model.d.ts.map +0 -1
  39. package/dist/node/server/routes/addRoutes.d.ts +0 -3
  40. package/dist/node/server/routes/addRoutes.d.ts.map +0 -1
  41. package/dist/node/server/routes/address/AddressPathParams.d.ts +0 -4
  42. package/dist/node/server/routes/address/AddressPathParams.d.ts.map +0 -1
  43. package/dist/node/server/routes/address/addNodeRoutes.d.ts +0 -3
  44. package/dist/node/server/routes/address/addNodeRoutes.d.ts.map +0 -1
  45. package/dist/node/server/routes/address/get/get.d.ts +0 -4
  46. package/dist/node/server/routes/address/get/get.d.ts.map +0 -1
  47. package/dist/node/server/routes/address/get/index.d.ts +0 -2
  48. package/dist/node/server/routes/address/get/index.d.ts.map +0 -1
  49. package/dist/node/server/routes/address/index.d.ts +0 -2
  50. package/dist/node/server/routes/address/index.d.ts.map +0 -1
  51. package/dist/node/server/routes/address/post/getQueryConfig.d.ts +0 -6
  52. package/dist/node/server/routes/address/post/getQueryConfig.d.ts.map +0 -1
  53. package/dist/node/server/routes/address/post/index.d.ts +0 -2
  54. package/dist/node/server/routes/address/post/index.d.ts.map +0 -1
  55. package/dist/node/server/routes/address/post/post.d.ts +0 -8
  56. package/dist/node/server/routes/address/post/post.d.ts.map +0 -1
  57. package/dist/node/server/routes/dataLake/addDataLakeRoutes.d.ts +0 -3
  58. package/dist/node/server/routes/dataLake/addDataLakeRoutes.d.ts.map +0 -1
  59. package/dist/node/server/routes/dataLake/archivistMiddleware.d.ts +0 -10
  60. package/dist/node/server/routes/dataLake/archivistMiddleware.d.ts.map +0 -1
  61. package/dist/node/server/routes/dataLake/index.d.ts +0 -2
  62. package/dist/node/server/routes/dataLake/index.d.ts.map +0 -1
  63. package/dist/node/server/routes/healthz/addHealthRoutes.d.ts +0 -3
  64. package/dist/node/server/routes/healthz/addHealthRoutes.d.ts.map +0 -1
  65. package/dist/node/server/routes/healthz/index.d.ts +0 -2
  66. package/dist/node/server/routes/healthz/index.d.ts.map +0 -1
  67. package/dist/node/server/routes/index.d.ts +0 -4
  68. package/dist/node/server/routes/index.d.ts.map +0 -1
  69. package/dist/node/server/server.d.ts +0 -11
  70. package/dist/node/server/server.d.ts.map +0 -1
  71. package/src/MempoolContext.ts +0 -12
  72. package/src/global.d.ts +0 -13
  73. package/src/helpers/index.ts +0 -1
  74. package/src/helpers/initChainId.ts +0 -20
  75. package/src/manifest/getLocator.ts +0 -70
  76. package/src/manifest/getNode.ts +0 -32
  77. package/src/manifest/index.ts +0 -5
  78. package/src/manifest/node.json +0 -17
  79. package/src/manifest/nodeManifest.ts +0 -8
  80. package/src/manifest/private/index.ts +0 -4
  81. package/src/manifest/public/Chain.json +0 -63
  82. package/src/manifest/public/Pending.json +0 -35
  83. package/src/manifest/public/index.ts +0 -20
  84. package/src/server/app.ts +0 -31
  85. package/src/server/index.ts +0 -13
  86. package/src/server/instrumentation.ts +0 -15
  87. package/src/server/model.ts +0 -5
  88. package/src/server/routes/addRoutes.ts +0 -11
  89. package/src/server/routes/address/AddressPathParams.ts +0 -3
  90. package/src/server/routes/address/addNodeRoutes.ts +0 -21
  91. package/src/server/routes/address/get/get.ts +0 -30
  92. package/src/server/routes/address/get/index.ts +0 -1
  93. package/src/server/routes/address/index.ts +0 -1
  94. package/src/server/routes/address/post/getQueryConfig.ts +0 -23
  95. package/src/server/routes/address/post/index.ts +0 -1
  96. package/src/server/routes/address/post/post.ts +0 -77
  97. package/src/server/routes/dataLake/addDataLakeRoutes.ts +0 -9
  98. package/src/server/routes/dataLake/archivistMiddleware.ts +0 -85
  99. package/src/server/routes/dataLake/index.ts +0 -1
  100. package/src/server/routes/healthz/addHealthRoutes.ts +0 -14
  101. package/src/server/routes/healthz/index.ts +0 -1
  102. package/src/server/routes/index.ts +0 -3
  103. package/src/server/server.ts +0 -147
@@ -1,147 +0,0 @@
1
- import type { Logger } from '@xylabs/sdk-js'
2
- import { assertEx } from '@xylabs/sdk-js'
3
- import type { ArchivistInstance } from '@xyo-network/archivist-model'
4
- import type { ValidatorActorParams } from '@xyo-network/chain-orchestration'
5
- import {
6
- buildTelemetryConfig, initBalanceSummaryMap, initHealthEndpoints, initMempoolWallet, initServerNode, initStatusReporter, initTransferSummaryMap,
7
- ValidatorActor,
8
- } from '@xyo-network/chain-orchestration'
9
- import { initTelemetry } from '@xyo-network/chain-telemetry'
10
- import { startupSpanAsync } from '@xyo-network/chain-utils'
11
- import { validateHydratedBlock, validateHydratedBlockState } from '@xyo-network/chain-validation'
12
- import type { NodeInstance } from '@xyo-network/node-model'
13
- import type {
14
- BlockViewer,
15
- Config, CreatableProviderContext, CreatableProviderParams,
16
- MempoolViewer,
17
- } from '@xyo-network/xl1-sdk'
18
- import {
19
- BlockViewerMoniker, DefaultMetricsScrapePorts, findMostRecentBlock, MempoolViewerMoniker,
20
- ProviderFactoryLocator, SimpleBlockValidationViewer, SimpleBlockViewer, SimpleMempoolRunner, SimpleMempoolViewer,
21
- SimpleStakeEventsViewer, SimpleStakeViewer, SimpleWindowedBlockViewer,
22
- } from '@xyo-network/xl1-sdk'
23
-
24
- import type { MempoolContext } from '../MempoolContext.ts'
25
- import { getApp } from './app.ts'
26
-
27
- const hostname = '::'
28
- // const hostname = '0.0.0.0'
29
-
30
- interface GetServerContext {
31
- config: Config
32
- logger?: Logger
33
- node?: NodeInstance
34
- }
35
-
36
- const getProviderFactoryLocator = (
37
- context: Omit<CreatableProviderContext, 'locator'>,
38
- finalizedArchivist: ArchivistInstance,
39
- pendingTransactionsArchivist: ArchivistInstance,
40
- pendingBlocksArchivist: ArchivistInstance,
41
- ) => {
42
- const locator = new ProviderFactoryLocator(context)
43
- locator.register(SimpleBlockValidationViewer.factory<SimpleBlockValidationViewer>(
44
- SimpleBlockValidationViewer.dependencies,
45
- { state: validateHydratedBlockState, protocol: validateHydratedBlock },
46
- ))
47
- locator.register(SimpleMempoolViewer.factory(SimpleMempoolViewer.dependencies, {
48
- pendingTransactionsArchivist,
49
- pendingBlocksArchivist,
50
- } as Partial<CreatableProviderParams>))
51
- locator.register(SimpleMempoolRunner.factory(SimpleMempoolRunner.dependencies, {
52
- pendingTransactionsArchivist,
53
- pendingBlocksArchivist,
54
- } as Partial<CreatableProviderParams>))
55
- locator.register(SimpleBlockViewer.factory<SimpleBlockViewer>(SimpleBlockViewer.dependencies, { finalizedArchivist }))
56
- locator.register(SimpleWindowedBlockViewer.factory<SimpleWindowedBlockViewer>(
57
- SimpleWindowedBlockViewer.dependencies,
58
- { maxWindowSize: 10_000, syncInterval: 10_000 },
59
- ))
60
- locator.register(SimpleStakeViewer.factory(SimpleStakeViewer.dependencies, {}))
61
- locator.register(SimpleStakeEventsViewer.factory(SimpleStakeEventsViewer.dependencies, {}))
62
- return locator
63
- }
64
-
65
- export const getServer = async (context: GetServerContext) => {
66
- const { config, node: providedNode } = context
67
- const { port } = context.config.actors.api
68
-
69
- const logger = assertEx(context.logger, () => 'Logger is required to init server')
70
-
71
- const statusReporter = initStatusReporter({ logger })
72
-
73
- await startupSpanAsync('initHealthEndpoints', () => initHealthEndpoints({
74
- config, logger, statusReporter,
75
- }))
76
-
77
- const telemetryConfig = buildTelemetryConfig(config, 'xl1-mempool', '1.0.0', DefaultMetricsScrapePorts.mempool)
78
-
79
- const { traceProvider, meterProvider } = await startupSpanAsync('initTelemetry', () => initTelemetry(telemetryConfig))
80
-
81
- const initContext = {
82
- _id: 'init-context',
83
- config,
84
- logger,
85
- statusReporter,
86
- meterProvider,
87
- traceProvider,
88
- singletons: {},
89
- caches: {},
90
- }
91
-
92
- const wallet = await initMempoolWallet(initContext)
93
-
94
- const balancesSummaryMap = assertEx(await initBalanceSummaryMap(initContext), () => 'Balance Summary Map not initialized')
95
- const transfersSummaryMap = assertEx(await initTransferSummaryMap(initContext), () => 'Transfer Summary Map not initialized')
96
-
97
- const {
98
- node, writableChainArchivist, readonlyChainArchivist, pendingTransactionsArchivist, pendingBlocksArchivist,
99
- } = await initServerNode({
100
- ...initContext, wallet, node: providedNode, transfersSummaryMap, balancesSummaryMap,
101
- })
102
-
103
- assertEx(await findMostRecentBlock(readonlyChainArchivist), () => 'No head found')
104
-
105
- const mods = await node.resolve('*')
106
- await Promise.all(mods.map((mod) => {
107
- return mod.start?.() ?? (() => true)
108
- }))
109
-
110
- const locator = getProviderFactoryLocator(initContext, writableChainArchivist, pendingTransactionsArchivist, pendingBlocksArchivist)
111
-
112
- const mempoolContext = {
113
- ...initContext,
114
- node,
115
- transfersSummaryMap,
116
- balancesSummaryMap,
117
- ...locator.context,
118
- _id: 'mempool-context',
119
- } satisfies MempoolContext
120
-
121
- const blockViewer = (await locator.getInstance<BlockViewer>(BlockViewerMoniker))
122
- assertEx(await blockViewer.start(), () => 'Failed to start BlockViewer')
123
-
124
- const blk = await blockViewer.currentBlock()
125
- assertEx(blk, () => 'No blocks found after initialization')
126
-
127
- const mempoolViewer = (await locator.getInstance<MempoolViewer>(MempoolViewerMoniker))
128
- assertEx(await mempoolViewer.start(), () => 'Failed to start MempoolViewer')
129
-
130
- console.info(`[Mempool] Current block after initialization: #${blk[0].block} (${blk[0]._hash})`)
131
-
132
- const actor = await ValidatorActor.create({
133
- id: 'validator-mempool-server',
134
- account: wallet,
135
- context: locator.context,
136
- finalizedArchivist: writableChainArchivist,
137
- blockViewer,
138
- mempoolViewer,
139
- } satisfies ValidatorActorParams)
140
-
141
- await actor.start()
142
-
143
- const app = getApp(mempoolContext)
144
- const server = app.listen(port, hostname, () => logger?.log(`[Mempool] Server listening at http://${hostname}:${port}`))
145
- server.setTimeout(20_000)
146
- return server
147
- }