This commit implements bech32 format and segwit addressing like
defined in Bitcoin implementation. A module called bech32 and another
one called segwit have been created. These two modules offers the
support for encoding and decoding of bech32 string in different formats.
In final, 99% coverage for bech32 and 97% coverage for segwit. The
document is enough for now.
Added an article explaining how and why Bech32/Segwit were implemented
in pure Erlang.
This (very) huge commit is containing the whole implementation
of the Schnorr signature scheme and the NIP/01 standard in
full Erlang. It includes documentation, test suites with eunit
and commont_test, partial specification, and articles/notes
on the implementation.
This commit is also probably one of the most important, it
defines the structure of the nostrlib module and all the
low level record used to encode and decode events.
99% coverages on nostrlib_schnorr. 85% on nostrlib.
This commit is a huge one. It had a lot of feature
and design the whole project. Documentation, tests,
notes, articles, introduction page and main codes
have been added.
All required dependencies have been added, thoas,
gun, and cowboy. Those versions have been fixed.
The current client implementation can use a websocket
to fetch the event from a relay, the connection can
also be closed.
Some functions and modules have been created to permit
to encode and decode payloads from/to a relay/client.
This is not correctly done, yet.
A part of nip/01 is already implemented but requires
a better structure, better testing and better
documentation as well.
The parameters for rebar3 and the tools like compilers
have been created to ensure a good quality for the
produced code.
A Makefile can be used to export the notes/articles in
pdf, epub, plaintext or html formats.
Added a way to test and compile nostr project with
github actions using an external runner. A better
configuration is required though, with more
documentation and features.