#[tokio::main]
async fn main() -> anyhow::Result<()> {
use ipld_core::ipld;
use rust_ipfs::builder::DefaultIpfsBuilder as IpfsBuilder;
use rust_ipfs::Ipfs;
use rust_ipfs::IpfsPath;
let ipfs: Ipfs = IpfsBuilder::new()
.with_default()
.add_listening_addr("/ip4/0.0.0.0/tcp/0".parse()?)
.with_mdns()
.with_relay(true)
.default_record_key_validator()
.start()
.await?;
ipfs.default_bootstrap().await?;
let block_a = ipld!({
"name": "alice",
"age": 99,
});
let cid = ipfs.put_dag(block_a).await?;
let ipfs_path = IpfsPath::from(cid);
let path = ipfs.publish_ipns(&ipfs_path).await?;
println!("{ipfs_path} been published to {path}");
tokio::signal::ctrl_c().await?;
Ok(())
}