diff --git a/dap_chain_node_cli.c b/dap_chain_node_cli.c index 600387ed652610ebb1f85127d8eab4739bd7f71b..96f456eebde5ce5219d11c6657abdc9190128480 100755 --- a/dap_chain_node_cli.c +++ b/dap_chain_node_cli.c @@ -66,9 +66,15 @@ static const COMMAND commands[] = "global_db node add -addr {<node address> | -alias <node alias>} -shard <shard id> {-ipv4 <ipv4 external address> | -ipv6 <ipv6 external address>}\n" "global_db node del -addr <node address> | -alias <node alias>\n" "global_db node link {add|del} {-addr <node address> | -alias <node alias>} -link <node address>\n" - "global_db node dump -addr <node address> | -alias <node alias>" }, + "global_db node dump\n" + "global_db node dump -addr <node address> | -alias <node alias>\n" + "global_db node get\n" + "global_db node set -addr <node address> | -alias <node alias>\n" + "global_db node remote_set -addr <node address> | -alias <node alias>" + }, { "node", com_node, "Work with node", "node alias {<node address> | -alias <node alias>}\n" + "node connect {<node address> | -alias <node alias>}\n" "node handshake {<node address> | -alias <node alias>}" }, { "ping", com_ping, "Send ICMP ECHO_REQUEST to network hosts", "ping [-c <count>] host" }, diff --git a/dap_chain_node_cli_cmd.c b/dap_chain_node_cli_cmd.c index cd75919f2acc6b24adf3a23fd29d728f09bcca2f..eec05b5cb21a556261520e748601c30ecf10cc6b 100755 --- a/dap_chain_node_cli_cmd.c +++ b/dap_chain_node_cli_cmd.c @@ -717,7 +717,7 @@ static int com_global_db_set_remote(dap_chain_node_info_t *a_node_info, const ch return -1; } // wait connected - int timeout_ms = 150000; //15 sec = 15000 ms + int timeout_ms = 15000; //15 sec = 15000 ms int res = chain_node_client_wait(client, NODE_CLIENT_STATE_CONNECTED, timeout_ms); if(res != 1) { set_reply_text(a_str_reply, "no response from node"); @@ -739,7 +739,7 @@ static int com_global_db_set_remote(dap_chain_node_info_t *a_node_info, const ch } // wait for finishing of request - timeout_ms = 9120000; // 2 min = 120 sec = 120 000 ms + timeout_ms = 120000; // 2 min = 120 sec = 120 000 ms res = chain_node_client_wait(client, NODE_CLIENT_STATE_GET_NODE_ADDR, timeout_ms); DAP_DELETE(l_node_info); dap_client_disconnect(client->client); @@ -979,30 +979,6 @@ int com_node(int argc, const char ** argv, char **str_reply) return -1; } - /*// debug - //if(0) - { - #include "dap_chain_global_db.h" - size_t l_data_size_out = 0; - dap_global_db_obj_t a_objs[2]; - a_objs[0].key = "k1"; - a_objs[1].key = "k2"; - a_objs[0].value = "v1"; - a_objs[0].value_len = strlen(a_objs[0].value); - a_objs[1].value = "v2"; - a_objs[1].value_len = strlen(a_objs[1].value); - dap_chain_global_db_save(a_objs, 2); //dap_chain_global_db_save - char *l_diff = dap_db_log_get_diff(NULL); - DAP_DELETE(l_diff); - dap_global_db_obj_t **db1 = dap_chain_global_db_gr_load(GROUP_DATUM, &l_data_size_out); - printf("GROUP_DATUM size = %d\n", l_data_size_out); - dap_global_db_obj_t **db2 = dap_chain_global_db_gr_load(GROUP_ALIAS, &l_data_size_out); - printf("GROUP_ALIAS size = %d\n", l_data_size_out); - dap_global_db_obj_t **db3 = dap_chain_global_db_gr_load(GROUP_NODE, &l_data_size_out); - printf("GROUP_NODE size = %d\n", l_data_size_out); - //set_reply_text(str_reply, "debug ok"); - //return 0; - }*/ dap_chain_node_info_t *node_info = dap_chain_node_info_read(&address, str_reply); if(!node_info) { return -1; @@ -1015,7 +991,7 @@ int com_node(int argc, const char ** argv, char **str_reply) return -1; } // wait connected - int timeout_ms = 150000; //15 sec = 15000 ms + int timeout_ms = 15000; //15 sec = 15000 ms int res = chain_node_client_wait(client, NODE_CLIENT_STATE_CONNECTED, timeout_ms); if(res != 1) { set_reply_text(str_reply, "no response from node"); @@ -1046,7 +1022,7 @@ int com_node(int argc, const char ** argv, char **str_reply) } // wait for finishing of request - timeout_ms = 9120000; // 2 min = 120 sec = 120 000 ms + timeout_ms = 120000; // 2 min = 120 sec = 120 000 ms // TODO add progress info to console res = chain_node_client_wait(client, NODE_CLIENT_STATE_END, timeout_ms); DAP_DELETE(node_info); @@ -1602,186 +1578,6 @@ int com_tx_create(int argc, const char ** argv, char **str_reply) return 0; } -/** - * com_tx_create command - * - * Signing transaction - */ -int com_tx_create0(int argc, const char ** argv, char **str_reply) -{ - // create wallet - const char *a_wallets_path = "/opt/kelvin-node/etc"; - const char *a_wallet_name_bliss = "w_bliss"; - const char *a_wallet_name_bliss2 = "w_bliss2"; - const char *a_wallet_name_picnic = "w_picnic"; - const char *a_wallet_name_tesla = "w_tesla"; - - dap_chain_net_id_t a_net_id = { 0x1 }; - dap_chain_sign_type_t a_sig_type = { SIG_TYPE_TESLA }; - //dap_chain_sign_type_t a_sig_type = { SIG_TYPE_PICNIC }; - //dap_chain_sign_type_t a_sig_type = { SIG_TYPE_BLISS }; - const char * a_wallet_name = a_wallet_name_tesla; - dap_chain_wallet_t *wallet0 = dap_chain_wallet_create(a_wallet_name, a_wallets_path, a_net_id, a_sig_type); - - dap_chain_wallet_t *wallet_bliss = dap_chain_wallet_open(a_wallet_name_bliss, a_wallets_path); - dap_chain_wallet_t *wallet_bliss2 = dap_chain_wallet_open(a_wallet_name_bliss2, a_wallets_path); - dap_chain_wallet_t *wallet_picnic = dap_chain_wallet_open(a_wallet_name_picnic, a_wallets_path); - dap_chain_wallet_t *wallet_tesla = dap_chain_wallet_open(a_wallet_name_tesla, a_wallets_path); - dap_enc_key_t *l_key_bliss = dap_chain_wallet_get_key(wallet_bliss, 0); - dap_enc_key_t *l_key_bliss2 = dap_chain_wallet_get_key(wallet_bliss2, 0); - dap_enc_key_t *l_key_picnic = dap_chain_wallet_get_key(wallet_picnic, 0); - dap_enc_key_t *l_key_tesla = dap_chain_wallet_get_key(wallet_tesla, 0); - /*/ debug - test check signing - { - - - int a_data_size = 50; - char *a_data = "DAP (Deus Applicaions Prototypes) is free software: you can redistribute it and/or modify"; - - dap_enc_key_t *l_key0 = dap_enc_key_new_generate(DAP_ENC_KEY_TYPE_SIG_BLISS, NULL, 0, NULL, 0, 0); - dap_enc_key_t *l_key1 = dap_enc_key_new_generate(DAP_ENC_KEY_TYPE_SIG_TESLA, NULL, 0, NULL, 0, 0); - dap_enc_key_t *l_key2 = dap_enc_key_new_generate(DAP_ENC_KEY_TYPE_SIG_PICNIC, NULL, 0, NULL, 0, 0); - dap_enc_key_t *l_key = dap_chain_wallet_get_key(wallet, 0); - - size_t l_buflen_out; - char *l_data; - l_data = dap_enc_key_serealize_pub_key(l_key0, &l_buflen_out); - dap_enc_key_deserealize_pub_key(l_key0, l_data, l_buflen_out); - l_data = dap_enc_key_serealize_pub_key(l_key1, &l_buflen_out); - dap_enc_key_deserealize_pub_key(l_key1, l_data, l_buflen_out); - l_data = dap_enc_key_serealize_pub_key(l_key2, &l_buflen_out); - dap_enc_key_deserealize_pub_key(l_key2, l_data, l_buflen_out); - l_data = dap_enc_key_serealize_pub_key(l_key, &l_buflen_out); - dap_enc_key_deserealize_pub_key(l_key, l_data, l_buflen_out); - - dap_chain_sign_t *l_chain_sign; - l_chain_sign = dap_chain_sign_create(l_key0, a_data, a_data_size, 0); - int l_size0 = dap_chain_sign_get_size(l_chain_sign); - int l_verify0 = dap_chain_sign_verify(l_chain_sign, a_data, a_data_size); - DAP_DELETE(l_chain_sign); - l_chain_sign = dap_chain_sign_create(l_key1, a_data, a_data_size, 0); - int l_size1 = dap_chain_sign_get_size(l_chain_sign); - int l_verify1 = dap_chain_sign_verify(l_chain_sign, a_data, a_data_size); - DAP_DELETE(l_chain_sign); - l_chain_sign = dap_chain_sign_create(l_key2, a_data, a_data_size, 0); - int l_size2 = dap_chain_sign_get_size(l_chain_sign); - int l_verify2 = dap_chain_sign_verify(l_chain_sign, a_data, a_data_size); - DAP_DELETE(l_chain_sign); - l_chain_sign = dap_chain_sign_create(l_key, a_data, a_data_size, 0); - int l_size = dap_chain_sign_get_size(l_chain_sign); - int l_verify = dap_chain_sign_verify(l_chain_sign, a_data, a_data_size); - DAP_DELETE(l_chain_sign); - printf("verify=%d/%d %d/%d %d/%d %d/%d\n", l_size0, l_verify0, l_size1, l_verify1, l_size2, l_verify2, l_size, - l_verify); - - dap_enc_key_delete(l_key0); - dap_enc_key_delete(l_key1); - dap_enc_key_delete(l_key2); - }*/ - - static bool l_first_start = true; - if(l_first_start) - { - const char *l_token_name = "KLVN"; - dap_enc_key_t *l_key = dap_chain_wallet_get_key(wallet_bliss, 0); - const dap_chain_addr_t *l_addr = dap_chain_wallet_get_addr(wallet_bliss); - dap_chain_node_datum_tx_cache_init(l_key, l_token_name, (dap_chain_addr_t*) l_addr, 1000); - l_first_start = false; - } - int res; - // transfer from 1st transaction to addr_w_bliss - /* dap_chain_datum_tx_t *l_tx = dap_chain_datum_tx_create(); - dap_chain_hash_fast_t l_tx_prev_hash = { 0 }; - uint32_t l_tx_out_prev_idx = 0; - dap_chain_tx_in_t *l_tx_item_in = dap_chain_datum_tx_item_in_create(&l_tx_prev_hash, l_tx_out_prev_idx); - res = dap_chain_datum_tx_add_item(&l_tx, (const uint8_t *) l_tx_item_in); - res = dap_chain_datum_tx_add_sign_item(&l_tx, l_key); - res = dap_chain_node_datum_tx_cache_add(l_tx); - DAP_DELETE(l_tx);*/ - - char *addr_w_bliss = - "EXh66KVCxChbKHQcTWKYJXhua6HVZecpxuTTmWGuqm1V4vy5mVq52wD8rMQvfUnmJHsL4MuoJ7YVSFqn2RrdoN19mqHP1aQXSQPnXDR6oP9vsBPwYC9PhSvAxFystX"; - char *addr_w_bliss2 = - "EXh66KVCxChbKHQcTeGf8TT7KhcCiiQ9TrPn6rcbNoNKuhAyJ4T9zr5yMfMCXGLVHmxVKZ6J4E9Zc7pNmAa4yrKNb3DkS34jxD6Q4MCXbHJMAPFEVtMoDdFMtCysE2"; - char *addr_w_picnic = - "EXh66KVCxChbKJLxZbyNJLxfF8CfGZmdenQWuqtr8MnXavhJaLo6vckjpYgpcevBo3zB65sAGQJT3ctYVwQnASc6sYyaawFHnacsrcP47PB4XfLYiEDZvwog4AVdbC"; - - dap_chain_addr_t *addr_1 = (dap_chain_addr_t *) dap_chain_wallet_get_addr(wallet_bliss); - dap_chain_addr_t *addr_2 = dap_chain_str_to_addr(addr_w_bliss2); - dap_chain_addr_t *addr_3 = dap_chain_str_to_addr(addr_w_picnic); - - //char *addr_str = dap_chain_addr_to_str((dap_chain_addr_t*) addr_from); - //const dap_chain_addr_t *addr2 = dap_chain_str_to_addr(addr_str); - //char *addr_str2 = dap_chain_addr_to_str(addr2); - //int a = strcmp(addr_str,addr_str2); - - uint64_t balance1 = dap_chain_datum_tx_cache_calc_balance(addr_1); - uint64_t balance2 = dap_chain_datum_tx_cache_calc_balance(addr_2); - uint64_t balance3 = dap_chain_datum_tx_cache_calc_balance(addr_3); - printf("transactions in cache=%d balance %lld %lld %lld\n", dap_chain_node_datum_tx_cache_count(), - balance1, balance2, balance3); - - res = dap_chain_datum_tx_ctrl_create_transfer(l_key_bliss, addr_1, addr_2, addr_3, 100, 2); - printf("transfer=%d\n", res); - balance1 = dap_chain_datum_tx_cache_calc_balance(addr_1); - balance2 = dap_chain_datum_tx_cache_calc_balance(addr_2); - balance3 = dap_chain_datum_tx_cache_calc_balance(addr_3); - printf("transactions in cache=%d balance %lld %lld %lld\n", dap_chain_node_datum_tx_cache_count(), - balance1, balance2, balance3); - - res = dap_chain_datum_tx_ctrl_create_transfer(l_key_bliss2, addr_2, addr_3, addr_3, 200, 2); - printf("transfer=%d\n", res); - balance1 = dap_chain_datum_tx_cache_calc_balance(addr_1); - balance2 = dap_chain_datum_tx_cache_calc_balance(addr_2); - balance3 = dap_chain_datum_tx_cache_calc_balance(addr_3); - printf("transactions in cache=%d balance %lld %lld %lld\n", dap_chain_node_datum_tx_cache_count(), - balance1, balance2, balance3); - - dap_chain_wallet_close(wallet_bliss); - dap_chain_wallet_close(wallet_bliss2); - dap_chain_wallet_close(wallet_picnic); - dap_chain_wallet_close(wallet_tesla); - set_reply_text(str_reply, "com_tx_create ok"); - return 0; - - /*/dap_chain_datum_tx_vefify(l_tx); - - char *addr_w_tesla = "ad8VdHszE1zxS2SDFsvTsmQVBh1G7exkvPy6DiUtjzpgiGY82iMaWeP83K6Euh9fih2G3WN1E6SpfWdCfxA7yjyTu3yrw"; - char *addr_w_picnic = - "ad8VdHszE1zx5WVKbKugtuBAimU3QT5FCnWMKKaYpMmeRwTwTNULiM7eyYiBskEG9LSN5NCp5roadQtCXe4caJqKPcWiB"; - char *addr_w_bliss = "ad8VdHszE1zx5UAFyPFYryPdMiXPMeQDL5gy6jUztE6NJsTN4idtU4xtKHkknXBYfoXQUJDUYHkL5B2QDgyisdQ715hnF"; - const dap_chain_addr_t *addr = dap_chain_wallet_get_addr(wallet); - - - dap_chain_datum_tx_t *l_tx_tmp = dap_chain_node_datum_tx_cache_find_by_pkey(l_key->pub_key_data, - l_key->pub_key_data_size, NULL); - - char *addr_str = dap_chain_addr_to_str((dap_chain_addr_t*) addr); - const dap_chain_addr_t *addr2 = dap_chain_str_to_addr(addr_str); - char *addr_str2 = dap_chain_addr_to_str(addr2); - free(addr_str); - free(addr_str2); - - if(wallet) { - if(dap_chain_wallet_get_certs_number(wallet) > 0) { - dap_chain_pkey_t *pk0 = dap_chain_wallet_get_pkey(wallet, 0); - dap_enc_key_t *a_key = dap_chain_wallet_get_key(wallet, 0); - //dap_enc_key_t *a_key1 = dap_chain_wallet_get_key(wallet, 0); - //dap_enc_key_t *a_key2 = dap_chain_wallet_get_key(wallet2, 0); - - int res = dap_chain_datum_tx_add_item(&l_tx, l_tx_item_in); - int res1 = dap_chain_datum_tx_add_sign(&l_tx, a_key); - int res2 = dap_chain_datum_tx_add_sign(&l_tx, a_key); - int res3 = dap_chain_datum_tx_verify_sign(l_tx); - res3 = 0; - } - dap_chain_wallet_close(wallet); - DAP_DELETE(l_tx); - } - set_reply_text(str_reply, "com_tx_create ok"); - return 0;*/ -} - /** * tx_verify command *