Lightning Network Initialization Tasks

Initialize LightningAPI-v2task::enable_lightning::init

The task::enable_lightning::init request a task to run a lightning node. Use the returned task_id as an input to check the status of the lightning node (i.e, running or still initiating). An error will be returned if a lightning node was already running for the requested ticker.

Request Parameters

ParameterTypeDescription
tickerstringTicker of coin to activate
activation_paramsobjectA standard LightningActivationParams object.

📌 Example

POST Initialize Lightning task::enable_lightning::init
{
  "method": "task::enable_lightning::init",
  "userpass": "RPC_UserP@SSW0RD",
  "mmrpc": "2.0",
  "params": {
    "ticker": "tBTC-lightning",
    "activation_params": {
      "name": "KomoDeFi-Docs-Node-1",
      "listening_port": 9735,
      "color": "000000",
      "payment_retries": 5
    }
  },
  "id": 2
}
Show Response

Response Parameters

ParameterTypeDescription
task_idintegerAn identifying number which is used to query task status.

Response

{
    "mmrpc": "2.0",
    "result": {
        "task_id": 1
    },
    "id": null
}
Show Error Responses

L2ConfigIsNotFound Error

Coin is not in coins file. Refer to the coins file configuration for lightning for more information.

{
	"mmrpc": "2.0",
	"error": "Layer 2 tBTC-lightning config is not found",
	"error_path": "init_l2.prelude",
	"error_trace": "init_l2:82] prelude:82]",
	"error_type": "L2ConfigIsNotFound",
	"error_data": "tBTC-lightning",
	"id": 2
}

InvalidRequest Error

A parameter is incorrect.

{
	"mmrpc": "2.0",
	"error": "Error parsing request: invalid type: string "9735", expected u16",
	"error_path": "dispatcher",
	"error_trace": "dispatcher:110]",
	"error_type": "InvalidRequest",
	"error_data": "invalid type: string "9735", expected u16",
	"id": 762
}

UnexpectedL2Protocol Error

Coin is wrong protocol type.

{
	"mmrpc": "2.0",
	"error": "Unexpected layer 2 protocol UTXO for tBTC-segwit",
	"error_path": "init_l2.prelude.lightning_activation",
	"error_trace": "init_l2:82] prelude:93] lightning_activation:92]",
	"error_type": "UnexpectedL2Protocol",
	"error_data": {
		"ticker": "tBTC-segwit",
		"protocol": {
			"type": "UTXO"
		}
	},
	"id": 2
}

Internal Error

Address already in use.

{
    "mmrpc": "2.0",
    "result": {
        "status": "Error",
        "details": {
            "error": "I/O error Address already in use (os error 48)",
            "error_path": "lib.lightning_activation.ln_p2p",
            "error_trace": "lib:103] lightning_activation:280] ln_p2p:196]",
            "error_type": "Internal",
            "error_data": "I/O error Address already in use (os error 48)"
        }
    },
    "id": null
}

PlatformCoinIsNotActivated Error

The selected coin is not activated. It needs to be activated before the lightning node can be initialized.

{
	"mmrpc": "2.0",
	"error": "Platform coin tBTC-lightning is not activated",
	"error_path": "init_l2.lp_coins",
	"error_trace": "init_l2:87] lp_coins:3087]",
	"error_type": "PlatformCoinIsNotActivated",
	"error_data": "tBTC-lightning",
	"id": 2
}

InvalidPlatformConfiguration Error

Coin’s configuration is missing a required parameter. Refer to the coins file configuration for lightning for more information.

{
	"mmrpc": "2.0",
	"error": "Invalid config for platform coin: tBTC-segwit, error: 'avg_blocktime' field is not found in platform coin config",
	"error_path": "init_l2.lightning_activation",
	"error_trace": "init_l2:95] lightning_activation:254]",
	"error_type": "InvalidPlatformConfiguration",
	"error_data": {
		"platform_coin_ticker": "tBTC-segwit",
		"err": "'avg_blocktime' field is not found in platform coin config"
	},
	"id": 2
}

Initialization StatusAPI-v2task::enable_lightning::status

The task::enable_lightning::status request checks the status of lightning node initialization.

Request Parameters

ParameterTypeDescription
task_idintegerThe task id returned from task::enable_lightning::init
forget_if_finishedbooleanOptional, defaults to true. If false, the status of the task_id will still be available after the task has completed.

📌 Example

POST Initialization Status task::enable_lightning::status
{
  "userpass": "RPC_UserP@SSW0RD",
  "mmrpc": "2.0",
  "method": "task::enable_lightning::status",
  "params": {
    "task_id": 1,
    "forget_if_finished": false
  },
  "id": 2
}
Show Response

Response Parameters

ParameterTypeDescription
platform_coinstringThe coin ticker for which the lightning node is being intitialized.
addressstringThis node’s address for the activated coin.
balanceobjectA standard BalanceInfo object.

Response (ready, success)

{
    "mmrpc": "2.0",
    "result": {
        "status": "Ok",
        "details": {
            "platform_coin": "BTC-segwit",
            "address": "0321937a095229510bd2b02a930d7b7eb273147e348ef1086b22e8790e3c609804",
            "balance": {
                "spendable": "0",
                "unspendable": "0"
            }
        }
    },
    "id": null
}

Response (in progress state)

{
    "mmrpc": "2.0",
    "result": {
        "status": "InProgress",
        "details": "ReadingNetworkGraphFromFile"
    },
    "id": null
}

Possible in progress statuses:

  • ActivatingCoin
  • GettingFeesFromRPC
  • ReadingNetworkGraphFromFile
  • InitializingChannelManager
  • InitializingPeerManager
  • ReadingScorerFromFile
  • InitializingBackgroundProcessor
  • ReadingChannelsAddressesFromFile

Cancel InitializationAPI-v2task::enable_lightning::cancel

The task::enable_lightning::cancel request cancels lightning node initialization.

Request Parameters

ParameterTypeDescription
task_idintegerThe task id returned from task::enable_lightning::init

📌 Example

POST Cancel Initialization task::enable_lightning::cancel
{
  "userpass": "RPC_UserP@SSW0RD",
  "mmrpc": "2.0",
  "method": "task::enable_lightning::cancel",
  "params": {
    "task_id": 1
  },
  "id": 1
}
Show Response

Response

{
    "mmrpc": "2.0",
    "result": "success",
    "id": null
}
Show Error Responses

TaskFinished Error

Task has already been completed.

{
    "mmrpc": "2.0",
    "error": "Task is finished already",
    "error_path": "init_l2.manager",
    "error_trace": "init_l2:157] manager:104]",
    "error_type": "TaskFinished",
    "error_data": 3,
    "id": null
}