Skip to content

Move all features in the utcd repo to the utreexo repo #261

Open
@kcalvinalvin

Description

@kcalvinalvin

What I plan to do

Move all the utcd features that we lack in the utreexo repo. P2P, utxo tracking, network sync manager are the big 3 features that are missing here.

Reasonale

1. Cross-repo incompatibilities

Having two repos for the utreexo parallel sync stuff is bad.
One example: We need to have duplicate code for the wire/ stuff since go doesn't allow import cycles. This results in ugly mess in both sides of the repositories (see wire/ package in both the utreexo repo and the utcd repo).

2. Legacy un-wanted btcd things

Currently the integration tests are failing in the utcd repo. The code isn't necessarily wrong, but it's the existing btcd stuff that are:
a. already gone
b. legacy in terms of utreexo

I saw no need to make the tests pass since it's stuff we're not using anyways. But as the utcd repo progresses, this hurts with testability and readability of the repo. It just makes me look bad in general :(

There's a lot of overhead to keep the existing btcd test code that we're not gonna end up needing. I think it's better to just move all the wanted code to the mit-dci/utreexo repo.

3. Better readability of the code

Right now, it's really just me that's been working on the utcd repo since December. I believe this is because to contribute, you would:

  1. Get used to the btcd repo
  2. Get used to the new utreexo things in the utcd repo

This is obviously very challenging. I intend to move things here so the code is better readable with all the unnecessary btcd things gone. I believe this would lower the bar for contributing to the utreexo parallel node code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions