public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Davidson Souza <davidson.lucas.souza@outlook•com>
To: Bitcoin Protocol Discussion <bitcoin-dev@lists•linuxfoundation.org>
Subject: Re: [bitcoin-dev] Announcing Libforesta
Date: Thu, 3 Aug 2023 20:34:04 +0000	[thread overview]
Message-ID: <IA1P223MB04508EA21B61A72481E9846BCA08A@IA1P223MB0450.NAMP223.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <56014D86-B715-4216-8B11-93A65FDC6971@orangepill.ovh>

[-- Attachment #1: Type: text/plain, Size: 4093 bytes --]


Hi leohaf.

>Is this implementation able to start other nodes whether they are on the reference implementation or on Floresta?

You mean serve blocks to others? If so, Floresta is a prune-first node, meant to be used with only outgoing connections, so no.

>Is it possible to switch from Bitcoin Core to Floresta without causing a new IDB?

Not trivially, I think. The easiest way I could think of is someone handing you the position of each leaf in the accumulator, you could reconstruct it locally. If the acc have exactly​​ the UTXOs you expected, and is valid, then you just prune off all leaves and keep the roots, becoming a bridge node. This is lighter that IBD, but still a bit costly, I guess.

>Is Floresta backward compatible with Bitcoin Core's RPC commands?

I'm trying to get the most important rpcs closer to core. I won't promisse all of them, but ones used in the watch-only wallet and pulling general chain data will have a very close interface.

________________________________
De: leohaf@orangepill•ovh <leohaf@orangepill•ovh>
Enviado: quinta-feira, 3 de agosto de 2023 11:33
Para: Davidson Souza <davidson.lucas.souza@outlook•com>; Bitcoin Protocol Discussion <bitcoin-dev@lists•linuxfoundation.org>
Assunto: Re: [bitcoin-dev] Announcing Libforesta

Hi, delighted to see an implementation of Utreexo.

I will just have a few questions about your implementation.

1) Is this implementation able to start other nodes whether they are on the reference implementation or on Floresta?

2) Is it possible to switch from Bitcoin Core to Floresta without causing a new IDB?

3) Is Floresta backward compatible with Bitcoin Core's RPC commands?

Le 31 juil. 2023 à 19:47, Davidson Souza via bitcoin-dev <bitcoin-dev@lists•linuxfoundation.org> a écrit :

Hi, list. My name is Davidson, and I’m thrilled to share `libfloresta` with the Bitcoin devs mailing list!

This is a derivate of a project I’ve been developing for a few months, called `Floresta` (Portuguese for forest). An Utreexo powered, Fully-Validating Bitcoin Full node with integrated watch-only wallet and Electrum Server, meant to be a compact, simple, and ready to use full node for end users.

After some feedbacks and thoughts, I’ve decided to turn it into a series of reusable libs that can be used in other applications in a straightforward way. The main goal here is low-power devices, like SBC and smartphones, but can be used in any environment. To achieve that, I’m writing the main logic in Rust and will generate bindings to the original code and compiling to WASM, allowing it to run virtually anywhere.

The project is in an early stage, but I’m using it on signet for a while now with no problems. Mainnet support is almost ready, but we need to solve some performance issues with bridge nodes and set some up, so you can have utreexo peers.

The project is available on [my GitHub](https://github.com/Davidson-Souza/Floresta) and I wrote an initial [blogpost](https://blog.dlsouza.lol/2023/07/07/libfloresta.html) explaining how to use it (in Rust). I’ll write more as the project matures, and I get it running on other platforms. Any feedback is welcome!

## Consensus

I know that alternative implementations is a spicy subject in Bitcoin land, but this project **does not** reimplement the Bitcoin Consensus machine from scratch. I’m using `libbitcoinconsenus` and plan to use the full `libbitcoinkernel` in the future. While this doesn’t guarantee consistency, it minimizes misimplementations leading to splits.

I’m also making an extra effort into cross-test against Bitcoin Core to find any inconsistencies before it causes any trouble.

## Acknowledges

A special thanks to [Vinteum](https://vinteum.org/) for supporting my work with utreexo and Floresta.

Best regards,
Davidson Souza.
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org<mailto:bitcoin-dev@lists•linuxfoundation.org>
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[-- Attachment #2: Type: text/html, Size: 18782 bytes --]

      reply	other threads:[~2023-08-03 20:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-31 17:47 Davidson Souza
2023-08-01  8:02 ` Bastiaan van den Berg
2023-08-02 21:32   ` Davidson Souza
2023-08-03 14:03 ` leohaf
2023-08-03 20:34   ` Davidson Souza [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=IA1P223MB04508EA21B61A72481E9846BCA08A@IA1P223MB0450.NAMP223.PROD.OUTLOOK.COM \
    --to=davidson.lucas.souza@outlook$(echo .)com \
    --cc=bitcoin-dev@lists$(echo .)linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox