Skip to content

Commit 0fe16b7

Browse files
update indexers to use block proxy
1 parent 14fa916 commit 0fe16b7

File tree

31 files changed

+193
-451
lines changed

31 files changed

+193
-451
lines changed

apps/indexer-balance/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"@types/lodash-es": "~4.17",
2525
"@types/node": "~22.10",
2626
"eslint-config-custom-node": "*",
27-
"nb-blocks": "*",
27+
"nb-neardata": "*",
2828
"nb-knex": "*",
2929
"nb-logger": "*",
3030
"nb-tsconfig": "*",

apps/indexer-balance/src/config.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,25 @@ const env = cleanEnv(process.env, {
1111
DATABASE_KEY: str({ default: '' }),
1212
DATABASE_URL: str(),
1313
DATABASE_URL_READ: str({ default: '' }),
14+
NEARDATA_URL: url(),
1415
NETWORK: str({
1516
choices: [Network.MAINNET, Network.TESTNET],
1617
}),
17-
S3_ACCESS_KEY: str(),
18-
S3_BUCKET: str({ default: 'nearblocks' }),
19-
S3_ENDPOINT: url(),
20-
S3_REGION: str({ default: '' }),
21-
S3_SECRET_KEY: str(),
2218
SENTRY_DSN: str({ default: '' }),
2319
});
2420

21+
const genesisHeight = env.NETWORK === Network.MAINNET ? 9_820_210 : 42_376_888;
22+
2523
const config: Config = {
2624
dbCa: env.DATABASE_CA,
2725
dbCert: env.DATABASE_CERT,
2826
dbKey: env.DATABASE_KEY,
2927
dbUrl: env.DATABASE_URL,
3028
dbUrlRead: env.DATABASE_URL_READ,
29+
genesisHeight,
3130
indexerKey: 'balance',
31+
neardataUrl: env.NEARDATA_URL,
3232
network: env.NETWORK,
33-
s3AccessKey: env.S3_ACCESS_KEY,
34-
s3Bucket: env.S3_BUCKET,
35-
s3Endpoint: env.S3_ENDPOINT,
36-
s3Region: env.S3_REGION,
37-
s3SecretKey: env.S3_SECRET_KEY,
3833
sentryDsn: env.SENTRY_DSN,
3934
startBlockHeight: env.BALANCE_START_BLOCK,
4035
};

apps/indexer-balance/src/libs/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { snakeCase, toUpper } from 'lodash-es';
22

3-
import { ExecutionStatus } from 'nb-blocks';
3+
import { ExecutionStatus } from 'nb-neardata';
44
import { EventStatus, ExecutionOutcomeStatus, JsonValue } from 'nb-types';
55
import { sleep } from 'nb-utils';
66

apps/indexer-balance/src/services/balance.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1+
import { Knex } from 'nb-knex';
12
import {
23
BlockHeader,
34
StateChange as BlockStateChange,
45
ExecutionOutcomeWithReceipt,
56
IndexerTransactionWithOutcome,
67
Message,
78
Shard,
8-
} from 'nb-blocks';
9-
import { Knex } from 'nb-knex';
9+
} from 'nb-neardata';
1010
import {
1111
BalanceEvent,
1212
EventStatus,

apps/indexer-balance/src/services/stream.ts

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,12 @@
1-
import { Message, streamBlock } from 'nb-blocks';
21
import { logger } from 'nb-logger';
2+
import { Message, streamBlock } from 'nb-neardata';
33

44
import config from '#config';
5-
import { dbRead, dbWrite, streamConfig } from '#libs/knex';
5+
import { dbRead, dbWrite } from '#libs/knex';
66
import sentry from '#libs/sentry';
77
import { storeBalance } from '#services/balance';
88

99
const indexerKey = config.indexerKey;
10-
const s3Config = {
11-
credentials: {
12-
accessKeyId: config.s3AccessKey,
13-
secretAccessKey: config.s3SecretKey,
14-
},
15-
endpoint: config.s3Endpoint,
16-
forcePathStyle: true,
17-
region: config.s3Region,
18-
};
1910

2011
export const syncData = async () => {
2112
const settings = await dbRead('settings').where({ key: indexerKey }).first();
@@ -26,29 +17,17 @@ export const syncData = async () => {
2617
startBlockHeight = +latestBlock;
2718
}
2819

29-
const startBlock = startBlockHeight || 0;
30-
31-
logger.info(`syncing from block: ${startBlock}`);
20+
logger.info(`syncing from block: ${startBlockHeight}`);
3221

3322
const stream = streamBlock({
34-
dbConfig: streamConfig,
35-
s3Bucket: config.s3Bucket,
36-
s3Config,
37-
start: startBlock,
23+
network: config.network,
24+
start: startBlockHeight || config.genesisHeight,
25+
url: config.neardataUrl,
3826
});
3927

4028
for await (const message of stream) {
4129
await onMessage(message);
4230
}
43-
44-
stream.on('end', () => {
45-
logger.error('stream ended');
46-
process.exit();
47-
});
48-
stream.on('error', (error: Error) => {
49-
logger.error(error);
50-
process.exit();
51-
});
5231
};
5332

5433
export const onMessage = async (message: Message) => {

apps/indexer-balance/src/types/types.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,10 @@ export type Config = {
66
dbKey: string;
77
dbUrl: string;
88
dbUrlRead: string;
9+
genesisHeight: number;
910
indexerKey: string;
11+
neardataUrl: string;
1012
network: Network;
11-
s3AccessKey: string;
12-
s3Bucket: string;
13-
s3Endpoint: string;
14-
s3Region: string;
15-
s3SecretKey: string;
1613
sentryDsn?: string;
1714
startBlockHeight: number;
1815
};

apps/indexer-base/src/config.ts

Lines changed: 3 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,19 @@
1-
import { types } from '@near-lake/framework';
2-
import { bool, cleanEnv, num, str, url } from 'envalid';
1+
import { cleanEnv, num, str, url } from 'envalid';
32

43
import { Network } from 'nb-types';
54

6-
import { DataSource } from '#types/enum';
75
import { Config } from '#types/types';
86

97
const env = cleanEnv(process.env, {
10-
BASE_DATA_SOURCE: str({
11-
choices: [DataSource.FAST_NEAR, DataSource.NEAR_LAKE],
12-
default: DataSource.NEAR_LAKE,
13-
}),
148
BASE_START_BLOCK: num({ default: 0 }),
159
DATABASE_CA: str({ default: '' }),
1610
DATABASE_CERT: str({ default: '' }),
1711
DATABASE_KEY: str({ default: '' }),
1812
DATABASE_URL: str(),
19-
DISABLE_AUTO_SWITCH: bool({ default: false }),
20-
DISABLE_S3_UPLOAD: bool({ default: false }),
21-
FASTNEAR_API_KEY: str(),
22-
FASTNEAR_ENDPOINT: str({ default: undefined }),
23-
NEARLAKE_ACCESS_KEY: str(),
24-
NEARLAKE_ENDPOINT: url({ default: '' }),
25-
NEARLAKE_SECRET_KEY: str(),
13+
NEARDATA_URL: url(),
2614
NETWORK: str({
2715
choices: [Network.MAINNET, Network.TESTNET],
2816
}),
29-
S3_ACCESS_KEY: str(),
30-
S3_BUCKET: str({ default: '' }),
31-
S3_ENDPOINT: url(),
32-
S3_REGION: str({ default: '' }),
33-
S3_SECRET_KEY: str(),
3417
SENTRY_DSN: str({ default: '' }),
3518
});
3619

@@ -40,49 +23,18 @@ const genesisTimestamp =
4023
? '1595350551591948000'
4124
: '1596166782911378000';
4225
const genesisFile = `https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/${env.NETWORK}/genesis.json`;
43-
let nearlakeEndpoint: null | types.EndpointConfig = null;
44-
const nearlakeBucketName =
45-
env.NETWORK === Network.MAINNET
46-
? 'near-lake-data-mainnet'
47-
: 'near-lake-data-testnet';
48-
49-
if (env.NEARLAKE_ENDPOINT) {
50-
const endpoint = new URL(env.NEARLAKE_ENDPOINT);
51-
nearlakeEndpoint = {
52-
hostname: endpoint.hostname,
53-
path: endpoint.pathname,
54-
port: +endpoint.port || 80,
55-
protocol: endpoint.protocol,
56-
};
57-
}
5826

5927
const config: Config = {
60-
dataSource: env.BASE_DATA_SOURCE,
6128
dbCa: env.DATABASE_CA,
6229
dbCert: env.DATABASE_CERT,
6330
dbKey: env.DATABASE_KEY,
6431
dbUrl: env.DATABASE_URL,
65-
delta: 10, // start from blocks earlier on sync interuption
66-
disableAutoSwitch: env.DISABLE_AUTO_SWITCH,
67-
disableS3Upload: env.DISABLE_S3_UPLOAD,
68-
fastnearApiKey: env.FASTNEAR_API_KEY,
69-
fastnearEndpoint: env.FASTNEAR_ENDPOINT,
7032
genesisFile: genesisFile, // url to download genesis data
7133
genesisHeight,
7234
genesisTimestamp,
7335
insertLimit: 2_500, // records to insert into the db at a time
74-
nearlakeAccessKey: env.NEARLAKE_ACCESS_KEY,
75-
nearlakeBucketName,
76-
nearlakeEndpoint,
77-
nearlakeRegionName: 'eu-central-1',
78-
nearlakeSecretKey: env.NEARLAKE_SECRET_KEY,
36+
neardataUrl: env.NEARDATA_URL,
7937
network: env.NETWORK,
80-
preloadSize: 100, // blocks to preload in nearlake
81-
s3AccessKey: env.S3_ACCESS_KEY,
82-
s3Bucket: env.S3_BUCKET,
83-
s3Endpoint: env.S3_ENDPOINT,
84-
s3Region: env.S3_REGION,
85-
s3SecretKey: env.S3_SECRET_KEY,
8638
sentryDsn: env.SENTRY_DSN,
8739
startBlockHeight: env.BASE_START_BLOCK,
8840
};

apps/indexer-base/src/services/s3.ts

Lines changed: 0 additions & 49 deletions
This file was deleted.

0 commit comments

Comments
 (0)