-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: add docs for development & build
- Loading branch information
Showing
4 changed files
with
93 additions
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Building Bitkit from source | ||
|
||
## Setup | ||
|
||
1. Clone the repository | ||
|
||
```shell | ||
git clone [email protected]:synonymdev/bitkit.git && cd bitkit | ||
``` | ||
|
||
2. Switch Node version | ||
|
||
Switch to the Node.js version defined in `.nvmrc`. If `nvm` (or similiar) is installed on your system you can run `nvm use`. | ||
|
||
3. Install dependencies | ||
|
||
```shell | ||
yarn install | ||
``` | ||
|
||
## Build | ||
|
||
For iOS: Open the `ios` folder in Xcode to build the project. | ||
|
||
For Android: `yarn bundle` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# Development | ||
|
||
Make sure you have [setup your environment for React Native](https://reactnative.dev/docs/environment-setup). | ||
|
||
## Installation | ||
|
||
1. Clone the repository | ||
|
||
```shell | ||
git clone [email protected]:synonymdev/bitkit.git && cd bitkit | ||
``` | ||
|
||
2. Switch Node version | ||
|
||
Switch to the Node.js version defined in `.nvmrc`. If `nvm` (or similiar) is installed on your system you can run `nvm use`. | ||
|
||
3. Install dependencies | ||
|
||
```shell | ||
yarn install | ||
``` | ||
|
||
4. Set environment variables for development (optional) | ||
|
||
```shell | ||
cp .env.development.template .env.development | ||
``` | ||
|
||
5. Start the project | ||
|
||
On iOS Simulator: | ||
|
||
```shell | ||
yarn ios | ||
``` | ||
|
||
On Android Emulator: | ||
|
||
```shell | ||
yarn android | ||
``` | ||
|
||
## Troubleshooting | ||
|
||
When running into issues there are a couple things to check. | ||
|
||
- Clean caches & build folders: `yarn clean` | ||
- Clean simulator cache (iOS): `xcrun simctl erase all` | ||
- Increase emulated device storage (Android): `Android Studio -> Virtual Device Manager -> Edit Device -> Show Advanced Settings -> increase RAM, VM heap and Internal Storage sizes` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,68 +16,44 @@ | |
|
||
Bitkit enables users to reclaim their digital life. | ||
|
||
Bitkit puts users in control of their money and payments, social profile, contacts, and payment preferences; allows users to authenticate to servers with just a tap; and allows users to stream data from public feeds and web accounts, all within one application. What Bitcoin has done for money and payments, Bitkit also extends to other areas of digital life. | ||
|
||
Bitkit is a mobile application available on Android and iOS, and implemented using React-Native. | ||
Bitkit puts users in control of their money and payments, social profile, contacts, and payment preferences; allows users to authenticate to servers with just a tap; and allows users to stream data from public feeds and web accounts, all within one application. What Bitcoin has done for money and payments, Bitkit also extends to other areas of digital life. | ||
|
||
Bitkit is a mobile application available on Android and iOS, and implemented using React-Native. | ||
|
||
## The problem | ||
|
||
Society, the economy, and the Web have been overcome by oppressive central controls, resulting in censorship, privacy breaches, and monopoly behaviors that stifle the marketplace of goods and ideas. Users need P2P tools that set them free. | ||
|
||
Society, the economy, and the Web have been overcome by oppressive central controls, resulting in censorship, privacy breaches, and monopoly behaviors that stifle the marketplace of goods and ideas. Users need P2P tools that set them free. | ||
|
||
## Bitkit's solution | ||
|
||
Bitkit offers a Bitcoin wallet that supports both on-chain and lightning transactions. The application runs a custom, non-routing Lightning node created with the [Lightning Development Kit](https://github.com/lightningdevkit) on the user's mobile phone. It requires a connection to an external server running a Bitcoin full node and an Electrum server. | ||
|
||
We automatically on-board users to Lightning through the integration of our lightning service provider (LSP) [Blocktank](https://github.com/synonymdev/blocktank-client). Developers can also create their own LSP using Blocktank. In the future, we will support users to connect to their own Lightning and Bitcoin nodes, select different types of LSPs, couple hardware wallets, and manage their own Lightning channels. | ||
Bitkit offers a Bitcoin wallet that supports both on-chain and lightning transactions. The application runs a custom, non-routing Lightning node created with the [Lightning Development Kit](https://github.com/lightningdevkit) on the user's mobile phone. It requires a connection to an external server running a Bitcoin full node and an Electrum server. | ||
|
||
Users can back up all their on-chain Bitcoin data with a standard BIP-39 seed. Lightning channel data should automatically be stored on a backup server. The data needs to be encrypted on the client-side before it is sent to a server to ensure privacy. You can view our code [here](https://github.com/synonymdev/bitkit-backup-client). | ||
We automatically on-board users to Lightning through the integration of our lightning service provider (LSP) [Blocktank](https://github.com/synonymdev/blocktank-client). Developers can also create their own LSP using Blocktank. In the future, we will support users to connect to their own Lightning and Bitcoin nodes, select different types of LSPs, couple hardware wallets, and manage their own Lightning channels. | ||
|
||
The other main features Bitkit supports are the creation of social profiles; the importing and managing of contacts; dynamic payment profiles; key-based account logins; and the display of public data feeds and private account data through in-application widgets. You can experiment with these features in our [playground](https://synonym.to/products/slashtags#playground). We currently support three public data widgets: a bitcoin [price feed](https://github.com/synonymdev/slashtags-widget-price-feed), a bitcoin [news feed](https://github.com/synonymdev/slashtags-widget-news-feed), a bitcoin [block data feed](https://github.com/synonymdev/slashtags-widget-bitcoin-feed). | ||
Users can back up all their on-chain Bitcoin data with a standard BIP-39 seed. Lightning channel data should automatically be stored on a backup server. The data needs to be encrypted on the client-side before it is sent to a server to ensure privacy. You can view our code [here](https://github.com/synonymdev/bitkit-backup-client). | ||
|
||
All these additional features are powered by Slashtags: an open-source protocol for creating secure and scalable peer-to-peer applications. You can view our JavaScript-based software development kit which has been used for the Bitkit wallet [here](https://github.com/synonymdev/slashtags). | ||
The other main features Bitkit supports are the creation of social profiles; the importing and managing of contacts; dynamic payment profiles; key-based account logins; and the display of public data feeds and private account data through in-application widgets. You can experiment with these features in our [playground](https://synonym.to/products/slashtags#playground). We currently support three public data widgets: a bitcoin [price feed](https://github.com/synonymdev/slashtags-widget-price-feed), a bitcoin [news feed](https://github.com/synonymdev/slashtags-widget-news-feed), a bitcoin [block data feed](https://github.com/synonymdev/slashtags-widget-bitcoin-feed). | ||
|
||
The Slashtags protocol allows for the creation of cryptographic keypairs, known as "slashtags", derived from the same BIP-39 seed as the user's Bitcoin wallet. Typically these slashtags are associated with networked “drives” known as hyperdrives, which can be discovered, read, and seeded by peers on a network. The group of peers that stores some or all of the drive’s data is known as its swarm. | ||
All these additional features are powered by Slashtags: an open-source protocol for creating secure and scalable peer-to-peer applications. You can view our JavaScript-based software development kit which has been used for the Bitkit wallet [here](https://github.com/synonymdev/slashtags). | ||
|
||
While much of the power of Slashtags comes via these hyperdrives, the keypairs that can be generated with Slashtags also can have important utility on their own. Bi-lateral, peer to peer authentication between a user and a server can, for example, be realized just on the basis of keypairs. | ||
The Slashtags protocol allows for the creation of cryptographic keypairs, known as "slashtags", derived from the same BIP-39 seed as the user's Bitcoin wallet. Typically these slashtags are associated with networked “drives” known as hyperdrives, which can be discovered, read, and seeded by peers on a network. The group of peers that stores some or all of the drive’s data is known as its swarm. | ||
|
||
All Slashtags data is exchanged within a Kademlia-based distributed hash table system. | ||
While much of the power of Slashtags comes via these hyperdrives, the keypairs that can be generated with Slashtags also can have important utility on their own. Bi-lateral, peer to peer authentication between a user and a server can, for example, be realized just on the basis of keypairs. | ||
|
||
You can read more about Slashtags on our [website](https://synonym.to/products/slashtags) and on our SDK's [Github page](https://github.com/synonymdev/slashtags). Slashtags predominantly builds on the lower-level functionality of the Hypercore stack. You can learn more about the Hypercore stack [here](https://hypercore-protocol.org/) as well as from the two main Github projects [here](https://github.com/hypercore-protocol) and [here](https://github.com/hyperswarm). | ||
All Slashtags data is exchanged within a Kademlia-based distributed hash table system. | ||
|
||
Slashtags user data should be automatically replicated via a [seeding server](https://github.com/synonymdev/slashtag-seeding-server). In this way, user data is always available. In addition, it allows the user to restore all their Slashtags data from just their BIP-39 seed. | ||
You can read more about Slashtags on our [website](https://synonym.to/products/slashtags) and on our SDK's [Github page](https://github.com/synonymdev/slashtags). Slashtags predominantly builds on the lower-level functionality of the Hypercore stack. You can learn more about the Hypercore stack [here](https://hypercore-protocol.org/) as well as from the two main Github projects [here](https://github.com/hypercore-protocol) and [here](https://github.com/hyperswarm). | ||
|
||
Slashtags user data should be automatically replicated via a [seeding server](https://github.com/synonymdev/slashtag-seeding-server). In this way, user data is always available. In addition, it allows the user to restore all their Slashtags data from just their BIP-39 seed. | ||
|
||
## Support | ||
|
||
If you are experiencing any problems with Bitkit, please open an issue and use the template provided, or reach out to us on [telegram](https://t.me/bitkitchat). | ||
|
||
If you are experiencing any problems with Bitkit, please open an issue and use the template provided, or reach out to us on [telegram](https://t.me/bitkitchat). | ||
|
||
## Installation | ||
|
||
1. Clone Bitkit | ||
|
||
```shell | ||
git clone [email protected]:synonymdev/bitkit.git && cd bitkit/ | ||
``` | ||
|
||
2. Install dependencies | ||
|
||
```shell | ||
yarn install | ||
``` | ||
|
||
3. Set environment variables for development (optional) | ||
|
||
```shell | ||
cp .env.development.template .env.development | ||
``` | ||
[Download](https://github.com/synonymdev/bitkit/releases) or [Build it from source](./BUILD.md). | ||
|
||
4. Start the project | ||
## Development | ||
|
||
```shell | ||
yarn ios | ||
#or | ||
yarn android | ||
``` | ||
See [Development documentation](./DEVELOPMENT.md). |