mirror of
https://github.com/luxfi/evm.git
synced 2026-09-24 00:27:44 +00:00
Updated all copyright headers from "Lux Partners Limited" to "Lux Industries Inc" and updated the year to 2025 to reflect the new holding company structure.
28 lines
1022 B
Markdown
28 lines
1022 B
Markdown
# Peer Package
|
|
|
|
The peer package handles networking for the VM.
|
|
|
|
## Network
|
|
|
|
The `Network` interface implements the networking portion of the required VM interface. The VM utilizes the `Network` interface to:
|
|
|
|
- Set an App Gossip handler for incoming VM gossip messages
|
|
- Set an App Request handler for incoming VM request messages
|
|
- Send App Requests to peers in the network and specify a response handler to be called upon receiving a response or failure notification
|
|
- Send App Gossip messages to the network
|
|
|
|
## Client
|
|
|
|
The client utilizes the `Network` interface to send requests to peers on the network and utilizes the `waitingHandler` to wait until a response or failure is received from the Lux networking layer.
|
|
|
|
This allows the user of `Client` to treat it as if it were returning results from the network synchronously.
|
|
|
|
```go
|
|
result, err := client.Request(nodeID, request) // Blocks until receiving a response from the network
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
foo(result) // do something with the result
|
|
```
|