Sonr Core
About The Project
Sonr is building the most simple and intuitive Decentralized Web experience for users and developers alike with our revolutionary blockchain and universal digital wallet.
Built With
Getting Started
To get a local copy up and running follow these simple steps.
Installation
-
Clone the repo
git clone https://github.com/sonr-io/sonr.git
-
Install NPM packages
# Binds Android and iOS for Plugin Path
make bind
# Binds iOS Framework ONLY
make bind.ios
# Binds AAR for Android ONLY
make bind.android
# Compiles Protobuf models for Core Library and Plugin
make proto
# Binds Binary, Creates Protobufs, and Updates App
make upgrade
# Reinitializes Gomobile and Removes Framworks from Plugin
make clean
Docker Instructions
-
Build the Docker image
docker build -t ghcr.io/sonr-io/snrd .
-
Run the Docker image
docker run -it -p 443:26225 ghcr.io/sonr-io/snrd
Structure
This project is a pseudo-monorepo, meaning it has a single root directory and all of its packages are in subdirectories. The structure is as follows:
/cmd -> Packaged Binaries.
└─ bin -> + Daemon RPC for Desktop Builds.
└─ highway -> + Sonr Custodian Node (desktop, server)
└─ lib -> + Binded Mobile Framework (aar, framework)
/docs -> Documentation.
/extensions -> Sonr Extension's for platform integrations (Figma, Chrome, Native, etc.)
/internal -> Internal Code. (Networking, Emitter, FileSystem, etc.)
└─ api -> + Shared Protobuf Models, Generic Types, and Enums.
└─ common -> + Core data types and functions.
└─ device -> + Current Node Device management
└─ host -> + Libp2p Configuration
└─ keychain -> + Keychain for Private/Public Keys
└─ node -> + Central Node for Sonr Network
/pkg -> Protocol Services for Sonr Core
└─ domain -> + Shared Protobuf Models, Generic Types, and Enums.
└─ exchange -> + Data Transfer related Models.
└─ lobby -> + Node Peer related Models.
└─ mailbox -> + Creates and Registers Libp2p RPC Service Handlers.
└─ transfer -> + Creates an Interface which manages libp2p pubsub topics.
/proto -> Protobuf Definition Files.
/tools -> API Services utilized in the project.
└─ config -> + File System structure management
└─ internet -> + Namebase, REST, and DNS Resolver
└─ state -> + State Machine Management
Roadmap
See the open issues for a list of proposed features (and known issues).
Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
)
- Commit your Changes (
git commit -m 'Add some AmazingFeature'
)
- Push to the Branch (
git push origin feature/AmazingFeature
)
- Open a Pull Request
License
Distributed under the MIT License. See LICENSE
for more information.
Prad Nukala - TheSonrApp - pradn@sonr.io
Project Link: Github - Discord - Website
Acknowledgements