Skip to content

Commit

Permalink
Merge pull request #2010 from pmconrad/1723_docker_config
Browse files Browse the repository at this point in the history
Add logging.ini to docker config
  • Loading branch information
pmconrad authored Sep 28, 2019
2 parents eb33519 + 51c27ff commit c3ba587
Show file tree
Hide file tree
Showing 4 changed files with 298 additions and 7 deletions.
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ EXPOSE 1776

# default exec/config files
ADD docker/default_config.ini /etc/bitshares/config.ini
ADD docker/default_logging.ini /etc/bitshares/logging.ini
ADD docker/bitsharesentry.sh /usr/local/bin/bitsharesentry.sh
RUN chmod a+x /usr/local/bin/bitsharesentry.sh

Expand Down
5 changes: 3 additions & 2 deletions docker/bitsharesentry.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,12 @@ fi
## Link the bitshares config file into home
## This link has been created in Dockerfile, already
ln -f -s /etc/bitshares/config.ini /var/lib/bitshares
ln -f -s /etc/bitshares/logging.ini /var/lib/bitshares

# Plugins need to be provided in a space-separated list, which
# makes it necessary to write it like this
if [[ ! -z "$BITSHARESD_PLUGINS" ]]; then
exec $BITSHARESD --data-dir ${HOME} ${ARGS} ${BITSHARESD_ARGS} --plugins "${BITSHARESD_PLUGINS}"
exec "$BITSHARESD" --data-dir "${HOME}" ${ARGS} ${BITSHARESD_ARGS} --plugins "${BITSHARESD_PLUGINS}"
else
exec $BITSHARESD --data-dir ${HOME} ${ARGS} ${BITSHARESD_ARGS}
exec "$BITSHARESD" --data-dir "${HOME}" ${ARGS} ${BITSHARESD_ARGS}
fi
252 changes: 247 additions & 5 deletions docker/default_config.ini
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,108 @@ rpc-endpoint = 0.0.0.0:8090
# JSON file specifying API permissions
# api-access =

# Number of IO threads, default to 0 for auto-configuration
# io-threads =

# Whether allow API clients to subscribe to universal object creation and removal events
# enable-subscribe-to-all =

# Whether to enable tracking of votes of standby witnesses and committee members. Set it to true to provide accurate data to API clients, set to false for slightly better performance.
# enable-standby-votes-tracking =

# For history_api::get_account_history_operations to set max limit value
# api-limit-get-account-history-operations = 100

# For history_api::get_account_history to set max limit value
# api-limit-get-account-history = 100

# For orders_api::get_grouped_limit_orders to set max limit value
# api-limit-get-grouped-limit-orders = 101

# For history_api::get_relative_account_history to set max limit value
# api-limit-get-relative-account-history = 100

# For history_api::get_account_history_by_operations to set max limit value
# api-limit-get-account-history-by-operations = 100

# For asset_api::get_asset_holders to set max limit value
# api-limit-get-asset-holders = 100

# For database_api_impl::get_key_references to set max limit value
# api-limit-get-key-references = 100

# For database_api_impl::get_htlc_by_from and get_htlc_by_to to set max limit value
# api-limit-get-htlc-by = 100

# For database_api_impl::get_full_accounts to set max limit value
# api-limit-get-full-accounts = 10

# For database_api_impl::get_full_accounts to set max limit value
# api-limit-get-full-accounts-lists = 100

# For database_api_impl::get_call_orders and get_call_orders_by_account to set max limit value
# api-limit-get-call-orders = 300

# For database_api_impl::get_settle_orders and get_settle_orders_by_account to set max limit value
# api-limit-get-settle-orders = 300

# For database_api_impl::list_assets and get_assets_by_issuer to set max limit value
# api-limit-get-assets = 101

# For database_api_impl::get_limit_orders to set max limit value
# api-limit-get-limit-orders = 300

# For database_api_impl::get_order_book to set max limit value
# api-limit-get-order-book = 50

# For database_api_impl::lookup_accounts to set max limit value
# api-limit-lookup-accounts = 1000

# For database_api_impl::lookup_witness_accounts to set max limit value
# api-limit-lookup-witness-accounts = 1000

# For database_api_impl::lookup_committee_member_accounts to set max limit value
# api-limit-lookup-committee-member-accounts = 1000

# For database_api_impl::lookup_vote_ids to set max limit value
# api-limit-lookup-vote-ids = 1000

# For database_api_impl::get_account_limit_orders to set max limit value
# api-limit-get-account-limit-orders = 101

# For database_api_impl::get_collateral_bids to set max limit value
# api-limit-get-collateral-bids = 100

# For database_api_impl::get_top_markets to set max limit value
# api-limit-get-top-markets = 100

# For database_api_impl::get_trade_history to set max limit value
# api-limit-get-trade-history = 100

# For database_api_impl::get_trade_history_by_sequence to set max limit value
# api-limit-get-trade-history-by-sequence = 100

# For database_api_impl::get_withdraw_permissions_by_giver to set max limit value
# api-limit-get-withdraw-permissions-by-giver = 101

# For database_api_impl::get_withdraw_permissions_by_recipient to set max limit value
# api-limit-get-withdraw-permissions-by-recipient = 101

# Space-separated list of plugins to activate
plugins = witness account_history market_history grouped_orders api_helper_indexes

# Do not exit if api_helper_indexes plugin is not enabled.
# ignore-api-helper-indexes-warning = true


# ==============================================================================
# witness plugin options
# ==============================================================================

# Enable block production, even if the chain is stale.
enable-stale-production = false

# Percent of witnesses (0-99) that must be participating in order to produce blocks
# Percent of witnesses (0-100) that must be participating in order to produce blocks
# required-participation = 33

# ID of witness controlled by this node (e.g. "1.6.5", quotes are required, may specify multiple times)
Expand All @@ -43,9 +141,71 @@ enable-stale-production = false
# Tuple of [PublicKey, WIF private key] (may specify multiple times)
# private-key = ["BTS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"]

# Path to a file containing tuples of [PublicKey, WIF private key]. The file has to contain exactly one tuple (i.e. private - public key pair) per line. This option may be specified multiple times, thus multiple files can be provided.
# private-key-file =


# ==============================================================================
# debug_witness plugin options
# ==============================================================================

# Tuple of [PublicKey, WIF private key] (may specify multiple times)
# debug-private-key = ["BTS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"]


# ==============================================================================
# account_history plugin options
# ==============================================================================

# Account ID to track history for (may specify multiple times)
# track-account =

# Keep only those operations in memory that are related to account history tracking
partial-operations = true

# Maximum number of operations per account will be kept in memory
max-ops-per-account = 1000


# ==============================================================================
# elasticsearch plugin options
# ==============================================================================

# Elastic Search database node url(http://localhost:9200/)
# elasticsearch-node-url =

# Number of bulk documents to index on replay(10000)
# elasticsearch-bulk-replay =

# Number of bulk documents to index on a syncronied chain(100)
# elasticsearch-bulk-sync =

# Use visitor to index additional data(slows down the replay(false))
# elasticsearch-visitor =

# Pass basic auth to elasticsearch database('')
# elasticsearch-basic-auth =

# Add a prefix to the index(bitshares-)
# elasticsearch-index-prefix =

# Save operation as object(false)
# elasticsearch-operation-object =

# Start doing ES job after block(0)
# elasticsearch-start-es-after-block =

# Save operation as string. Needed to serve history api calls(true)
# elasticsearch-operation-string =

# Mode of operation: only_save(0), only_query(1), all(2) - Default: 0
# elasticsearch-mode =


# ==============================================================================
# market_history plugin options
# ==============================================================================

# Track market history by grouping orders into buckets of equal size measured in seconds specified as a JSON array of numbers
# bucket-size = [15,60,300,3600,86400]
bucket-size = [60,300,900,1800,3600,14400,86400]
Expand All @@ -55,8 +215,90 @@ bucket-size = [60,300,900,1800,3600,14400,86400]
# How far back in time to track history for each bucket size, measured in the number of buckets (default: 1000)
history-per-size = 1000

# Max amount of operations to store in the database, per account (drastically reduces RAM requirements)
max-ops-per-account = 1000
# Will only store this amount of matched orders for each market in order history for querying, or those meet the other option, which has more data (default: 1000)
max-order-his-records-per-market = 1000

# Remove old operation history # objects from RAM
partial-operations = true
# Will only store matched orders in last X seconds for each market in order history for querying, or those meet the other option, which has more data (default: 259200 (3 days))
max-order-his-seconds-per-market = 259200


# ==============================================================================
# delayed_node plugin options
# ==============================================================================

# RPC endpoint of a trusted validating node (required for delayed_node)
# trusted-node =


# ==============================================================================
# snapshot plugin options
# ==============================================================================

# Block number after which to do a snapshot
# snapshot-at-block =

# Block time (ISO format) after which to do a snapshot
# snapshot-at-time =

# Pathname of JSON file where to store the snapshot
# snapshot-to =


# ==============================================================================
# es_objects plugin options
# ==============================================================================

# Elasticsearch node url(http://localhost:9200/)
# es-objects-elasticsearch-url =

# Basic auth username:password('')
# es-objects-auth =

# Number of bulk documents to index on replay(10000)
# es-objects-bulk-replay =

# Number of bulk documents to index on a synchronized chain(100)
# es-objects-bulk-sync =

# Store proposal objects(true)
# es-objects-proposals =

# Store account objects(true)
# es-objects-accounts =

# Store asset objects(true)
# es-objects-assets =

# Store balances objects(true)
# es-objects-balances =

# Store limit order objects(true)
# es-objects-limit-orders =

# Store feed data(true)
# es-objects-asset-bitasset =

# Add a prefix to the index(objects-)
# es-objects-index-prefix =

# Keep only current state of the objects(true)
# es-objects-keep-only-current =

# Start doing ES job after block(0)
# es-objects-start-es-after-block =


# ==============================================================================
# grouped_orders plugin options
# ==============================================================================

# Group orders by percentage increase on price. Specify a JSON array of numbers here, each number is a group, number 1 means 0.01%.
# tracked-groups = [10,100]


# ==============================================================================
# logging options
# ==============================================================================
#
# Logging configuration is loaded from logging.ini by default.
# If logging.ini exists, logging configuration added in this file will be ignored.
47 changes: 47 additions & 0 deletions docker/default_logging.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# declare an appender named "stderr" that writes messages to the console
[log.console_appender.stderr]
stream=std_error

# declare an appender named "default" that writes messages to default.log
[log.file_appender.default]
# filename can be absolute or relative to this config file
filename=logs/default/default.log
# Rotate log every ? minutes, if leave out default to 60
rotation_interval=60
# how long will logs be kept (in days), if leave out default to 1
rotation_limit=7

# declare an appender named "p2p" that writes messages to p2p.log
[log.file_appender.p2p]
# filename can be absolute or relative to this config file
filename=logs/p2p/p2p.log
# Rotate log every ? minutes, if leave out default to 60
rotation_interval=60
# how long will logs be kept (in days), if leave out default to 1
rotation_limit=7

# declare an appender named "rpc" that writes messages to rpc.log
[log.file_appender.rpc]
# filename can be absolute or relative to this config file
filename=logs/rpc/rpc.log
# Rotate log every ? minutes, if leave out default to 60
rotation_interval=60
# how long will logs be kept (in days), if leave out default to 1
rotation_limit=7

# route any messages logged to the default logger to the "stderr" appender and
# "default" appender we declared above, if they are info level or higher
[logger.default]
level=info
appenders=stderr,default

# route messages sent to the "p2p" logger to the "p2p" appender declared above
[logger.p2p]
level=warn
appenders=p2p

# route messages sent to the "rpc" logger to the "rpc" appender declared above
[logger.rpc]
level=error
appenders=rpc

0 comments on commit c3ba587

Please sign in to comment.