Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
L
libdap-chain-net
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
cellframe
libdap-chain-net
Commits
40151fee
Commit
40151fee
authored
5 years ago
by
dmitriy.gerasimov
Browse files
Options
Downloads
Patches
Plain Diff
[*] Lot of fixes
parent
c17bb440
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
dap_chain_net.c
+27
-2
27 additions, 2 deletions
dap_chain_net.c
dap_chain_node_cli_cmd.c
+8
-14
8 additions, 14 deletions
dap_chain_node_cli_cmd.c
with
35 additions
and
16 deletions
dap_chain_net.c
+
27
−
2
View file @
40151fee
...
@@ -120,7 +120,9 @@ static int s_net_states_proc(dap_chain_net_t * l_net);
...
@@ -120,7 +120,9 @@ static int s_net_states_proc(dap_chain_net_t * l_net);
static
void
*
s_net_proc_thread
(
void
*
a_net
);
static
void
*
s_net_proc_thread
(
void
*
a_net
);
static
void
s_net_proc_thread_start
(
dap_chain_net_t
*
a_net
);
static
void
s_net_proc_thread_start
(
dap_chain_net_t
*
a_net
);
static
void
s_net_proc_kill
(
dap_chain_net_t
*
a_net
);
static
void
s_net_proc_kill
(
dap_chain_net_t
*
a_net
);
static
void
s_gbd_history_callback_notify
(
void
*
a_arg
,
const
char
a_op_code
,
const
char
*
a_prefix
,
const
char
*
a_group
,
const
char
*
a_key
,
const
void
*
a_value
,
const
size_t
a_value_len
);
static
int
s_cli_net
(
int
argc
,
const
char
**
argv
,
char
**
str_reply
);
static
int
s_cli_net
(
int
argc
,
const
char
**
argv
,
char
**
str_reply
);
static
bool
s_seed_mode
=
false
;
static
bool
s_seed_mode
=
false
;
...
@@ -151,6 +153,25 @@ int dap_chain_net_state_go_to(dap_chain_net_t * a_net, dap_chain_net_state_t a_n
...
@@ -151,6 +153,25 @@ int dap_chain_net_state_go_to(dap_chain_net_t * a_net, dap_chain_net_state_t a_n
return
0
;
return
0
;
}
}
/**
* @brief s_gbd_history_callback_notify
* @param a_op_code
* @param a_prefix
* @param a_group
* @param a_key
* @param a_value
* @param a_value_len
*/
static
void
s_gbd_history_callback_notify
(
void
*
a_arg
,
const
char
a_op_code
,
const
char
*
a_prefix
,
const
char
*
a_group
,
const
char
*
a_key
,
const
void
*
a_value
,
const
size_t
a_value_len
)
{
if
(
a_arg
)
{
dap_chain_net_t
*
l_net
=
(
dap_chain_net_t
*
)
a_arg
;
dap_chain_net_sync_all
(
l_net
);
}
}
/**
/**
* @brief s_net_states_proc
* @brief s_net_states_proc
...
@@ -582,6 +603,7 @@ int dap_chain_net_init()
...
@@ -582,6 +603,7 @@ int dap_chain_net_init()
"
\t
List,add,del, dump or establish links
\n\n
"
"
\t
List,add,del, dump or establish links
\n\n
"
);
);
s_seed_mode
=
dap_config_get_item_bool_default
(
g_config
,
"general"
,
"seed_mode"
,
false
);
s_seed_mode
=
dap_config_get_item_bool_default
(
g_config
,
"general"
,
"seed_mode"
,
false
);
return
0
;
return
0
;
}
}
...
@@ -704,6 +726,8 @@ int dap_chain_net_load(const char * a_net_name)
...
@@ -704,6 +726,8 @@ int dap_chain_net_load(const char * a_net_name)
}
}
l_net
->
pub
.
gdb_groups_prefix
=
dap_strdup
(
l_net
->
pub
.
gdb_groups_prefix
=
dap_strdup
(
dap_config_get_item_str_default
(
l_cfg
,
"general"
,
"gdb_groups_prefix"
,
""
)
);
dap_config_get_item_str_default
(
l_cfg
,
"general"
,
"gdb_groups_prefix"
,
""
)
);
dap_chain_global_db_add_history_group_prefix
(
l_net
->
pub
.
gdb_groups_prefix
);
dap_chain_global_db_add_history_callback_notify
(
l_net
->
pub
.
gdb_groups_prefix
,
s_gbd_history_callback_notify
,
l_net
);
// Add network to the list
// Add network to the list
...
@@ -775,6 +799,7 @@ int dap_chain_net_load(const char * a_net_name)
...
@@ -775,6 +799,7 @@ int dap_chain_net_load(const char * a_net_name)
}
}
// Init chains
// Init chains
size_t
l_chains_path_size
=
strlen
(
dap_config_path
())
+
1
+
strlen
(
l_net
->
pub
.
name
)
+
1
+
strlen
(
"network"
)
+
1
;
size_t
l_chains_path_size
=
strlen
(
dap_config_path
())
+
1
+
strlen
(
l_net
->
pub
.
name
)
+
1
+
strlen
(
"network"
)
+
1
;
char
*
l_chains_path
=
DAP_NEW_Z_SIZE
(
char
,
l_chains_path_size
);
char
*
l_chains_path
=
DAP_NEW_Z_SIZE
(
char
,
l_chains_path_size
);
...
@@ -796,7 +821,7 @@ int dap_chain_net_load(const char * a_net_name)
...
@@ -796,7 +821,7 @@ int dap_chain_net_load(const char * a_net_name)
//dap_config_open(l_chains_path);
//dap_config_open(l_chains_path);
// Create chain object
// Create chain object
dap_chain_t
*
l_chain
=
dap_chain_load_from_cfg
(
l_net
->
pub
.
name
,
l_net
->
pub
.
id
,
l_chains_path
);
dap_chain_t
*
l_chain
=
dap_chain_load_from_cfg
(
l_net
->
pub
.
ledger
,
l_net
->
pub
.
name
,
l_net
->
pub
.
id
,
l_chains_path
);
if
(
l_chain
){
if
(
l_chain
){
DL_APPEND
(
l_net
->
pub
.
chains
,
l_chain
);
DL_APPEND
(
l_net
->
pub
.
chains
,
l_chain
);
if
(
l_chain
->
callback_created
)
if
(
l_chain
->
callback_created
)
...
...
This diff is collapsed.
Click to expand it.
dap_chain_node_cli_cmd.c
+
8
−
14
View file @
40151fee
...
@@ -1913,7 +1913,7 @@ int com_token_decl(int argc, const char ** argv, char ** str_reply)
...
@@ -1913,7 +1913,7 @@ int com_token_decl(int argc, const char ** argv, char ** str_reply)
}
}
// Load certs lists
// Load certs lists
size_t
l_
signs_size
=
dap_chain_cert_parse_str_list
(
l_certs_str
,
&
l_certs
,
&
l_certs_size
);
size_t
l_
certs_count
=
dap_chain_cert_parse_str_list
(
l_certs_str
,
&
l_certs
,
&
l_certs_size
);
if
(
!
l_certs_size
)
{
if
(
!
l_certs_size
)
{
dap_chain_node_cli_set_reply_text
(
str_reply
,
dap_chain_node_cli_set_reply_text
(
str_reply
,
"token_create command requres at least one valid certificate to sign the basic transaction of emission"
);
"token_create command requres at least one valid certificate to sign the basic transaction of emission"
);
...
@@ -1925,8 +1925,7 @@ int com_token_decl(int argc, const char ** argv, char ** str_reply)
...
@@ -1925,8 +1925,7 @@ int com_token_decl(int argc, const char ** argv, char ** str_reply)
l_certs_size
=
l_signs_total
;
l_certs_size
=
l_signs_total
;
// Create new datum token
// Create new datum token
dap_chain_datum_token_t
*
l_datum_token
=
DAP_NEW_Z_SIZE
(
dap_chain_datum_token_t
,
sizeof
(
l_datum_token
->
header
)
+
dap_chain_datum_token_t
*
l_datum_token
=
DAP_NEW_Z_SIZE
(
dap_chain_datum_token_t
,
sizeof
(
l_datum_token
->
header
));
l_signs_size
);
l_datum_token
->
header
.
version
=
1
;
// Current version
l_datum_token
->
header
.
version
=
1
;
// Current version
snprintf
(
l_datum_token
->
header
.
ticker
,
sizeof
(
l_datum_token
->
header
.
ticker
),
"%s"
,
l_ticker
);
snprintf
(
l_datum_token
->
header
.
ticker
,
sizeof
(
l_datum_token
->
header
.
ticker
),
"%s"
,
l_ticker
);
l_datum_token
->
header
.
total_supply
=
l_total_supply
;
l_datum_token
->
header
.
total_supply
=
l_total_supply
;
...
@@ -1942,11 +1941,13 @@ int com_token_decl(int argc, const char ** argv, char ** str_reply)
...
@@ -1942,11 +1941,13 @@ int com_token_decl(int argc, const char ** argv, char ** str_reply)
sizeof
(
l_datum_token
->
header
),
sizeof
(
l_datum_token
->
header
),
0
);
0
);
size_t
l_sign_size
=
dap_chain_sign_get_size
(
l_sign
);
size_t
l_sign_size
=
dap_chain_sign_get_size
(
l_sign
);
l_datum_token
=
DAP_REALLOC
(
l_datum_token
,
sizeof
(
l_datum_token
->
header
)
+
l_signs_offset
+
l_sign_size
);
memcpy
(
l_datum_token
->
signs
+
l_signs_offset
,
l_sign
,
l_sign_size
);
memcpy
(
l_datum_token
->
signs
+
l_signs_offset
,
l_sign
,
l_sign_size
);
l_signs_offset
+=
l_sign_size
;
DAP_DELETE
(
l_sign
);
DAP_DELETE
(
l_sign
);
}
}
dap_chain_datum_t
*
l_datum
=
dap_chain_datum_create
(
DAP_CHAIN_DATUM_TOKEN_DECL
,
l_datum_token
,
dap_chain_datum_t
*
l_datum
=
dap_chain_datum_create
(
DAP_CHAIN_DATUM_TOKEN_DECL
,
l_datum_token
,
sizeof
(
l_datum_token
->
header
)
+
l_signs_
size
);
sizeof
(
l_datum_token
->
header
)
+
l_signs_
offset
);
size_t
l_datum_size
=
dap_chain_datum_size
(
l_datum
);
size_t
l_datum_size
=
dap_chain_datum_size
(
l_datum
);
// Calc datum's hash
// Calc datum's hash
...
@@ -2106,19 +2107,10 @@ int com_token_emit(int argc, const char ** argv, char ** str_reply)
...
@@ -2106,19 +2107,10 @@ int com_token_emit(int argc, const char ** argv, char ** str_reply)
char
*
l_gdb_group_mempool_base_tx
=
dap_chain_net_get_gdb_group_mempool
(
l_chain_base_tx
);
char
*
l_gdb_group_mempool_base_tx
=
dap_chain_net_get_gdb_group_mempool
(
l_chain_base_tx
);
// Create emission datum
// Create emission datum
// First calc summary sign size
size_t
l_token_emission_signs_size
=
0
;
for
(
size_t
i
=
0
;
i
<
l_certs_size
;
i
++
)
{
// TODO Here must be added serialized size!
l_token_emission_signs_size
+=
dap_chain_cert_sign_output_size
(
l_certs
[
i
],
0
);
}
// then create datum in memory
// then create datum in memory
dap_chain_datum_token_emission_t
*
l_token_emission
;
dap_chain_datum_token_emission_t
*
l_token_emission
;
size_t
l_token_emission_size
=
sizeof
(
l_token_emission
->
hdr
)
+
size_t
l_token_emission_size
=
sizeof
(
l_token_emission
->
hdr
)
+
sizeof
(
l_token_emission
->
data
.
type_auth
.
signs_count
)
+
sizeof
(
l_token_emission
->
data
.
type_auth
.
signs_count
);
l_token_emission_signs_size
;
l_token_emission
=
DAP_NEW_Z_SIZE
(
dap_chain_datum_token_emission_t
,
l_token_emission_size
);
l_token_emission
=
DAP_NEW_Z_SIZE
(
dap_chain_datum_token_emission_t
,
l_token_emission_size
);
strncpy
(
l_token_emission
->
hdr
.
ticker
,
l_ticker
,
sizeof
(
l_token_emission
->
hdr
.
ticker
));
strncpy
(
l_token_emission
->
hdr
.
ticker
,
l_ticker
,
sizeof
(
l_token_emission
->
hdr
.
ticker
));
...
@@ -2129,6 +2121,8 @@ int com_token_emit(int argc, const char ** argv, char ** str_reply)
...
@@ -2129,6 +2121,8 @@ int com_token_emit(int argc, const char ** argv, char ** str_reply)
for
(
size_t
i
=
0
;
i
<
l_certs_size
;
i
++
){
for
(
size_t
i
=
0
;
i
<
l_certs_size
;
i
++
){
dap_chain_sign_t
*
l_sign
=
dap_chain_cert_sign
(
l_certs
[
i
],
&
l_token_emission
->
hdr
,
sizeof
(
l_token_emission
->
hdr
),
0
);
dap_chain_sign_t
*
l_sign
=
dap_chain_cert_sign
(
l_certs
[
i
],
&
l_token_emission
->
hdr
,
sizeof
(
l_token_emission
->
hdr
),
0
);
size_t
l_sign_size
=
dap_chain_sign_get_size
(
l_sign
);
size_t
l_sign_size
=
dap_chain_sign_get_size
(
l_sign
);
l_token_emission_size
+=
l_sign_size
;
l_token_emission
=
DAP_REALLOC
(
l_token_emission
,
l_token_emission_size
);
memcpy
(
l_token_emission
->
data
.
type_auth
.
signs
+
l_offset
,
l_sign
,
l_sign_size
);
memcpy
(
l_token_emission
->
data
.
type_auth
.
signs
+
l_offset
,
l_sign
,
l_sign_size
);
l_offset
+=
l_sign_size
;
l_offset
+=
l_sign_size
;
DAP_DELETE
(
l_sign
);
DAP_DELETE
(
l_sign
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment