Node.js
version 14 or laterPostgreSQL
version 12 or later$ git clone https://github.com/terra-money/fcd.git
npm i
FCD requires PostgreSQL as a backend database and TypeORM as an ORM.
postgres=> CREATE DATABASED fcd OWNER terra;
Table schema has to be synced before running Collector by setting synchronize
to true
. There is many way to configure TypeORM. Example is below:
ormconfig.js
module.exports = {
name: 'default',
type: 'postgres',
host: 'localhost',
database: 'fcd',
username: 'terra',
password: '<password>',
synchronize: true
}
You shall not use CLI method, and it is good to disable synchronize option after the first sync.
Name | Description | Default | Module(s) |
---|---|---|---|
CHAIN_ID | Chain ID of Terra network | bombay-12 | API, Collector |
INITIAL_HEIGHT | The initial height of network. (Define 4724001 for Columbus-5) | Collector | |
LCD_URI | LCD URI for Terra network | https://bombay-lcd.terra.dev | API, Collector |
RPC_URI | RPC URI for Terra network | required: http://x.x.x.x:26657 | API, Collector |
USE_LOG_FILE | Write logs to logs directory | false | API, Collector |
SENTRY_DSN | Sentry DSN for error management (optional) | API, Collector | |
SERVER_PORT | Listening port for API server | 3060 | API |
FCD_URI | FCD URI for Terra network | https://bombay-fcd.terra.dev | API |
BYPASS_URI | Terra LCD address | https://bombay-lcd.terra.dev | API |
MIRROR_GRAPH_URI | Mirror GraphQL endpoint | https://bombay-graph.mirror.finance/graphql | API |
PYLON_API_ENDPOINT | Pylon API endpoint | https://api.dev.pylon.rocks/api | API |
STATION_STATUS_JSON | URL for Station version control | https://terra.money/station/version-web.json | API |
ACTIVE_DENOMS | Active Denominations | ["uluna","usdr","ukrw","uusd","umnt"] | API |
ACTIVE_CURRENCY | Active Currencies | ["luna","sdt","krt","ust","mnt"] | API |
DISABLE_API | Disable REST APIs | false | API |
EXCLUDED_ROUTES | List of regular expression string for excluding routes | [] | API |
MIN_GAS_PRICES | Minimum gas price by denom object | {"uluna": "0.015", "usdr": "0.015", "uusd": "0.015", "ukrw": "0.015", "umnt": "0.015"} | API |
TOKEN_NETWORK | Network specifier for whitelisted tokens | required: mainnet / testnet | API |
In Terra, we use direnv for managing environment variable for development. See sample of .envrc
npm run coldev
npm run dev
npm run test
npm run collector
npm run start
npm run apidoc
http://localhost:3060/apidoc
npm run swagger
http://localhost:3060/swagger
http://localhost:3060/static/swagger.json
AWS
api gatewaynpm run swagger -- --apigateway
npm run mergeswagger -- -o filename
static
directory in project root
combined-swagger.json
--apigateway
parameter