This is the central repository for all the Olive Help LDKs. You'll probably want to look at the individual LDK readmes in the ldk\{language}
folder.
Each LDK must adhere to this contract:
- They should start a GRPC server serving the following services:
proto.Loop
plugin.Broker
plugin.Stdio
- When started up they write to STDOUT a connection string in the following format:
1|1|tcp|{HOST}:{PORT}|grpc
. - They do not write anything else to STDOUT until the Go LDK LoopClient calls the
proto.Loop.LoopStart
rpc. - The
LoopStart
rpc should complete once the Loop is started, it should not wait until the Loop is complete. - Their logger should write to STDERR single line JSON objects with the following properties:
@timestamp
- The current timestamp in the formatyyyy-MM-ddTHH:mm:ss.ffffffzzz
. Seconds to the 6th decimal point is required, otherwise the logger will fail to parse the message and will log the JSON to the logs.@level
- The logging level (one ofTRACE
,DEBUG
,INFO
,WARN
,ERROR
)@module
- The name of the module, usually the loop name.@pid
- The Loop's process ID.@message
- The message to log.- and other properties as appropriate.