Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
faq [2019/06/21 12:35] – [Q: I get “Transaction size is too big, please optimize your wallet” or “Transaction is too big” errors, what should I do?] matej | faq [2022/10/27 21:15] (current) – [Q: How to compile a wallet on *nix?] lolitalollipop | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====Frequently Asked Questions: | ||
- | |||
====Q: I get “Transaction size is too big, please optimize your wallet” or “Transaction is too big” errors, what should I do? ==== | ====Q: I get “Transaction size is too big, please optimize your wallet” or “Transaction is too big” errors, what should I do? ==== | ||
Line 170: | Line 168: | ||
Inflation generated by the block rewards in Bitcoin has been 1,904 times bigger than in Conceal. | Inflation generated by the block rewards in Bitcoin has been 1,904 times bigger than in Conceal. | ||
+ | ===== Wallet FAQ ===== | ||
+ | |||
+ | ==== Q: How to fix “MSVCP140.dll is missing” system error ==== | ||
+ | |||
+ | If your CCX wallet doesn' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | To solve the issue, you need to install **Visual C++ Redistributable package for Visual Studio 2015**. | ||
+ | |||
+ | - Visit https:// | ||
+ | - Click **Download** and select the package for your OS. | ||
+ | - Install the file. | ||
+ | - Run CCX wallet again. | ||
+ | |||
+ | ==== Q: How to create and backup a CLI Wallet? ==== | ||
+ | - Download CLI Daemon & Wallet for your OS (or build the source code). | ||
+ | - Run concealxwallet on a terminal and generate a new address (**use a strong password**). | ||
+ | - Choose a name for your wallet. | ||
+ | - Close the wallet (Write “exit” + Enter). | ||
+ | - Run concealxwallet again, open the wallet file you have generated before. | ||
+ | - Check if the password works. | ||
+ | - Write “save” and hit Enter. | ||
+ | - Write “exit”. | ||
+ | - **Copy/ | ||
+ | - **Don' | ||
+ | |||
+ | ==== Q: How to mine? ==== | ||
+ | - Run concealxd (Daemon) on a terminal. | ||
+ | - Wait for the daemon to fully synchronize with the network. | ||
+ | - Run concealxwallet & open your wallet. | ||
+ | - Type “start_mining”. | ||
+ | |||
+ | NR - Both need to be working at the same time. (Otherwise you need to use “miner”.) | ||
+ | |||
+ | That's it. Good Luck! | ||
+ | |||
+ | ==== Q: Outputs / How to optimize your Wallet? ==== | ||
+ | |||
+ | Your balance is made up of outputs of various amounts which you've received in the past. Every time you send, some of those get combined together until you reach some amount, which is then sent to the destination, | ||
+ | |||
+ | Think of outputs as bills: you received a bill of 40 and 100 in the past, and now you want to pay something worth 120. Your wallet “burns” the 100+40 bills, create new bills of 120 and 20, sends the 120 to your recipient and returns the 20 to yourself and you're left with the bill of 20, plus whatever else you already had in the wallet. Cryptonote protocol then combines multiple outputs in a ring-signature, | ||
+ | |||
+ | Depending on how much CCX you want to transfer, you might run into the error [[https:// | ||
+ | |||
+ | With the [[https:// | ||
+ | |||
+ | The process of optimizing your wallet takes all your small incoming transactions and combines them into bigger ones by sending them to yourself. It is akin to replacing a handful of small currency bills with a single larger one. Once the process is complete you will be able to send larger transactions. You need to wait for a period of 11 blocks which amounts to 11 * 2 = 22 minutes more or less. Your funds will be **locked** during this time. | ||
+ | |||
+ | **Important: | ||
+ | |||
+ | ===CLI optimization=== | ||
+ | |||
+ | In the CLI wallet there are three commands that help you optimize your wallet: | ||
+ | |||
+ | **outputs** | ||
+ | |||
+ | This command shows you the total number of outputs in your wallet. The more outputs in your wallet, the more optimization your wallet will need to send large transactions. If you have less than 100 outputs, then you do not need to optimize your wallet. | ||
+ | |||
+ | >[wallet ccx7Pz]: outputs | ||
+ | >233 | ||
+ | |||
+ | **optimize** | ||
+ | |||
+ | When you run this command, it runs a single optimization round, usually reducing the number of outputs by a 100. You can do this over and over again until you can the desired amount. | ||
+ | |||
+ | >[wallet ccx7Pz]: optimize | ||
+ | >Money successfully sent, transaction | ||
+ | > | ||
+ | > | ||
+ | > | ||
+ | |||
+ | Then you will see that the number of outputs has reduced: | ||
+ | |||
+ | >[wallet ccx7Pz]: outputs | ||
+ | >136 | ||
+ | |||
+ | **optimize_all** | ||
+ | |||
+ | When you have thousands of outputs or want to send one large transaction, | ||
+ | |||
+ | >[wallet ccx7Pz]: optimize_all | ||
+ | >Total outputs: 396 | ||
+ | >Total optimization rounds: 3 | ||
+ | |||
+ | **Important: | ||
+ | |||
+ | ===GUI optimization=== | ||
+ | |||
+ | In the GUI wallet, the command to optimize the wallet is found under **Settings** -> **Optimize Wallet** | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | The value you see in the window is the total number of outputs in your wallet. The more outputs in your wallet, the more optimization your wallet will need to send large transactions. If you have less than 100 outputs, then you do not need to optimize your wallet. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | When you run this command, it runs several optimization rounds for your entire wallet. You can do this over and over again when you have thousands of outputs or want to send one large transaction, | ||
+ | |||
+ | **Important: | ||
+ | |||
+ | ===Fusion Transactions=== | ||
+ | |||
+ | A common issue for any service provider is the [[https:// | ||
+ | |||
+ | The solution, for anyone that uses our RPC Wallet is to use **fusion transactions** to consolidate all the smallest outputs, so that users can send larger amounts. The more outputs you have, the more fusion transactions you will need to do. Fusion transactions use a threshold value to determine how many outputs to fuse. Always use atomic units for the threshold value. For example, if you want to fuse all inputs smaller than 1 CCX, then the threshold will need to be 1000000. | ||
+ | |||
+ | Fusion transaction follows a two-part process: | ||
+ | |||
+ | - First use the estimateFusion RPC call to determine the best threshold to optimize. | ||
+ | - Then use sendFusionTransaction to fuse those outputs. | ||
+ | |||
+ | |||
+ | **Step 1 - estimateFusion** | ||
+ | |||
+ | In the examples below, we will look at using** estimateFusion** to see how many inputs we can fuse for a specific address in the wallet. If the wallet contains only one address, you can omit this parameter. | ||
+ | |||
+ | Example 1: with a single Wallet address: | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ], | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | The output: | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | Example 2: with another wallet address from the same container: | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ], | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | The output: | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Example 3: without specifying the address (this will show the total outputs for all wallets in the container: | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | The output: | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Note: Please remember that you need to specify the addresses param as an array of strings or you will get the outputs for all the addresses in your container. | ||
+ | |||
+ | **Step 2 - sendFusionTransaction** | ||
+ | |||
+ | Now that we have determined that we can use fusion transactions to optimize the wallet, we can go ahead and use **sendFusionTransaction** with the same above threshold. Once again, if the wallet only contains one address, you can omit the use of the address in the parameters. | ||
+ | |||
+ | Example: with Wallet address: | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | The output: | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Note: If you use sendFusionTransaction on an address that does not have sufficient fuseable inputs, you will get an "index out of range" error. | ||
+ | |||
+ | **Q: What happens if we have thousands of outputs?** | ||
+ | |||
+ | When dealing with a wallet where the number of smaller outputs have built up over time, then you will need to use smaller and smaller values for the threshold. In some cases, use a threshold of 10 or lower to fuse the smallest values. In the rare scenario where there are too many small outputs even at the lowest threshold, you will need to export the keys for that wallet and use the CLI or GUI wallets to run multiple optimization rounds. | ||
+ | |||
+ | ==== Q: How to compile a wallet on *nix? ==== | ||
+ | |||
+ | * git clone https:// | ||
+ | |||
+ | * cd conceal-desktop | ||
+ | |||
+ | * rm -rf cryptonote | ||
+ | |||
+ | * git clone https:// | ||
+ | |||
+ | * make build-release | ||
+ | |||
+ | * mkdir bin && mv build/ | ||
+ | |||
+ | * make clean | ||
+ | ==== Q: How to delete blockchain data and sync from scratch? ==== | ||
+ | |||
+ | First make sure you have backup of your wallet file and seed. Then delete the blockchain data. Make sure that the wallet is closed. For different OS you can find it here: | ||
+ | |||
+ | * **Windows**: | ||
+ | * **Linux**, MacOS: find the "/ | ||
+ | |||
+ | Both folders are hidden. On Windows you can just paste **" | ||
+ | |||
+ | https:// | ||
+ |