e65760ca85
This commit adds basic syncing capabilities with peers if they are both online. It updates the work done on MVDS, but I decided to create the code in status-go instead, since it's very tight to the application (similarly the code that was the inspiration for mvds, bramble, is all tight together at the database level). I reused parts of the protobufs. The flow is: 1) An OFFER message is sent periodically with a bunch of message-ids and group-ids. 2) Anyone can REQUEST some of those messages if not present in their database. 3) The peer will then send over those messages. It's disabled by default, but I am planning to add a way to set up the flags. |
||
---|---|---|
.. | ||
bridge/geth | ||
core/types | ||
crypto | ||
keystore | ||
types | ||
Makefile | ||
README.md |
README.md
Abstraction for Ethereum node implementation
This package is a collection of interfaces, data types, and functions to make status-go independent from the go-ethereum implementation.
status-go is a wrapper around an Ethereum node. This package was created to have a possibility of selecting the underlying Ethereum node implementation, namely go-ethereum or Nimbus. The underlying implementation is selected using Go build tags.
types
andcore/types
-- provide interfaces of node services, common data types, and functions,bridge
-- provide implementation of interfaces declared intypes
using go-ethereum or Nimbus ingeth
andnimbus
directories respectively,crypto
-- provide cryptographic utilities not depending on go-ethereum,keystore
-- provide a keystore implementation not depending on go-ethereum.
Note: crypto
and keystore
are not finished by either depending on go-ethereum or not providing Nimbus implementation.
How to use it?
If you have a piece of code that depends on go-ethereum, check out this package to see if there is a similar implementation that does not depend on go-ethereum. For example, you want to decode a hex-string into a slice of bytes. You can do that using go-ethereum's FromHex()
function or use equivalent from this package and avoid importing go-ethereum. Thanks to this, your code fragment might be built with Nimbus.