pub async fn register_program(&self, vk: &SP1VerifyingKey, elf: &[u8]) -> Result<B256> {
        self.client.register_program(vk, elf).await
    }
Registers a program if it is not already registered.

# Details
* `vk`: The verifying key to use for the program.
* `elf`: The elf to use for the program.

Note that this method requires that the user honestly registers the program (i.e., the elf
matches the vk).

# Example
```rust,no_run
use sp1_sdk::{Prover, ProverClient, SP1Stdin};

let elf = &[1, 2, 3];
let client = ProverClient::builder().network().build();
let (pk, vk) = client.setup(elf);

let vk_hash = client.register_program(&vk, elf);
```
crates/sdk/src/network/prover.rs