A lightweight network logger for Linux systems - including both Desktop and embedded environments - that captures and records all network connections and DNS lookups with hash-chained logs.
- Real-time network connection monitoring
- DNS lookup logging
- Hash-chained log integrity
- Linux system (Desktop or embedded)
- GCC/Clang compiler with C++17 support
- Root privileges for network monitoring
TBD
TBD
To build, test, or clean NetLedger from source, use the provided build script with the following options:
script/build.sh build # Configure and compile the project
script/build.sh test # Run unit tests
script/build.sh clean # Remove build artifacts
script/build.sh depends # Install required dependencies (requires sudo)This script will use your system's default C++ compiler. The resulting binaries will be placed in the build/ directory.
For details, please see script/build.sh
Requirements:
- Linux system (Desktop or embedded)
- GCC or Clang with C++17 support
cmakeandmakeinstalled- Root privileges for network monitoring
- Internet access for installing dependencies (
dependsoption)
Requirements:
- Ensure all prerequisites are installed (see above).
- Run the script from the project root directory.
TBD
TBD
TBD
TBD
TBD
TBD
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
C++17 is taken as base considering wider compatibility, especially on the embedded platforms
This project follows Google C++ Style Guide for all source code. Please ensure your contributions adhere to these conventions, including:
- Consistent naming and formatting
- Proper file organization and documentation
- Clear and maintainable code structure
Refer to the style guide for detailed recommendations on source file elements and best practices.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.