feat: Improve Mycelium example with bidirectional communication
- Remove unnecessary public key printing in master node. - Use variable for slave public key in master node. - Add message receiving functionality to master node. - Remove redundant sending logic from slave node.
This commit is contained in:
@@ -30,9 +30,8 @@ master.server_url = 'http://localhost:${master_port}'
|
|||||||
master.name = 'master_node'
|
master.name = 'master_node'
|
||||||
|
|
||||||
// Get public keys for communication
|
// Get public keys for communication
|
||||||
master_inspect := mycelium.inspect(key_file_path: '/tmp/mycelium_server1/priv_key.bin')!
|
// master_inspect := mycelium.inspect(key_file_path: '/tmp/mycelium_server1/priv_key.bin')!
|
||||||
|
// println('Server 1 (Master Node) public key: ${master_inspect.public_key}')
|
||||||
println('Server 1 (Master Node) public key: ${master_inspect.public_key}')
|
|
||||||
|
|
||||||
// Initialize ourdb instances
|
// Initialize ourdb instances
|
||||||
mut db := ourdb.new(
|
mut db := ourdb.new(
|
||||||
@@ -64,9 +63,15 @@ json_data := json.encode(sync_data)
|
|||||||
// Send sync message to slave
|
// Send sync message to slave
|
||||||
println('\nSending sync message to slave...')
|
println('\nSending sync message to slave...')
|
||||||
msg := master.send_msg(
|
msg := master.send_msg(
|
||||||
public_key: '46a9f9cee1ce98ef7478f3dea759589bbf6da9156533e63fed9f233640ac072c'
|
public_key: slave_public_key
|
||||||
payload: json_data
|
payload: json_data
|
||||||
topic: 'db_sync'
|
topic: 'db_sync'
|
||||||
)!
|
)!
|
||||||
|
|
||||||
println('Sync message sent with ID: ${msg.id} to slave with public key: 46a9f9cee1ce98ef7478f3dea759589bbf6da9156533e63fed9f233640ac072c')
|
println('Sync message sent with ID: ${msg.id} to slave with public key: ${slave_public_key}')
|
||||||
|
|
||||||
|
// Receive messages
|
||||||
|
// Parameters: wait_for_message, peek_only, topic_filter
|
||||||
|
received := master.receive_msg(wait: true, peek: false, topic: 'db_sync')!
|
||||||
|
println('Received message from: ${received.src_pk}')
|
||||||
|
println('Message payload: ${base64.decode_str(received.payload)}')
|
||||||
|
|||||||
@@ -51,28 +51,3 @@ defer {
|
|||||||
received := slave.receive_msg(wait: true, peek: false, topic: 'db_sync')!
|
received := slave.receive_msg(wait: true, peek: false, topic: 'db_sync')!
|
||||||
println('Received message from: ${received.src_pk}')
|
println('Received message from: ${received.src_pk}')
|
||||||
println('Message payload: ${base64.decode_str(received.payload)}')
|
println('Message payload: ${base64.decode_str(received.payload)}')
|
||||||
|
|
||||||
// // Store in slave db
|
|
||||||
// println('\nStoring data in slave node DB...')
|
|
||||||
// data := 'Test data for sync - ' + time.now().str()
|
|
||||||
// id := db.set(data: data.bytes())!
|
|
||||||
// println('Successfully stored data in slave node DB with ID: ${id}')
|
|
||||||
|
|
||||||
// // Create sync data
|
|
||||||
// sync_data := SyncData{
|
|
||||||
// id: id
|
|
||||||
// data: data
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Convert to JSON
|
|
||||||
// json_data := json.encode(sync_data)
|
|
||||||
|
|
||||||
// // Send sync message to slave
|
|
||||||
// println('\nSending sync message to slave...')
|
|
||||||
// msg := slave.send_msg(
|
|
||||||
// public_key: '46a9f9cee1ce98ef7478f3dea759589bbf6da9156533e63fed9f233640ac072c'
|
|
||||||
// payload: json_data
|
|
||||||
// topic: 'db_sync'
|
|
||||||
// )!
|
|
||||||
|
|
||||||
// println('Sync message sent with ID: ${msg.id} to slave with public key: 46a9f9cee1ce98ef7478f3dea759589bbf6da9156533e63fed9f233640ac072c')
|
|
||||||
|
|||||||
Reference in New Issue
Block a user