List of commands for Global Database (GDB) groups management:

Node Command - GLOBAL_DB FLUSH

Downloads internal database state from the disk buffers to the local distributive.  

CLI Example

Command syntax:

global_db flush

Example:

Command:

cellframe-node-cli global_db flush

Response:

command status: Commit data base and filesystem caches to disk completed.

JSON-RPC Example

JSON-RPC Request - GLOBAL_DB FLUSH

Downloads internal database state from the disk buffers to the local distributive.

Request Structure

JSON object:

{
  "method": "global_db",
  "subcommand": ["flush"],
  "id": "1"
}

Parameters:

”null”

Curl Example

Command:

curl --unix-socket /opt/cellframe-node/var/run/node_cli -X POST http://localhost/connect -d '
{
  "method": "global_db",
  "subcommand": ["flush"],
  "id": "1"
}'

Response:

{
"type": 2, 
"result": [ { "command status": "Commit data base and filesystem caches to disk completed.\n\n" } ]
"errors": null,
"id": 1
}
Link to original

Link to original

Node Command - GLOBAL_DB GROUP_LIST

Lists all GDB groups in all active networks.

CLI Example

Command syntax:

global_db group_list

Example:

Command:

cellframe-node-cli global_db group_list

Response:

  group list: 
                dag-foobar-zerochain-round.new: 0
                foobar.chain-main.mempool: 0
                foobar.chain-zerochain.mempool: 13
                foobar.nodes.list: 6
                foobar.nodes.states: 6
                foobar.service.orders: 4
                local.general: 1
                local.ledger-cache.foobar.balances: 0
                local.ledger-cache.foobar.delegate_keys: 0
                local.ledger-cache.foobar.emissions: 0
                local.ledger-cache.foobar.spent_txs: 0
                local.ledger-cache.foobar.stake_lock: 0
                local.ledger-cache.foobar.tokens: 0
                local.ledger-cache.foobar.txs: 0
                local.nodes.heated.0x0000000000abcdef: 5
 
        total count: 15

JSON-RPC Example

JSON-RPC Request - GLOBAL_DB GROUP_LIST

Lists all GDB groups in all active networks.

Request Structure

JSON object:

{
  "method": "global_db",
  "subcommand": ["group_list"],
  "id": "1"
}

Parameters:

”null”

Curl Example

Request:

curl --unix-socket /opt/cellframe-node/var/run/node_cli -X POST http://localhost/connect -d '{
  "method": "global_db",
  "subcommand": ["group_list"],
  "id": "1"
}'

Response:

 
  "type"2,
  "result": [
    {
      "group list": [
        {
          "kelvpn.chain-main.mempool"0
        },
        {
          "kelvpn.chain-zerochain.mempool"0
        },
        {
          "kelvpn.nodes"1
        },
        {
          "kelvpn.nodes.list"94
        },
        {
          "kelvpn.nodes.states"486
        },
        {
          "kelvpn.orders"57
        },
        {
          "kelvpn.orders.stake.approved"42
        },
        {
          "kelvpn.service.orders"319
        },
        {
          "local.general"1
        },
        {
          "local.ledger-cache.Backbone.balances"0
        },
        {
          "local.ledger-cache.Backbone.emissions"0
        },
        {
          "local.ledger-cache.Backbone.spent_txs"0
        },
        {
          "local.ledger-cache.Backbone.stake_lock"0
        },
        {
          "local.ledger-cache.Backbone.tokens"0
        },
        {
          "local.ledger-cache.Backbone.txs"0
        },
        {
          "scorpion.chain-main.mempool"0
        },
        {
          "scorpion.chain-zerochain.mempool"0
        },
        {
          "scorpion.nodes"1
        },
        {
          "scorpion.nodes.list"182
        },
        {
          "scorpion.nodes.states"584
        },
        {
          "scorpion.orders"127
        },
        {
          "scorpion.orders.stake.approved"11
        },
        {
          "scorpion.service.orders"809
        }
      ],
      "total count"23
    }
  ],
  "id"1
}
Link to original

Link to original

Node Command - GLOBAL_DB GET_KEYS

Lists all keys of GDB groups in all active networks. Key can be a word, word combination, number, node address, hash and everything, which can be represented as a string.

CLI Example

Command syntax:

global_db get_keys 
-group <group_name>

Options:

-group - name of the group (list of names can be acquired using GROUP_LIST command)

Example:

Command:

cellframe-node-cli global_db get_keys 
-group foobar.nodes.list

Response:

        group name: foobar.nodes.list
        keys list:
 
                key: 69A4::0747::002F::6C3C
                time: Thu, 26 Sep 2024 04:01:51 +0000
                type: record
                
                key: 004F::C294::1912::CEF6
                time: Thu, 26 Sep 2024 04:01:51 +0000
                type: record
 
                key: 0737::46BB::BD54::9B12
                time: Thu, 26 Sep 2024 04:01:51 +0000
                type: record
 
                key: B671::E83E::ED7E::7FC8
                time: Thu, 26 Sep 2024 04:01:51 +0000
                type: record
 
                key: C5DC::CEC6::16B1::D8C7
                time: Thu, 26 Sep 2024 04:01:52 +0000
                type: record
 
                key: 17CD::9A15::709D::FEDD
                time: Thu, 26 Sep 2024 04:11:03 +0000
                type: record

JSON-RPC Example

JSON-RPC Request - GLOBAL_DB GET_KEYS

Lists all keys of GDB groups in all active networks. Key can be a word, word combination, number, node address, hash and everything, which can be represented as a string.

Request Structure

JSON object:

{
  "method": "global_db",
  "subcommand": ["get_keys"],
  "arguments": {
    "group": "group_name"
  },
  "id": "1"
}

Parameters:

group - name of the group (list of names can be acquired using JSON-RPC Request - GLOBAL_DB GROUP_LIST)

Curl Example

Request:

curl --unix-socket /opt/cellframe-node/var/run/node_cli -X POST http://localhost/connect -d '{
  "method": "global_db",
  "subcommand": ["get_keys"],
  "arguments": {
    "group": "scorpion.orders.stake.approved"
  },
  "id": "1"
}'

Response:

{
  "type": 2,
  "result": [
    {
      "group name": "scorpion.orders.stake.approved",
      "keys list": [
        {
          "key": "0x7B77C2C53F1009589ECB3FA085D78BEF8B48E22B8D1340AC7D03BE404944A2F7",
          "time": "Sun, 03 Nov 2024 16:01:05 +0700",
          "type": "hole"
        },
        {
          "key": "0xB48296FE578211CF3400B26988E3CF1E05C4DDCC7A8B6D3F5F21B40E4F73698A",
          "time": "Sun, 03 Nov 2024 16:01:05 +0700",
          "type": "hole"
        },
        {
          "key": "0x9AD9E9F8E6A6395FB967B0D822733F044B111C431A835C57C9744BE04D57334F",
          "time": "Sun, 03 Nov 2024 16:01:07 +0700",
          "type": "hole"
        },
        {
          "key": "0xA247F0E8F903A8A9B2C7D378F8114A590CD5117DFF8EE7F54AF5C0F48222AA16",
          "time": "Sun, 03 Nov 2024 16:01:10 +0700",
          "type": "record"
        },
        {
          "key": "0xCD9290E0D7AEEA1470F803B919849B2B18C45F41E4C768C612B1280347BF31D9",
          "time": "Sun, 03 Nov 2024 16:02:03 +0700",
          "type": "record"
        },
        {
          "key": "0xA94FB6FBA54C397B3DCCA5178175FD875547DA4656B7E66C637B9CE415DBC4A6",
          "time": "Sun, 03 Nov 2024 16:02:03 +0700",
          "type": "record"
        },
        {
          "key": "0x1BEAAF6AA9443AADEC9BF533CCB5F8F8E9DFC490724E7A129C4407EBCAA1142D",
          "time": "Sun, 03 Nov 2024 16:03:56 +0700",
          "type": "hole"
        },
        {
          "key": "0xBAEF4DD91E947065392A8AA6EB6DC65C9D4E6E166D5A3D6D03A121D8A899F147",
          "time": "Sun, 03 Nov 2024 16:04:04 +0700",
          "type": "hole"
        },
        {
          "key": "0xACB3572854A518646A1F2864535A3701CEF327E2506A6DC24FCF2AEE79167077",
          "time": "Sun, 03 Nov 2024 16:04:04 +0700",
          "type": "hole"
        },
        {
          "key": "0x2D92B42E959822842CF36C5AB183E516FD13081A84D57078B8A8CC8C4010B6F4",
          "time": "Sun, 03 Nov 2024 16:04:04 +0700",
          "type": "hole"
        },
        {
          "key": "0x85A75EF0A3152442ACC314AEA7B9630E010DCC939A494C53755D8F442989531B",
          "time": "Sun, 03 Nov 2024 16:04:04 +0700",
          "type": "hole"
        },
        {
          "key": "0x3398629A248A3D7A3D6E2D04F24E1B22A6D2C92A12A76999F23508E68E2844A6",
          "time": "Sun, 03 Nov 2024 16:04:12 +0700",
          "type": "record"
        },
        {
          "key": "0x9C15B01F0F546EDD11CB40910E6EF5355CC963E61D3F9C88E9E94AC07B841815",
          "time": "Sun, 03 Nov 2024 16:04:12 +0700",
          "type": "record"
        },
        {
          "key": "0xAEC8DBAB28A6AA7850A475AA5AB32E996B80887B2D95CAB47F33B794F6DDEF04",
          "time": "Sun, 03 Nov 2024 16:04:12 +0700",
          "type": "record"
        },
        {
          "key": "0xA72DF6D68CE6514333DF0ECF726AA2B472C47ECAB328BE21844FE32836A4FCD5",
          "time": "Sun, 03 Nov 2024 16:04:12 +0700",
          "type": "record"
        },
        {
          "key": "0x6A09426E5FCB10016B5A1ABA2AC04A9B85BAB57A45CF3DFEDC82CF8163FF8E50",
          "time": "Sun, 03 Nov 2024 16:04:12 +0700",
          "type": "record"
        },
        {
          "key": "0x8FEC13EEF44546783765625EEEB91B08A6CA1A129D4C744908CB4823B0ACC9B9",
          "time": "Thu, 07 Nov 2024 10:55:04 +0700",
          "type": "hole"
        },
        {
          "key": "0xB6A0D1C6DB59060ED0B3A35BA2C5A34C1B2013875D56EE4834093DFBA5609AC2",
          "time": "Thu, 07 Nov 2024 10:55:04 +0700",
          "type": "record"
        },
        {
          "key": "0x57D4BEE929E68A95716BDD4DF65723E495F6CC399D1E92047591C148B2309FC5",
          "time": "Thu, 07 Nov 2024 10:55:04 +0700",
          "type": "record"
        },
        {
          "key": "0x10CCCA59CB8984A441AF41D356B95D4C578C85C47189D8108368B0BCD461080C",
          "time": "Thu, 07 Nov 2024 10:55:04 +0700",
          "type": "record"
        }
      ]
    }
  ],
  "id": 1
}
Link to original

Link to original

Node Command - GLOBAL_DB WRITE

Writes specified value to the GDB group.

CLI Example

Command syntax:

global_db write 
-group <group_name> 
-key <key_name> 
-value <value>

Options:

-group - name of the group (list of names can be acquired using GROUP_LIST command)
-key - key for access the group (list of keys can be acquired using GET_KEYS command)
-value - any value which you want to write in the specified GDB group ("It can be any data that can be represented as a string in quotes")

Example:

Command:

cellframe-node-cli global_db write 
-group local.personal 
-key mykey 
-value myvalue

Response:

        group name: foobar.nodes.list
        keys list:
 
                key: 69A4::0747::002F::6C3C
                time: Thu, 26 Sep 2024 04:01:51 +0000
                type: record
                
                key: 004F::C294::1912::CEF6
                time: Thu, 26 Sep 2024 04:01:51 +0000
                type: record
 
                key: 0737::46BB::BD54::9B12
                time: Thu, 26 Sep 2024 04:01:51 +0000
                type: record
 
                key: B671::E83E::ED7E::7FC8
                time: Thu, 26 Sep 2024 04:01:51 +0000
                type: record
 
                key: C5DC::CEC6::16B1::D8C7
                time: Thu, 26 Sep 2024 04:01:52 +0000
                type: record
 
                key: 17CD::9A15::709D::FEDD
                time: Thu, 26 Sep 2024 04:11:03 +0000
                type: record

JSON-RPC Example

JSON-RPC Request - GLOBAL_DB WRITE

Writes specified value to the GDB group.

Request Structure

JSON object:

{
  "method": "global_db",
  "subcommand": ["write"],
  "arguments": {
    "group": "group_name",
    "key": "key_name",
    "value": "value"
  },
  "id": "1"
}

Parameters:

group - name of the group (list of names can be acquired using JSON-RPC Request - GLOBAL_DB GROUP_LIST) key - key for access the group (list of keys can be acquired using JSON-RPC Request - GLOBAL_DB GET_KEYS) value - any value which you want to write in the specified GDB group (“It can be any data that can be represented as a string in quotes”)

Curl Example

Request:

curl --unix-socket /opt/cellframe-node/var/run/node_cli -X POST http://localhost/connect -d '{
  "method": "global_db",
  "subcommand": ["write"],
  "arguments": {
    "group": "local.general",
    "key": "gdb_version",
    "value": "string in quotes"
  },
  "id": "1"
}'

Response:

{
  "type": 2,
  "result": [
    {
      "write status": "Data has been successfully written to the database"
    }
  ],
  "id": 1
}
Link to original

Link to original

Node Command - GLOBAL_DB READ

Reads information about specified GDB group using key.  

CLI Example

Command syntax:

global_db read 
-group <group_name> 
-key <key_name>

Options:

-group - name of the group (list of names can be acquired using GROUP_LIST command)
-key - key for access the group (list of keys can be acquired using GET_KEYS command)

Command:

cellframe-node-cli global_db read 
-group foobar.nodes.list 
-key 17CD::9A15::709D::FEDD

Response:

        group: foobar.nodes.list
 
        key: 17CD::9A15::709D::FEDD
        time: Thu, 26 Sep 2024 04:11:03 +0000
        value len: 95
 
        value hex:   +0000:  dd fe 9d 70 15 9a cd 17 00 00 00 00 00 00 00 00   ...p............  
 
  +0010:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................  
 
  +0020:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................  
 
  +0030:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................  
 
  +0040:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................  
 
  +0050:  50 00 0b 31 37 32 2e 32 38 2e 30 2e 33 30 00      P..172.28.0.30.

JSON-RPC Example

JSON-RPC Request - GLOBAL_DB READ

Reads information about specified GDB group using key.

Request Structure

JSON object:

{
  "method": "global_db",
  "subcommand": ["read"],
  "arguments": {
    "group": "group_name",
    "key": "key_name"
  },
  "id": "1"
}

Parameters:

group - name of the group (list of names can be acquired using JSON-RPC Request - GLOBAL_DB GROUP_LIST) key - key for access the group (list of keys can be acquired using JSON-RPC Request - GLOBAL_DB GET_KEYS)

Curl Example

Request:

curl --unix-socket /opt/cellframe-node/var/run/node_cli -X POST http://localhost/connect -d '{
  "method": "global_db",
  "subcommand": ["read"],
  "arguments": {
    "group": "local.general",
    "key": "gdb_version"
  },
  "id": "1"
}'

Response:

{
  "type": 2,
  "result": [
    {
      "group": "local.general",
      "key": "gdb_version",
      "time": "Mon, 21 Apr 2025 16:41:22 +0700",
      "value len": 17,
      "value hex": "\n  +0000:  73 74 72 69 6E 67 20 69 6E 20 71 75 6F 74 65 73   string in quotes   \n  +0010:  00                                                .                  \n"
    }
  ],
  "id": 1
}
Link to original

Link to original

Node Command - GLOBAL_DB DELETE

Removes information from the group via the specified key. For example, it can be node address or order hash.

CLI Example

Command syntax:

global_db delete 
-group <group_name> 
-key <key_name>

Options:

-group - name of the group (list of names can be acquired using GROUP_LIST command)
-key - key for access the group (list of keys can be acquired using GET_KEYS command)

Command:

cellframe-node-cli global_db delete 
-group local.personal 
-key mykey

Response:

        Record key: mykey
        Group name: local.personal
        status: deleted

JSON-RPC Example

JSON-RPC Request - GLOBAL_DB DELETE

Removes information from the group via the specified key. For example, it can be node address or order hash.

Request Structure

JSON object:

{
  "method": "global_db",
  "subcommand": ["delete"],
  "arguments": {
    "group": "group_name",
    "key": "key_name"
  },
  "id": "1"
}

Parameters:

group - name of the group (list of names can be acquired using JSON-RPC Request - GLOBAL_DB GROUP_LIST) key - key for access the group (list of keys can be acquired using JSON-RPC Request - GLOBAL_DB GET_KEYS)

Curl Example #1 (fail)

Request:

curl --unix-socket /opt/cellframe-node/var/run/node_cli -X POST http://localhost/connect -d '
{
  "method": "global_db",
  "subcommand": ["delete"],
  "arguments": {
    "group": "scorpion.orders.stake.approved",
    "key": "0xA247F0E8F903A8A9B2C7D378F8114A590CD5117DFF8EE7F54AF5C0F48222AA16"
  },
  "id": "1"
}'

Response:

The deletion was failed because of lack of permissions.

{
  "type": 2,
  "result": [
    {
      "errors": [
        {
          "code": 14,
          "message": "Record with key scorpion.orders.stake.approved in group 0xA247F0E8F903A8A9B2C7D378F8114A590CD5117DFF8EE7F54AF5C0F48222AA16 deleting failed"
        }
      ]
    }
  ],
  "id": 1
}

Curl Example #2 (success)

Request:

curl --unix-socket /opt/cellframe-node/var/run/node_cli -X POST http://localhost/connect -d '
{
  "method": "global_db",
  "subcommand": ["delete"],
  "arguments": {
    "group": "local.personal",
    "key": "mykey2"
  },
  "id": "1"
}'

Response:

{
  "type": 2,
  "result": [
    {
      "Record key": "mykey2",
      "Group name": "local.personal",
      "status": "deleted"
    }
  ],
  "errors": null,
  "id": 1
}
Link to original

Link to original

Node Command - GLOBAL_DB DROP_TABLE

Removes a whole table using the group name.  

CLI Example

Command syntax:

global_db drop_table 
-group <group_name>

Options:

-group - name of the group (list of names can be acquired using GROUP_LIST command)

Command:

cellframe-node-cli global_db drop_table 
-group local.personal

Response:

  Dropped table: local.personal

JSON-RPC Example

JSON-RPC Request - GLOBAL_DB DROP_TABLE

Removes a whole table using the group name.

Request Structure

JSON object:

{
  "method": "global_db",
  "subcommand": ["drop_table"],
  "arguments": {
    "group": "group_name"
  },
  "id": "1"
}

Parameters:

group - name of the group (list of names can be acquired using JSON-RPC Request - GLOBAL_DB GROUP_LIST)

Curl Example

Request:

curl --unix-socket /opt/cellframe-node/var/run/node_cli -X POST http://localhost/connect -d '{
  "method": "global_db",
  "subcommand": ["drop_table"],
  "arguments": {
    "group": "local.ledger-cache.Backbone.txs"
  },
  "id": "1"
}'

Response:

{
  "type": 2,
  "result": [
    {
      "Dropped table": "local.ledger-cache.Backbone.txs"
    }
  ],
  "id": 1
}
Link to original

Link to original