Discussion
Loading...

Post

  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
Diane
@alienghic@timeloop.cafe  ·  activity timestamp 2 weeks ago

A while ago I stumbled on #radicle a peer to peer forge, and thought it looked neat. The possible involvement of people from the crypto currency space gave me (and other people) a bad feeling. But I thought "It's open source (MIT & Apache), I should just read it."

So I read it (heartwood, and radicle-git repositories) , with a pause to go read the rust tutorial first.

I don't really know rust, having mostly just read the tutorial so I have no business commenting about vulnerabilities, but I can still have opinions about their code style and readability.

I found it readable, functions tend to be short with good function names, there are periodic comments explaining why their choices in the code base.

The software is broken up into a number of logical modules.

There's a bunch of code dealing with serializing and deseralizing their collaborative objects (cob) datatypes

They have a bunch of test code for most of the modules, and a suite of tests for checking the end to end behavior of the system.

I started reading 1.3.0, but they had released 1.4.0 when I was done so I looked through the commits as well. Those tended to be short except for one big rewrite where they reimplemented their quorum voting method.

On the whole the project looks like it does what it claims to do, wraps git in a peer to peer forge.

An unusual choice was they decided to use ssh keys for git signing, but they don't seem to use ssh for the replication part, that's through their daemon process using a gossip protocol.

Currently their methods of connecting to other hosts are ipv4, ipv6, dns, or tor addresses, though the underlying library looks like it also supported i2p.

Sadly there's no fancy DHT method for finding other peers, there's just a couple of hosts radicle hosts for the initial bootstrapping.

heartwood https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git
radicle-git https://seed.radicle.xyz/z6cFWeWpnZNHh9rUW8phgA3b5yGt.git

It does have the typical problem of crypto heavy systems of offering terrible names.

Edited: to mention test code and repository names

  • Copy link
  • Flag this post
  • Block
tshepang
@tshepang@hachyderm.io replied  ·  activity timestamp 2 weeks ago

@alienghic what are some of the terrible names

  • Copy link
  • Flag this comment
  • Block
Log in

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.0-rc.3.13 no JS en
Automatic federation enabled
  • Explore
  • About
  • Members
  • Code of Conduct
Home
Login