Samba is an Ethereum portal client written in Java language based on Teku and Besu. The name is inspired by the shortened name of of rescue dog named Sambayon that is the Spanish translation of an Italian dessert.
Note: Samba is still under heavy development and is not yet ready for production use.
- Java 21+
Building on a more recent version of Java is supported, but the resulting build will not work on earlier versions of Java.
To create a ready to run distribution:
git clone https://github.com/meldsun0/samba
cd samba && ./gradlew
This produces:
- Fully packaged distribution in
build/distributions
To build, clone this repo and run with gradle
:
git clone https://github.com/meldsun0/samba
cd samba && ./gradlew
After a successful build, distribution packages are available in build/distributions
.
Target | Builds |
---|---|
distTar | Full distribution in build/distributions (as .tar.gz ) |
distZip | Full distribution in build/distributions (as .zip ) |
distDocker | The meldsun_labs/samba docker image |
runContainer | A docker container running |
We use Google's Java coding conventions for the project. To reformat code, run:
./gradlew spotlessApply
Code style is checked automatically during a build.
All the unit tests are run as part of the build, but can be explicitly triggered with:
./gradlew test
To run Hive locally against Samab you should follow these instractions:
Clone Hive:
git clone https://github.com/ethereum/hive
Build a local Docker image from Samba:
./gradlew build
./gradlew distDocker
- Copy hive/samba folder to hive/clients
- Change /hive/samba/Dockerfile by adding the recent created image.
Run Hive tests:
./hive -sim portal -client samba,trin -sim.limit history
View logs output and results:
./hiveview --serve --logdir ./workspace/logs
Minimum:
TO-DO
Recommended:
TO-DO