daml/ledger/ledger-on-memory
Gerolf Seitz effceda612
Remove heartbeats in participant server and kvutils (#5315)
Contributes to #4231.

Remove checkpoints from Participant Server storage:
- Removed code to store checkpoints in the index database.
- Remove existing checkpoint rows in ledger_entries and participant_command_completions.
- Removed ObservedTimeServiceBackend

This commit modifies the java migration V2_1__Rebuild_Acs. This is safe to do, because:
a) any even semi recent persistent sandbox had already gone through this migration and won't re-run it
b) A new database doesn't even have entries yet to migrate.

CHANGELOG_BEGIN
[DAML Ledger Integration Kit] Removed the ``Hearbeat`` state update.
[Sandbox] Checkpoints are no longer emitted in regular intervals in wall
clock time mode.
CHANGELOG_END
2020-04-01 12:34:23 +02:00
..
src Remove heartbeats in participant server and kvutils (#5315) 2020-04-01 12:34:23 +02:00
BUILD.bazel Organize maven coordinates (#5272) 2020-04-01 11:41:18 +02:00
README.md docker image for ledger-on-memory (#5256) 2020-03-29 10:54:12 +02:00

Overview

This document is to help internal engineers work with ledger-on-memory.

ledger-on-memory is a key/value-based ledger that uses a simple in-memory map as an underlying storage. It uses either H2 or PostgreSQL as its index database.

Ledger On Memory

To build a fat JAR with the server built from HEAD run

bazel build //ledger/ledger-on-memory:app_deploy.jar

The application can be run from command line with the following command:

java -Xmx4G -XX:+UseG1GC -jar bazel-bin/ledger/ledger-on-memory/app_deploy.jar --participant participant-id=foo,port=6861

As run from the main project root directory (adjust the location of the JAR according to your working directory).

Alternatively, the application can be run using the Bazel command:

bazel run //ledger/ledger-on-memory:app -- --participant participant-id=foo,port=6861

Docker

Ledger On Memory can be put into a Docker container by first building it:

bazel build ledger/ledger-on-memory:app-image

Then by running the Bazel target that imports the image into your local Docker repository, and then runs a container from that image.

bazel run ledger/ledger-on-memory:app-image

The container will fail to run, but the image has now been loaded into your local Docker repository under the name bazel/ledger/ledger-on-memory.

It can then be run using Docker:

docker run \
    -it \
    --rm \
    --name ledger \
    --network docker_default \
    -p 6861:6865 \
    bazel/ledger/ledger-on-memory:app-image \
        --participant participant-id=foo,port=6865,address=0.0.0.0

The above command makes the ledger available to clients from the host machine at the address localhost:6861. It is also available to other docker containers on the docker_default network under ledger:6865.