From a0523732aa4f7255a835a34f56d6c9afb859b72d Mon Sep 17 00:00:00 2001 From: j0sh21 <132760416+j0sh21@users.noreply.github.com> Date: Tue, 27 Feb 2024 13:51:23 +0100 Subject: [PATCH] New documentations #1885 (#2409) * Added install guide 1884 https://github.com/cryptoadvance/specter-desktop/issues/1884 * chore: remove empty file * adding to the menu anr referencing in readme * changing heading levels to enable submenu * adding symlink * Reposition 'OS-Specific Apps' section and update Electrum integration info - Moved 'OS-Specific Apps for Specter Desktop' section to immediately follow 'Installation Methods' for better logical flow and prominence. - Added information about Electrum connection availability since version 2.0.0 in the 'Future Developments of Specter Desktop' section for up-to-date and accurate documentation. -Changed Title to "Installation Method Decision Guide" instead of "Installation Guide" * Create WalletCreationGuide.md * Create DeviceCreationGuide.md * Update docs/DeviceCreationGuide.md commit suggestion from k9ert Co-authored-by: k9ert * Update mkdocs.yml Linked new WalletCreationGuide and DeviceCreationGuide in the Menue * Update WalletCreationGuide.md Added Link to install guide * Update WalletCreationGuide.md Added Link to Node connection guide * Update WalletCreationGuide.md Creating wallet: Reference to import device first Backup wallet: Improved explenation about steel backup * Update DeviceCreationGuide.md Added real world examples for wallets and derivation paths. Linked readme with pictured Step by Step guide. Added Some basic Common Issues, maybe link faq? * Update WalletCreationGuide.md Added examples for Single/Multisig wallets * Update DeviceCreationGuide.md small fix in hierarchy * Update mkdocs.yml swapped device and wallet creation guide. * Update DeviceCreationGuide.md Fixed various comments * Update WalletCreationGuide.md var. fixes * Added feedback from 02/15 * Added feedback from 02/15 fix double space and no new line. * - removed the word cryptocurrency and placed Bitcoin instead. - Pointed out that hardware wallets with shitcoin support are less secure. * - fixed links to other docs - adjusted link integration - removed picture reference in the wallets overview --------- Co-authored-by: Kim Neunert Co-authored-by: k9ert --- README.md | 3 +- docs/DeviceCreationGuide.md | 179 +++++++++++++++++++++++++++ docs/WalletCreationGuide.md | 69 +++++++++++ docs/install_guide.md | 233 ++++++++++++++++++++++++++++++++++++ mkdocs.yml | 3 + utils/docs | 1 + 6 files changed, 487 insertions(+), 1 deletion(-) create mode 100644 docs/DeviceCreationGuide.md create mode 100644 docs/WalletCreationGuide.md create mode 100644 docs/install_guide.md create mode 120000 utils/docs diff --git a/README.md b/README.md index 14d7732eba..3670209ba4 100755 --- a/README.md +++ b/README.md @@ -77,7 +77,8 @@ As a small team on a tiny budget we are working hard to make Specter better ever ### Using the Specter Desktop app The easiest way to run Specter Desktop is by installing the Specter Desktop app, which you can find on the [GitHub release page](https://github.com/cryptoadvance/specter-desktop/releases). -With this method, all you need to do is just download the right file for your operating system and install it like a normal desktop app (Debian buster is only [partially supported](https://github.com/cryptoadvance/specter-desktop/issues/769)) +With this method, all you need to do is just download the right file for your operating system and install it like a normal desktop app (Debian buster is only [partially supported](https://github.com/cryptoadvance/specter-desktop/issues/769)). +But there are a bunch of other option which you can read up in the [installation guide](docs/install_guide.md). ### Installing Specter from Pip * Specter requires Python version 3.9 to 3.10. diff --git a/docs/DeviceCreationGuide.md b/docs/DeviceCreationGuide.md new file mode 100644 index 0000000000..31574c1f2c --- /dev/null +++ b/docs/DeviceCreationGuide.md @@ -0,0 +1,179 @@ +# Device Creation Guide for Specter Hardware Wallets + +## Introduction + +Welcome to the Device Creation Guide for Specter Hardware Wallets. In this comprehensive guide, we'll walk you through the process of setting up hardware wallets within the Specter environment. Our focus is on ensuring the security of your digital assets while using various types of hardware wallets. We'll also delve into the crucial concept of derivation paths, which is essential for generating multiple keys from a single seed. Understanding these paths is key to managing and securing your Bitcoin effectively. + +## Types of Hardware Wallets + +### SD-Card Wallets + +- **Features:** SD-Card hardware wallets offer unique features that prioritize both security and portability. We'll explore these features in detail to help you understand their advantages. +- **User background:** Alice, a traveling consultant, requires a secure yet portable solution to manage her digital assets. She often moves between locations and needs a reliable way to carry her Bitcoin wallet without internet connectivity risks. +- **Use Case:** Alice opts for an SD-Card hardware wallet. Its small size and portability make it an ideal choice for her travels. She can easily carry it in her purse or securely store it in a safe. The SD-Card wallet allows her to access her digital assets on the go, without the need for an internet connection, reducing the risk of online threats. Moreover, she uses the SD-Card as a secure backup, storing a duplicate in a safe location. +- **Supported Devices:** + + - BitBox02 BitBox02 Wallet A Swiss-made hardware wallet known for its security and simplicity. It and features both SD-Card and USB interfaces for enhanced flexibility. + - Coldcard BitBox02 Wallet A popular choice for a secure and dedicated Bitcoin hardware wallet. Known for its advanced security features and ability to work with PSBT (Partially Signed Bitcoin Transactions). + - Cobo BitBox02 Wallet Designed for durability and security, Cobo is a multi-cryptocurrency hardware wallet with SD-Card support for backup and recovery. + - Passport BitBox02 Wallet This device emphasizes user-friendly design and privacy, offering air-gapped operation via QR codes and SD-Card backup. + +### QR Code Wallets + +- **Functionality:** QR code wallets operate differently, providing enhanced security through minimal direct connections with other devices. Learn how they work and why this matters. +- **User background:** Bob, a frequent user of Bitcoin for transactions, often finds himself in public places like coffee shops or conferences. He is concerned about the security risks associated with connecting his wallet to public Wi-Fi or potentially compromised devices. +- **Use Case:** Bob uses a QR Code wallet, which provides enhanced security through minimal direct connections. When making transactions, he simply scans the QR code displayed by his wallet. This method eliminates the need to connect to potentially insecure networks or devices, significantly reducing the risk of digital asset theft. The QR Code wallet’s ability to operate with minimal connectivity makes it an excellent choice for secure, hassle-free transactions in public settings. +- **Supported Devices:** + + - Jade BitBox02 Wallet A budget-friendly hardware wallet with QR code functionality for secure and offline transactions. + - SeedSigner BitBox02 Wallet An open-source project that focuses on creating a secure, offline transaction signing device using QR codes. + +### USB Wallets + +- **Characteristics:** USB wallets come with distinct features, including direct connectivity and user-friendly interfaces. Get a deeper understanding of what makes them stand out. +- **Scenarios:** Find out when and where USB wallets are your best choice. We'll showcase their versatility and compatibility with a wide range of devices. +- **User background:** Carol, a small business owner, accepts Bitcoin in her store. She needs a wallet that is both easy to use and compatible with various devices since she regularly deals with different types of transactions. +- **Use Case:** Carol chooses a USB wallet for its user-friendly interface and direct connectivity. The USB wallet's plug-and-play nature makes it simple to connect to her store's point-of-sale system or her personal computer. Its compatibility with various devices allows her to efficiently manage transactions without the need for specialized hardware. The USB wallet's intuitive interface makes it easy for Carol to navigate, making it an ideal choice for her everyday business transactions. +- **Supported Devices:** + + - BitBox02 BitBox02 Wallet Swiss-made hardware wallet, offering a blend of security and simplicity. Bitcoin Only version available. + - KeepKey Keystone Wallet A user-friendly wallet with a large display, providing a secure environment for cryptocurrency storage and transactions. + - Ledger Ledger Wallet Known for its security and sleek design, Ledger wallets support a wide range of cryptocurrencies. Less security since it contains code for other shitcoins. + - Trezor Trezor Wallet One of the first hardware wallets in the market, renowned for its ease of use and robust security measures. + - Keystone Keystone Wallet Formerly known as Cobo Vault, Keystone wallets offer a high-security solution with air-gapped QR code signing. + + +## Step-by-Step Guide for Device Creation in Specter + +### Add a new device +Select signing device +![image](https://user-images.githubusercontent.com/47259243/223428531-2f3a04d4-177d-4626-8108-b66234892541.png) +Upload public keys +![image](https://user-images.githubusercontent.com/47259243/223427859-c06faec5-78ab-4592-9ba6-4018978280cc.png) + +### Select how to connect to Bitcoin network +![image](https://user-images.githubusercontent.com/47259243/223425374-a3e68ac7-2bdb-48fe-a53b-59f235c59bd1.png) +Electrum server or... +![image](https://user-images.githubusercontent.com/47259243/223426046-dd225f00-ba18-45cb-871a-40efd7eefc1e.png) +...via Bitcoin Core node. +![image](https://user-images.githubusercontent.com/47259243/223426366-c3ba758a-34c4-4ce1-8aae-cf0cc335a892.png) + + +## Understanding Derivation Paths + +### Concept Explanation + +Understanding derivation paths is fundamental to managing the security of your digital assets. In this section, we'll provide you with an overview of what derivation paths are and why they matter. We'll also introduce key paths like BIP 44 (for multi-account hierarchy), BIP 49 (for SegWit compatibility), and BIP 84 (for native SegWit addresses). Each of these paths caters to different Bitcoin address types and plays a crucial role in organizing and securing your Bitcoin, especially within hardware wallets. + +By default, Specter Wallets are set up with: +- BIP 44 for traditional multisig wallets. +- BIP 49 or BIP 84 for SegWit singlesig wallets. + +These default settings cover the needs of most users, simplifying the wallet setup and usage process. However, understanding these paths can enhance your ability to tailor the wallet to your specific needs, especially if you have advanced security considerations. + +### Challenges and Best Practices + +1. **Complexity:** + - Derivation paths, especially when considering various Bitcoin address types like BIP 44, BIP 49, and BIP 84, can be intricate. The challenge lies in comprehending the nuances of each path and selecting the one that aligns with your specific use case. Best practice here is to educate yourself thoroughly and seek expert advice if needed. + +2. **Compatibility:** + - Using the wrong derivation path can lead to compatibility issues, making it challenging to access your funds. It's crucial to ensure that the path you choose is supported by your wallet software and the services you intend to use. Staying informed about updates and changes in the Bitcoin ecosystem is essential to avoid compatibility pitfalls. + - To assist with this, [common derivation paths for different wallets can be found at Wallets Recovery](https://walletsrecovery.org/). This resource can be useful for understanding the standard practices of various wallets and ensuring compatibility. + - Ensure that the path you choose is supported by your wallet software and the services you intend to use. + +3. **Security Risks:** + - Incorrectly managed derivation paths can introduce security risks. For instance, sharing your master public key (xpub) derived from an account with a third party may expose all the addresses generated from it. Best practice involves limiting the exposure of sensitive information and adopting a "need-to-know" approach when sharing keys or information related to derivation paths. + - Limit the exposure of sensitive information and adopt a "need-to-know" approach when sharing keys or information related to derivation paths. + +4. **Backup Strategies:** + - Derivation paths affect how you back up your wallet. Implementing a robust backup strategy that includes the derivation path information is essential. Best practice is to maintain secure backups and periodically test your recovery process to ensure you can regain access to your digital assets if the need arises. + - Implementing a robust backup strategy that includes the derivation path information is essential. + +### Example 1: BIP 84 (Hierarchical Deterministic Wallets) +#### Scenario: Multiple Account Management + +##### Context +Emily, a Bitcoin enthusiast, has diverse needs for managing her digital assets. She wants to separate her main funds from the stacking service provider she's using. For this, she needs a wallet structure that allows for clear separation while maintaining privacy and security. + +##### Use Case +Emily opts to use the BIP 84 derivation path, which is designed for native SegWit addresses, providing her with an efficient and cost-effective way to manage her Bitcoin transactions. She uses two different paths within BIP 84 to separate her funds: +- For her main wallet, where she keeps the majority of her funds, Emily uses the derivation path `m/84'/0'/0'`. This path is for her personal use, ensuring that her primary funds remain secure and private. +- For the stacking service provider, which requires her to share her extended public key (xpub) for operational purposes, she uses the derivation path `m/84'/0'/1'`. This separation allows her to maintain privacy and security, as the service provider only has visibility over the funds in the dedicated stacking account. + +##### Advantage +By using two distinct accounts under the BIP 84 standard, Emily efficiently manages her assets, keeping her main funds secure and private while still participating in stacking services. + +### Example 2: BIP 49 (SegWit Compatibility in P2SH) +#### Scenario: Balancing Efficiency with Cost in Wallet Management + +##### Context +John has been managing his Bitcoin assets using an older wallet setup. As the volume of his transactions increases, he's faced with the challenge of seeking more efficient transaction processing, both in terms of speed and reduced fees, without incurring significant costs in moving his funds. +##### Use Case +John's current wallet utilizes BIP 49, which enables SegWit compatibility through Pay to Script Hash (P2SH) addresses, identifiable by starting with '3'. His addresses follow the derivation path m/49'/0'/0'. Despite being aware of newer wallet technologies like those adhering to BIP 84, which offer even greater efficiencies by fully embracing native SegWit addresses (beginning with 'bc1'), John decides to stick with his current setup. +##### Advantage +John's decision is influenced by his desire to maintain his current UTXO set. He is cautious about the transaction fees that would be incurred in transferring his entire balance to a new wallet structure. By sticking with BIP 49, John still benefits from reduced transaction fees and improved speeds compared to legacy addresses, but he acknowledges that his setup is not as efficient as it could be with BIP 84. His choice represents a compromise between optimizing transaction efficiency and minimizing the costs associated with a complete migration to a new wallet system. + +### Example 3: BIP 84 (Native SegWit Bech32 Addresses) +#### Scenario: Maximizing Efficiency and Exploring Testnets + +##### Context +Lisa is a tech-savvy investor who keeps up with the latest developments in Bitcoin technology. She wants to use the most advanced and efficient method for managing her Bitcoin transactions. Additionally, Lisa is interested in exploring Bitcoin testnets for testing and educational purposes. + +##### Use Case +Lisa opts for a wallet that implements BIP 84, which enables the creation of native SegWit addresses that start with 'bc1'. These are Bech32 addresses, which offer benefits such as more efficient block weight usage and better error detection. For her main Bitcoin transactions, her derivation path is: `m/84'/0'/0'`. + +Moreover, Lisa is also experimenting with Bitcoin testnet. Testnets are crucial for trying out transactions without using real Bitcoin, which is an ideal environment for testing and learning. For her testnet transactions, she uses the derivation path `m/84'/1'/0'`. This path is specifically designated for testnet in BIP 84, allowing her to differentiate between real and test transactions easily. + +##### Advantage +Using BIP 84, Lisa experiences lower fees and faster transactions in her main wallet. With the addition of the testnet path, she can safely experiment and learn without risking her actual Bitcoin. This approach not only future-proofs her wallet as the industry moves towards broader adoption of SegWit but also enhances her understanding and proficiency in managing digital assets. + +### Conclusion +In each of these scenarios, the use of different derivation paths (BIP 44, BIP 49, and BIP 84) reflects a specific need and functionality in managing Bitcoin transactions: +- **BIP 44** is ideal for users like Emily, who require a structured organization for multiple types of transactions. It provides a clear hierarchical structure for different accounts under a single master seed. +- **BIP 49** benefits users like John, who seek efficiency and reduced costs in their transactions. The SegWit compatibility in P2SH format helps in lowering transaction fees and improving confirmation speeds. +- **BIP 84** is perfect for tech-savvy users like Lisa, who want to leverage the latest advancements in Bitcoin technology for optimal efficiency and future compatibility. + +For those seeking a deeper understanding of derivation paths, we recommend exploring "[Learn Me a Bitcoin". This website provides in-depth information](https://learnmeabitcoin.com/technical/derivation-paths) on the topic, and you can integrate this knowledge into our guide for a more comprehensive grasp of derivation paths. + +## Troubleshooting + +### Common Issues + +#### Check the USB Connection +- **Step 1:** Unplug the wallet from the computer. +- **Step 2:** Inspect the USB cable for any visible damage. If damaged, replace the cable. +- **Step 3:** Reconnect the wallet to the computer using a different USB port. Sometimes ports can malfunction or have poor connectivity. + +#### Restart the Wallet and Computer +- **Step 1:** Safely eject the hardware wallet from your computer. +- **Step 2:** Restart the hardware wallet. If it has a power button, turn it off and then on again. If not, disconnect and reconnect it. +- **Step 3:** Restart your computer. This can resolve issues caused by temporary software glitches. + +#### Update Wallet Firmware and Software +- **Step 1:** Check if your hardware wallet firmware is up to date. Refer to the wallet’s official website for the latest firmware version. +- **Step 2:** Update the wallet application on your computer. Ensure you're using the latest version. +- **Step 3:** After updating, reconnect the wallet and check if it is recognized. + +#### Check Device Manager (Windows) or System Report (Mac) +**For Windows:** +- **Step 1:** Open 'Device Manager'. +- **Step 2:** Look under ‘Universal Serial Bus controllers’. Check if the wallet is listed or if there are any devices with a yellow exclamation mark. +- **Step 3:** If the wallet is listed with an error, right-click on it and select ‘Update driver’. + +**For Mac:** +- **Step 1:** Click on the Apple logo and select ‘About This Mac’. +- **Step 2:** Go to ‘System Report’ and select ‘USB’. +- **Step 3:** Check if the wallet is listed under USB Device Tree. + +#### Try a Different Computer +- **Step 1:** Connect the wallet to a different computer. This can help determine if the issue is with the original computer’s hardware or software. + +#### Contact Customer Support or our Telegram Group +If none of the above steps work, the problem might be more complex or specific to the wallet. In this case, contact the customer support of the hardware wallet for further assistance. + +### Preventive Measures +- Regularly update the wallet's firmware and the computer’s software to avoid compatibility issues. +- Use high-quality USB cables and ports to ensure a stable connection. +- Avoid exposing the hardware wallet to physical damage or extreme temperatures. + +By the end of this guide, you'll be well-equipped to create and manage hardware wallets within the Specter environment and understand derivation paths. Let's get started on your journey to safeguarding your bitcoin journey. diff --git a/docs/WalletCreationGuide.md b/docs/WalletCreationGuide.md new file mode 100644 index 0000000000..9267bf74a3 --- /dev/null +++ b/docs/WalletCreationGuide.md @@ -0,0 +1,69 @@ +# Wallet Creation Guide + +## Introduction + +Specter wallets are designed to provide a user-friendly interface around Bitcoin Core, focusing on multisignature setups with airgapped signing devices, though they also support single-signature wallets. It's developed to make the interaction with Bitcoin Core more convenient for the users. + +## Types of Wallets + +### Single-Sig Wallets +- These involve one signing device or hardware wallet generating one seed. +- They are simpler and require only one secure location for seed backup. +- However, they are less secure against phishing attacks as one compromised seed can lead to lost Bitcoin. + +### Multi-Sig Wallets +- More secure than single-sig, multisig wallets require two or more signing devices to authorize transactions. +- A key feature is the quorum requirement, which specifies the number of signatures needed out of the total number of devices. For example, a common scenario is requiring 2 signatures from a total of 3 devices (2/3 quorum). This setup enhances security as it requires multiple parties or devices to agree on a transaction. +- Multisig wallets are particularly effective against phishing and theft as compromising one seed or device is not enough to access the funds. +- They offer better security, as one compromised seed doesn't result in immediate loss of funds. +- However, they are more complex to set up and require multiple secure locations for seed backups. + +#### Single-Sig Wallets Examples: + +- A user with a **Ledger Nano S** hardware wallet creating a single-signature Specter wallet for added convenience in managing their Bitcoin holdings. +- Someone who wants a simple wallet setup opting for a single-signature wallet with their **Electrum** software wallet, as they trust their computer's security. + +#### Multi-Sig Wallets Examples: + +- A group of friends setting up a multi-signature Specter wallet for a shared investment fund, where multiple devices are required to authorize transactions, enhancing security. For more detailed guidance on setting up such a wallet, [refer to our Multi-Sig Wallet Guide](multisig-guide.md). +- A Bitcoin exchange using a multi-signature setup with several hardware wallets to protect customer funds against a single point of failure. [Our Multi-Sig Wallet Guide offers](multisig-guide.md) comprehensive steps and best practices for implementing such a secure system. + + +## Step-by-Step Guide for Single-Sig Wallets + +1. **Setup and Installation** + - Download and install the Specter Desktop app from the official GitHub release page. You can [find the installation guide here](install_guide.md). + - Ensure your system meets the necessary requirements (like Python version, Bitcoin Core version). + +2. **Running the App** + - Start the Specter Desktop app. + - It should automatically detect Bitcoin Core if it's using a default data folder. + - If not, set rpcuser and rpcpassword in the Bitcoin Core's bitcoin.conf file and directly in the Specter app settings. You can [find the Node Connecting Guide here](connect-your-node.md). + +3. **Creating a Wallet** + - In Specter, navigate to the wallet creation section. + - **Important:** Before proceeding, ensure you have imported your hardware wallet device (e.g., Ledger, BitBox, Trezor) into Specter Desktop. Specter is specifically designed to enhance security by working with hardware wallets, providing an extra layer of protection compared to hot wallets. For detailed instructions on connecting your hardware wallet, [refer to the Device Creation Guide](DeviceCreationGuide.md). + - Choose the option for a single-signature wallet if you are setting up a wallet with one device. For enhanced security, consider setting up a multi-signature wallet. + - When creating a single-signature wallet, Specter will interface with your hardware wallet. **Note:** If your hardware wallet is already initialized (which is the common scenario), Specter will use the existing seed from your device to manage the wallet. There is no need to generate a new seed within Specter. It is crucial to keep your seed secure and never enter it on the computer or share it with anyone. + - **For New Hardware Wallet Users:** + If your hardware wallet is new and not yet initialized, you will need to generate a new seed as part of the hardware wallet's setup process. This is typically done directly on the hardware wallet to ensure maximum security. Follow your hardware wallet's instructions for this step. Once your hardware wallet is initialized with a new seed, you can proceed to connect it with Specter Desktop. + +4. **Backing Up the Wallet** + - After creating the wallet, it's crucial to back up the seed securely. + - For single-signature wallets, where the loss of the seed equates to the loss of funds, Specter strongly recommends storing seeds on steel. This method provides long-term durability against elements like fire and water, ensuring your backup remains intact in various scenarios. + - While still advisable for multi-signature setups, steel backups in multisig configurations are slightly less critical since the loss of a single seed doesn’t necessarily mean loss of funds, provided other signatures are available. However, it is still a best practice to secure each seed with the utmost care. + +5. **Testing the Wallet** + - It's advisable to test the wallet by sending a small amount of Bitcoin to it and then trying to access these funds using the wallet. + +## Backup PDFs + +- Specter provides backup PDFs that contain crucial information like (master) public keys and fingerprints. +- These backups do not include the seed itself. +- Keep a copy of the backup PDFs with every seed backup, but ensure they are kept private as they allow anyone to recreate the wallet and see the balance. + +## Notes + +- Always ensure the safety of your seed phrases and backup information. +- Regularly update the Specter software and your Bitcoin Core node for security and functionality improvements. +- For multisig wallet creation, a separate, more detailed guide is recommended due to its complexity. diff --git a/docs/install_guide.md b/docs/install_guide.md new file mode 100644 index 0000000000..2dbbd5a357 --- /dev/null +++ b/docs/install_guide.md @@ -0,0 +1,233 @@ +# Installation Method Decision Guide + +This guide is crafted to address the complexities and confusion users often encounter while installing Specter, a crucial tool for enhancing Bitcoin operations. Recognizing the diversity in user expertise and system requirements, a structured approach to choosing the right installation method is essential. This guide aims to streamline the decision-making process, providing clarity and direction to both novice and advanced users in their journey to effectively utilize Specter. + +## Specter Desktop Installation Methods and Their Pros and Cons + +Specter Desktop, a versatile Bitcoin wallet management application, offers multiple installation methods to accommodate various user preferences and technical skill levels. This guide outlines the available installation options, their advantages, and disadvantages to help you choose the one that best fits your needs. + + +## OS-Specific Apps for Specter Desktop + +**Ease of Installation:** OS-specific apps offer a user-friendly approach to installing Specter, making the process accessible even for those with limited technical expertise. + +**Compatibility:** These apps are tailored to work seamlessly with the operating system, ensuring optimal performance and stability. + +**Convenience:** Setting up Specter on the same machine as the Bitcoin Core node enhances convenience, as it allows for easy integration and management within a single system. + +**Targeted Updates:** OS-specific applications can receive updates and features tailored to the needs and capabilities of the specific operating system. + +## PIP Installation + +### Overview + +The PIP installation method is tailored for users who are comfortable within Python environments. It's an ideal choice for those who prefer a Python-centric approach to software installation and management. + +#### Advantages: + +- **Simplicity for Python Users:** Installation via PIP is straightforward, especially for those familiar with Python's package management. +- **Direct Control:** Users have direct control over the installation process, including version management. +- **Integration with Python Environment:** Seamlessly integrates with existing Python setups and workflows. + +#### Disadvantages: + +- **Python Knowledge Required:** Assumes familiarity with Python and its ecosystem, which might not suit all users. +- **Manual Dependency Management:** Users might need to manage dependencies manually, depending on their Python environment. + +### Ideal Use Case: + +PIP installation is best suited for users who are already working within a Python environment and are comfortable managing Python packages. This method offers a quick and efficient way to integrate Specter Desktop into existing Python-based workflows or projects. + +This addition should enhance your guide, making it more comprehensive for users with a background in Python. + +## Running Specter Desktop Using Docker + +Docker offers a robust and efficient way to install and run Specter Desktop. This method is especially beneficial for those already familiar with Docker environments. The key advantages of using Docker include: + +- **Replicability:** Docker ensures a consistent installation process, providing uniformity across different systems. This is particularly useful for users who need to deploy Specter on multiple machines or different operating systems. + +- **Ease of Setup:** Docker simplifies the installation process. By encapsulating Specter Desktop within a container, Docker manages dependencies and system-specific configurations, reducing the complexity typically associated with traditional installations. + +- **Consistent Runtime Environment:** One of Docker's main strengths is its ability to provide a stable and consistent runtime environment for applications. This consistency is crucial for maintaining stability and reliability in software operations, a key consideration for Bitcoin wallet management and operations. + +- **Isolation:** Running Specter in a Docker container ensures that it operates in an isolated environment. This isolation minimizes conflicts with other software on your system and enhances security, a vital aspect of managing Bitcoin wallets. + +By choosing Docker for installing Specter Desktop, users benefit from a streamlined, consistent, and secure installation experience, ideal for maintaining a robust Bitcoin operation environment across various platforms. + +## Integration with Node Implementations + +Specter Desktop can be seamlessly integrated with various Bitcoin node implementations, providing a comprehensive and streamlined experience for users who are already operating these nodes. This integration is especially beneficial for those looking to manage their Bitcoin wallets in conjunction with their node's functionalities. + +**Supported Node Implementations:** + +- **Raspiblitz:** Specter integrates smoothly, enhancing the node's wallet management capabilities. +- **Citadel:** This integration offers a user-friendly interface for Citadel node operators. +- **Start9:** Ideal for Start9 users seeking an integrated wallet solution. +- **Mynode:** Connects effortlessly with Mynode, offering a robust wallet management system. +- **Umbrel:** Umbrel users can enjoy a seamless integration, combining node operation with efficient wallet management. + +This approach is recommended for users who are already running these specific nodes, as it leverages the existing infrastructure to provide an integrated, efficient, and secure wallet management solution. + + +## Using Package Managers (Homebrew for macOS and Linux) + +**Advantages:** + +- Ease of Installation: Package managers streamline the installation process, making it quick and straightforward. +- Dependency Management: They automatically handle dependencies, ensuring that all required components are installed. +- Updates: You can easily update Specter Desktop with a single command, keeping your software up to date. + +**Disadvantages:** + +- Platform-Specific: This method is only available for macOS and Linux users, leaving out Windows users. +- Limited Version Control: You might not have the latest version available through the package manager if the maintainers have not updated it yet. + +## Downloading Binaries from the Specter Release Page + +**Advantages:** + +- Cross-Platform: Suitable for Windows, macOS, and Linux users, ensuring broad accessibility. +- User-Friendly: Downloading and installing binaries is typically straightforward and requires no technical expertise. +- Version Control: You have control over which version of Specter Desktop you install. + +**Disadvantages:** + +- Manual Updates: You'll need to check for updates and download new versions manually, which may be less convenient. +- Dependency Handling: Some dependencies might still need manual installation, depending on your system configuration. + +## Manual Build and Installation from Source Code (Advanced Users) + +**Advantages:** + +- Full Control: You have complete control over the build process and can customize Specter Desktop to your needs. +- Advanced Features: This method is suitable for users with technical expertise who want to contribute to the development or implement specific modifications. + +**Disadvantages:** + +- Complexity: Building from source requires a good understanding of software development, including dependency management and compiling code. +- Time-Consuming: This method can be time-consuming, especially for users not experienced with building software from source. +- Maintenance: You are responsible for keeping your installation up to date by fetching and compiling new source code. + +## Real-World Application Examples + +Here are real-world scenarios illustrating how different installation methods for Specter Desktop are chosen based on users' preferences and needs: + +1. **PIP Installation** + + **Scenario:** Alice, a data scientist, is comfortable with Python and uses it daily for her work. She prefers installing applications through Python to keep her environment consistent. She chooses PIP installation for Specter, finding it straightforward and in line with her existing Python skills. + +2. **Docker Installation** + + **Scenario:** Bob, a software developer, frequently uses Docker for his projects. He prefers containerized applications for their replicability and isolated environments. Bob opts for Docker installation for Specter, appreciating the ease of setup and consistent runtime environment it provides. + +3. **Node Implementation Integration** + + **Scenario:** Carol, an enthusiast running a Bitcoin node on Raspiblitz, wants to integrate wallet management directly with her node. She selects the integration option with Raspiblitz for a seamless experience, valuing the integrated approach and efficiency it offers. + +4. **Manual Build from Source** + + **Scenario:** Dave, a seasoned developer and Bitcoin hobbyist, seeks deep customization for his Specter setup. He is comfortable with software development and opts to build Specter from source. This method allows him the full control he desires for specific modifications and features. + + + +### Installation Method Comparison + +| Installation Method | Ease of Installation (1-5) | Customization (1-5) | Update Frequency (1-5) | Technical Expertise (1-5) | +|-----------------------|-----------------------------|---------------------|------------------------|---------------------------| +| Package Manager | 4 | 2 | 4 | 2 | +| Direct Download | 3 | 3 | 3 | 2 | +| Docker | 3 | 4 | 4 | 4 | +| Build from Source | 1 | 5 | 5 | 5 | +| PIP Installation | 2 | 3 | 4 | 3 | +| Node Implementation | 3 | 4 | 3 | 3 | + +- A score of 5 indicates the highest level of ease, customization, etc., while 1 indicates the lowest. +- This matrix is a general guideline. Specifics can vary based on the package manager and the user's technical background. + +## Installation Decision Tree +**Start Here: Choosing Your Specter Desktop Installation Method** +- Are you comfortable with technical details and customization? + - **Yes:** + - Do you require advanced customization and control? + - **Yes:** → Build from Source (Best for seasoned developers or enthusiasts seeking deep customization) + - **No:** + - Are you familiar with Docker and containerization? + - **Yes:** → Install via Docker (Ideal for consistent, isolated environments) + - **No:** → Install via Direct Download (Suitable for users comfortable with basic technical steps) + - **No:** + - Do you prefer ease of use and simplicity? + - **Yes:** + - Are you using macOS or Linux? + - **Yes:** → Use Package Manager like Homebrew (Simple and straightforward for these OS) + - **No:** → Direct Download from Specter Release Page (Easy for Windows users) + - **No:** → Use PIP (Python Package Manager) to install to any Os + +- Are you integrating with a specific Bitcoin node? + - **Yes:** + - → Choose Node-Specific Integration (Select based on the node you are operating, like Raspiblitz or Umbrel) + - **No:** → Refer back to technical comfort level and ease of use preferences + +## Installation Method Considerations + +When choosing an installation method for Specter, consider these heuristics: + +- Familiarity with Package Managers: If you are comfortable using package managers like Homebrew, they offer a convenient and straightforward installation process. +- System Constraints: Evaluate your system's limitations or constraints. Some methods may require more resources or specific system configurations. +- Need for Customization: If you require extensive customization, consider building from source, which offers the most flexibility. +- Technical Expertise: Assess your technical skill level. Less technical users might prefer simpler methods like direct downloads, while more experienced users might opt for Docker or building from source. +- Update Preferences: If staying up-to-date effortlessly is important, package managers typically make updating easier. + +## Ideal Use Case: + +This method is ideal for users who prefer a straightforward, no-hassle installation process and plan to run Specter alongside their Bitcoin Core node on the same device. It's particularly suited for those who value ease of use and system integration. + +Adding this section to your guide will provide a complete overview of all the installation methods mentioned in the PDF presentation, making it more comprehensive and useful for your readers. + +## Access Methods for Specter Desktop + +Specter Desktop offers various access methods to cater to different user needs and security preferences. These methods include: + +1. **App Access:** You can access Specter through dedicated apps available for specific operating systems. This method offers convenience and a user-friendly interface. + +2. **Local Network Access via HTTP(S):** Specter can be accessed through your local network using HTTP or HTTPS. This method is practical for users who operate Specter on a separate machine or server within their local network. + +3. **Access via Tor:** For enhanced privacy and security, Specter supports access via the Tor network. This method is ideal for users who prioritize security and wish to access their wallet remotely without exposing their real IP address. + +Each method has its unique advantages in terms of ease of use, security, and privacy. Users can choose the access method that best suits their operational environment and security requirements. + + +## Node Options for Running Specter + +Running Specter Desktop on different types of nodes has unique pros and cons that users should consider: + +1. **Full Node on Dedicated Hardware (e.g., Raspiblitz, Umbrel):** + - **Pros:** Offers robust performance and reliability, ideal for dedicated Bitcoin operations. It allows for a more secure and stable environment. + - **Cons:** Requires investment in dedicated hardware. It may be complex for beginners to set up and maintain. + +2. **Full Node on Desktop/Laptop:** + - **Pros:** Convenient for users who prefer to use existing hardware. It's a cost-effective solution without the need for additional devices. + - **Cons:** The computer's performance might be affected, and it may not be feasible to run the node continuously. There's also a higher risk of security vulnerabilities. + +3. **Pruned Node on Desktop/Laptop:** + - **Pros:** Requires less storage space, making it suitable for users with limited hardware capacity. + - **Cons:** Does not store the entire blockchain, which may limit certain functionalities and historical data access. + +Each option offers a balance of convenience, security, and functionality. Users should choose based on their technical expertise, security needs, and available resources. + +## Recent Updates +**Enhanced Electrum Integration:** Since version 2.0.0, Specter Desktop has featured integration with Electrum servers, further enhancing connectivity and accessibility options for users. Ongoing improvements in this area are expected to streamline the experience even more. + +## Future Developments of Specter Desktop + +Specter Desktop is evolving, with upcoming features and extensions that promise to enhance its functionality and user experience. Key future developments include: + +1. **Extension Framework:** Specter Desktop will support extensions, allowing users to expand its capabilities without needing to alter the core code. This will enable a more customizable experience. + +2. **New Extensions:** Planned extensions include those for connecting Specter to Swan, issuing bonds on the Liquid sidechain, importing mining rewards history from Slush Pool, fund distribution via CSV with Exfund, and building a local price database with Spotbit. + +These upcoming developments showcase Specter's commitment to growth and adaptability, catering to an expanding range of user needs and preferences in Bitcoin wallet management. + + +## Conclusion + +In conclusion, the choice of installation method for Specter Desktop depends on your technical proficiency, platform, and preferences. Package managers and binary downloads are user-friendly and suitable for most users, while Docker provides isolation and flexibility. Manual source code installation is reserved for advanced users seeking complete control and customization. Select the method that aligns with your needs to enjoy the benefits of Specter Desktop's Bitcoin wallet management capabilities. diff --git a/mkdocs.yml b/mkdocs.yml index ebb4214221..42c48b496c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -8,6 +8,9 @@ nav: - multisig-guide.md - User Guide: - faq.md + - install_guide.md + - DeviceCreationGuide.md + - WalletCreationGuide.md - 'Using Tor': tor.md - 'Signing messages': sign-message.md - Operating Guide: diff --git a/utils/docs b/utils/docs new file mode 120000 index 0000000000..a9594bfe4a --- /dev/null +++ b/utils/docs @@ -0,0 +1 @@ +../docs \ No newline at end of file