Can I mine with more than one client on a given mining pool? Is there any particular configuration required to connect to a mining pool with more than one client using the same wallet?
Do I simply start the same command line on each machine?

Nothing special to do if you're pool mining. Most pools just use your address as your "account name" and don't care if one device or 100 are mining to that address. As an example, some miners periodically point their miner to the Dev's donation address as a way to contribute.

A small caveat... it could be best to pick one pool and devote all your resources to that pool. The reason being that you build up your mining shares quicker and thus get your payout quicker (most pools have a 0.3 to 1.0 XMR minimum payout which could take a few days for small miners to achieve). On the flip side, you can probably even out your luck by mining to multiple pools... if one gets lucky and the other unlucky, you will get paid more in proportion to what you probably expected.


How can I edit a Moneropedia definition or add a new one? The Moneropedia page has some terms with very basic definitions. More concerning are the large number of important terms and definitions that are missing completely.

How can I help update Moneropedia?

Easy method:

Visit the moneropedia page
Use the open issue link at bottom of page
Login to and/or create a GitHub account
Click new
Input the Moneropedia terms and defintions you would like to add or modify
Click submit new issue
Track your request here

Edit an existing entry yourself method:

Visit the GitHub for the monero website
Login to GitHub
Make a fork of the site
Click knowledge-base
Click moneropedia
Click on the term you wish to edit
Click edit
Make your desired changes to the term definition, consistent with the existing format
Click create a new branch for this commit and start a pull request
Click propose file change
track your pull request

Add a new entry yourself method:

Visit the GitHub for the monero website
Login to GitHub
Make a fork of the site
Click knowledge-base
Click moneropedia
Click create new file
Create a new Moneropedia term and definition, consistent with the formatting for existing terms
Click create a new branch for this commit and start a pull request
Click propose new file
track your pull request


How to cross compile monero to a ARMv7 target on a x86-64 host? Is it possible to cross compile the monero source on a x86-64 machine targeting an ARMv7 device?

I tried this command:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

But I ended up with x86-64 binaries:

$ file monero-wallet-cli
monero-wallet-cli: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=...

Also, how does the dev team build the monero binaries for the ARM architecture?

The Makefile is actually just a wrapper around CMake. If you look inside, it has various ARM targets like:

release-static-linux-armv7
release-static-linux-armv8
release-static-android-armv7
...

So you would run something like:

make release-static-linux-armv7

To build for ARMv7 Linux.

There is also a section in the README on cross-compiling using the depends build system:

  make depends target=arm-linux-gnueabihf for armv7 binaries. Requires: g++-arm-linux-gnueabihf


Does monerod generates new block template on a repeat call of get_block_template? I want to know if it's safe to assume that multiple calls of get_block_template rpc method will give me the same block template until the blockchain is updated. By updating, I mean the appearance of a new block, or rebuilding the blockchain to an alternative chain, which makes the previous template invalid. I am interested in whether monerod tries to include some new transactions in the template when get_block_template is called again. And if so, is there any way I can disable this behavior and guarantee that once created, the same template will be returned to me as long as it's valid?

monerod caches the block template across calls. but will regenerate one either when a new block is added, one is removed or the txpool has changed. So one should be regenerated when a new transaction is received.
See the relevant code in blockchain.cpp:
  if (m_btc_valid && !from_block) {
    [...]
    if (!memcmp(&miner_address, &m_btc_address, sizeof(cryptonote::account_public_address)) && m_btc_nonce == ex_nonce
      && m_btc_pool_cookie == m_tx_pool.cookie() && m_btc.prev_id == get_tail_id()) {
      MDEBUG("Using cached template");

If you were to remove "&& m_btc_pool_cookie == m_tx_pool.cookie()", it would ensure receiving new transactions does not cause a new block template to be regenerated.


GUI Beta 2 Error Message (sync stuck and unable to send funds) I'm using Monero GUI Beta 2, Windows 10, and sent XMR to an exchange. I have been waiting for the blocks to synchronize for two days.
I think I have an error code. Please advise, I appreciate any help.

Payment ID: 139673d445414546a29fcfebe237258469f71599a5964938a381471e18edf164

-DM

DAEMON LOG:

2017-12-13 21:00:01.728 6240    INFO    global  contrib/epee/src/mlog.cpp:145   New log categories: *:WARNING,net:FATAL,net.p2p:FATAL,net.cn:FATAL,global:INFO,verify:FATAL,stacktrace:INFO
Height: 1400001/1464255 (95.6%) on mainnet, not mining, net hash 259.32 MH/s, v5, update needed, 5(out)+6(in) connections, uptime 0d 2h 31m 4s

2017-12-13 21:19:45.526 668 INFO    global  contrib/epee/src/mlog.cpp:145   New log categories: *:WARNING,net:FATAL,net.p2p:FATAL,net.cn:FATAL,global:INFO,verify:FATAL,stacktrace:INFO
Height: 1400001/1464262 (95.6%) on mainnet, not mining, net hash 259.32 MH/s, v5, update needed, 8(out)+8(in) connections, uptime 0d 2h 50m 48s

2017-12-13 21:24:35.590 2716    INFO    global  contrib/epee/src/mlog.cpp:145   New log categories: *:WARNING,net:FATAL,net.p2p:FATAL,net.cn:FATAL,global:INFO,verify:FATAL,stacktrace:INFO
Height: 1400001/1464264 (95.6%) on mainnet, not mining, net hash 259.32 MH/s, v5, update needed, 7(out)+3(in) connections, uptime 0d 2h 55m 38s

You're using an outdated version and therefore you won't be able to complete the initial sync nor send funds. You have to upgrade first using this guide:

How do I upgrade my software to v0.11.1.0?

This guide is applicable to upgrading from Beta 2 (v0.10.3.1) to v0.11.1.0 directly too.

Thereafter, use this guide to solve your pending transaction issue:

Transaction stuck as "pending" in the GUI


Are there any proposals to create a view only wallet that lets you see outgoing and incoming funds? I know view only wallets only let you see incoming transactions, but have there been any proposals as of 2018-05 to create a view only wallet that also lets you see outgoing transactions?

View-only wallets can see the outgoing transfers if key images are imported.

In a regular wallet, the private spend key creates a key image for any output owned by the wallet.  This happens during the scan.  The key image will be there waiting when the time comes to spend an output.  At the time of preparing a transaction, the key image will be included, and the private spend key will also have to sign the transaction.

If key images are imported into a view-only wallet, the wallet will be able to find out from the daemon whether the key image is in the blockchain's list of key images.  If the key image is there, then the wallet knows that the corresponding output has been spent.

I said it already, but note that the key images alone do not allow the view-only wallet to sign a transaction, so there is no risk of turning a view-only wallet into a hot wallet by importing key images.

To address your question more directly, there have been informal proposals for view-only wallets that have a built-in ability to see outgoing transactions, but they would require further modifications to Cryptonote, and they would not come without trade-offs.  Perhaps someone else will chime in with greater detail on those trade-offs.


Is a 50-60 H/s hashing speed normal for an Intel Core i5 4200? I was trying to mine Monero using my CPU. I am getting a speed of about 50-60 H/s. Is this speed normally what you get while mining using CPU? I am on an Intel Core i5 4200 CPU.

Seems normal. You can play with number of threads to try and get some more. Amount of CPU cache is very important as you need 2MB of it for 1 thread.

If comparing with other cryptocurrencies, note that it's a different mining algorithm (CryptoNight) and that's the reason why you're not getting similar to others like Bitcoin.


Converting Monero to fiat without KYC - exchange or Debit Card As I see it, the anonymity of Monero is all but wiped out when you attempt to convert to fiat.  You can accept XMR through Woocommerce direct to your wallet. But converting to spendable fiat is a problem without compromising privacy. I guess this is the reason crypto is never going to be a popular choice for merchants. If you are going to lose your privacy when converting it defeats the purpose of taking them as a merchant.

How does one convert XMR to GBP without KYC? I heard of UQUid, a monero to fiat card, is it good?

I have tried to find a debit card that you can top up with Monero and withdraw cash from an ATM in GBP. Does anyone know one preferably one that doesn't require KYC?

Thanks in advance for help and tips.

As I see it, the anonymity of Monero is all but wiped out when you attempt to convert to fiat. ... But converting to spendable fiat is a problem without compromising privacy.

You see it wrongly then. All that is being divulged when converting with a KYC partner is the fact that you own some Monero. The KYC partner has no knowledge of how you obtained the Monero or from whom.

  How does one convert XMR to GBP without KYC?

There are several direct ways (e.g. Bisq, LocalMonero) and even more indirect ways, where you first do an instant exchange to another cryptocurrency using any number of the instant non-KYC exchange sites (e.g. xmr.to, MorphToken), then convert to fiat on one of the big KYC exchanges.

  I have tried to find a debit card...

No.

I suggest you start by reviewing the exchanges listed on the main website: https://web.getmonero.org/community/merchants/#exchanges


Explanation of monerod `status` command Most of status is self explanatory.  But there are a couple I don't understand. I'm a complete n00b to both monero and crypto mining in general so forgive me if these are all rather elementary. I couldn't find much in terms of explanations .

net hash - why is this a rate? Don't understand how a rate has a 'net' value.
connections - 0(out)+48(in) is what I have right now.  What are these?

The "net" stands for network, ie network hash rate. Now that you mention it, I will go make a PR to change it to be more clear.

The (out) connections are those where your computer initiated the connection with some other node.

The (in) connections are those where other node initiated the connection with your computer.

They're all fully qualified connections, the difference is just in the "who called who?".


What is the latest version of GUI: 0.12.2.0? On www.getmonero.org it says that the latest version to download is Lithium Luna 0.12.2.0, but when I download the zip file, it says the zip file name is 0.12.0.0.    I'm having trouble when sending funds, as it hangs forever and then often says that daemon isn't connected.  I thought the new version may fix this, but don't see it posted for download.

This reddit thread says it all: Official GUI build is still v0.12.0.0. The one on getmonero.org claims to be 0.12.2.0 but actually is still the old version. CLI build is up to date.

If you need latest GUI, build from source yourself. If you just need the daemon/monero-wallet-cli, official CLI build is (correctly) up to date.


How can I get a transaction history of sent and received transfers for my account? I'm on Monero 'Wolfram Warptangent' (v0.10.0.0-release) and I need to get a complete transaction history of my single account. How can this be done with Monero? Can the cli wallet do this for me?

This is simply done by entering the show_transfers command into monero-wallet-cli. It will show the blockheight, in/out, date, transaction hash, recipient address (outgoing transfers only), amount, fee (outgoing transfers only), and payment ID. If you also want to obtain the private tx keys you have to enter the get_tx_key <transaction hash> command into monero-wallet-cli.


How does one provide "proof" of payment beyond txid? I have seen this discussed on Bitcointalk, but how does one prove they sent XMR to the receiver of the transaction if the recipient claims they never got it?

Is this where a viewkey comes in? What tools exist to help me use the viewkey in this situation and what information will I need to provide?

Yes, the viewkey comes in here. One can use this tool: http://xmr.llcoins.net/checktx.html

What you need:

the transaction hash
the view key of the receiving wallet, apparently you can also use the TX private key here, however, I don't know what this means... Someone can fill in here?
the receiving wallet address

When you fill these in you can check if the transaction arrived

best regards,


Fix "[P2P0]WARNING: no two valid MoneroPulse DNS checkpoint records were received" in systemd file I receive the error "[P2P0]WARNING: no two valid MoneroPulse DNS checkpoint records were received" while running my node. I know how to fix it in the command line when running manually with "DNS_PUBLIC=tcp://1.1.1.1 ./monerod" (which is odd because my dns is set to 1.1.1.1 anyway) but how can I fix it in the systemd file?

Just add Environment=DNS_PUBLIC=tcp://1.1.1.1 before the ExecStart line.


How do I, on Linux, generate a Ledger Monero wallet with the CLI and subsequently use it in the GUI? According to the release notes v0.12.2.0 includes Ledger support. How do I, on Linux, generate a Ledger Monero wallet with the CLI and subsequently use it in the GUI?

The GUI is now able to directly generate a Ledger Monero wallet. Thus, please see this Q&A:

How do I generate a Ledger Monero wallet with the GUI (monero-wallet-gui)?

We first have to ensure that we're sufficiently prepared. This entails the following:

This guide assumes you have already initialized your Ledger wallet and thus generated a 24 word mnemonic seed.
You need to run / use GUI v0.12.2.0, which can be found here. You can, if you're still running an older version, use the instructions in aforementioned Reddit post to upgrade.
You need to install the Ledger Monero app. Instructions can be found here.
All Monero related processes need to be closed.
Your Ledger needs to be plugged in and the Ledger Monero app should be running.

Now that we're sufficiently prepared, let's start!

Go to the directory / folder monero-wallet-gui (GUI v0.12.2.0) is located (note that monero-wallet-cli will be in the same directory / folder as monero-wallet-gui).
Open a new terminal
Now type:

./monero-wallet-cli --generate-from-device <new-wallet-name> --restore-height 1585000 --subaddress-lookahead 3:200

Note that  is simply a placeholder for the actual wallet name. If you, for instance, want to name your wallet MoneroWallet, the command would be as follows:

./monero-wallet-cli --generate-from-device MoneroWallet --restore-height 1585000 --subaddress-lookahead 3:200

The CLI will, after executing aforementioned command, prompt your for a password. Make sure to set a strong password and confirm it thereafter.
The Ledger will ask whether you want to export the private view key or not. First and foremost, your funds cannot be compromised with merely the private view key. Exporting the private view key enables the client (on the computer - Monero v0.12.2.0) to scan blocks looking for transactions that belong to your wallet / address. If this option is not utilized, the device (Ledger) will scan blocks, which will be significantly slower. There is, however, one cavaet. That is, if your system gets compromised, the adversary will potentially be able to compromise your private view key as well, which is detrimental to privacy. This is virtually impossible when the private view key is not exported.
You may have to hit confirm twice before it proceeds.
Your Ledger Monero wallet will now be generated. Note that this may take up to 5-10 minutes. Furthermore, there will be no immediate feedback in the CLI nor on the Ledger.
You may, after the CLI has generated your wallet, get an error about the wallet not being connected to the daemon. You can ignore that for now.
Type exit into monero-wallet-cli to close the CLI.
Note that your wallet files will be stored in the same directory / folder as monero-wallet-gui & monero-wallet-cli. This may be a bit inconvenient. Fortunately, however, you can simply copy the wallet files to a different preferred directory / folder.
Open GUI v0.12.2.0. If you have already created a wallet in the GUI, click Cancel when it prompts you for the password of your current wallet. This should bring you back to the wizard. If you haven't already created a wallet, you should automatically start in the wizard.
The first page of the wizard is language selection, which looks like this. Select your desired language to proceed.
On the second page of the wizard, which looks like this, select Open a wallet from file.
Select the wallet file (which, to reiterate, is stored in the same directory / folder as monero-wallet-gui) you just created with the CLI.
Congratulations, you can now use your Ledger Monero wallet with the GUI! If you need any general assistance with the GUI, please see this guide.

A few final notes:

I'd strongly advise to test the full process first. That is, send a small amount to the wallet and subsequently restore it (using aforementioned guide) to verify that you can recover the wallet.
If desired, you can manually tweak the --subaddress-lookahead value. The first value is the number of accounts and the second value is the number of subaddresses per account. Thus, if you, for instance, want to pregenerate 5 accounts with 100 subaddresses each, use --subaddress-lookahead 5:100. Bear in mind that, the more subaddresses you pregenerate, the longer it takes for the Ledger to create your wallet.
You only have to use the --generate-from-device flag once (i.e. upon wallet creation). Thereafter, you'd basically use it similar to how you normally use the GUI. That is:

[1] Make sure your Ledger is plugged in and the Monero app is running.

[2] Open monero-wallet-gui

[3] Enter the password to open the wallet.

If you have any further questions or need assistance, please leave a comment in this thread.


Forwarding cold signed transactions from a non matching hot wallet This SE question shows how to use cold transaction signing.

The answer suggests the need for cold and hot wallets to be for the same account.

Is it mandatory for submit_transfer ? i.e.
Can monero-wallet-cli submit_transfer signed cold transactions made by other wallets ?

Only the matching hot wallet may do submit_transfer.

Actually, that's not quite true. You could submit a transaction from another one, but this will wreck that hot wallet's idea of what's spent and what's not spent (and might error out, but only after the transaction's been relayed).

This would not be hard to change, however, and seems a useful change. Feel free to open a bug asking for this on https://github.com/monero-project/monero/issues.


How can I import a blackball database to improve my privacy? How can the blackball database that I generate be added to the Monero wallet in order to improve privacy?

A Monero blackball database can increase your privacy by avoiding outputs that are known to be spent in other transactions. You wallet will ignore these "bad" outputs and select other "good" outputs instead.

Acquiring the Database

You can acquire a database in several ways, but it's best to build the database yourself. See this answer on how to run the tool. Make sure to convert it from the LMDB file to a text file readable by the software.

If you prefer to trust someone else to provide the database, you can download one at moneroblackball.com.

GUI

To import the blackball database in the GUI, open the program, click on Advanced then Shared RingDB. This will pull up a list of several options. We are interested in the first box here. Click Browse and select the data.txt file you have created or downloaded. Then press Load. It may take a while to load the database, and there is no progress bar at this time. The GUI will become unresponsive while the database is being loaded.

CLI

After opening the CLI, run blackball <filename> add

Example: blackball /home/data.txt add

Note that the file path in the wallet must not contain any spaces.


How does the miner know the public key for the signature in the block? When a block is being processed by the miner he has to verify the signature by using the public key. How does the miner know about this public key?
Is it included in the block data?

The miner searches for a hash that is a valid solution to the mining puzzle at the current difficulty level. The mining software trusts whatever node it is told to trust by the person that runs the mining software. If the miner is being sent invalid blocks with invalid transactions, the miner won't notice, because it's not the job of the miner to validate blocks. That's the job of the node. If the miner finds a solution and broadcasts the solved block back to other nodes, those other nodes will ignore that block if it is invalid.

Transactions contain the public keys of the outputs created in those transactions. The transactions contain "inputs", which are references to the public keys of outputs that were created by prior transactions.

Therefore the node looks up a database it keeps of outputs created via previously mined transactions to know the public keys that need to be checked as part of the transaction validation process. These newly received and validated transactions are pulled into a block template by a miner which will attempt to solve the mining puzzle, and if successful will then broadcast the solved block to the world via the node it is connected to.


How do miners attempt to avoid duplicating nonces of other miners? Do they try? In a very general sense, most people who know about cryptocurrency mining understand that for every block in a proof-of-work blockchain there is a new "challenge" for the miners, and that challenge is to successfully solve a math problem.

Going a tad deeper, people a little savvier may know that the way to solve the math problem/challenge is really guessing-and-checking - over and over again - to try to be able to present to the network a value that when hashed will provide a winning solution.

To be more specific, a winning "solution" is a nonce (number) that, on average, proves that a miner performed the work to "solve the math problem."  The network can easily verify the solution.

I oversimplified, but it's not terribly important to my question.  My question is: how do miners attempt to avoid duplicating nonces of other miners?

Some considerations I'm curious to know are:

How are nonces chosen?
Once a starting spot is chosen, does a miner go sequentially?
Does a miner's hash rate play a role in which nonces it tries?
Is there a decent chance that solo miners will hash the same nonces?
Is there a decent chance that similarly-sized pools will hash the same nonces?
Do miners use a random number generator?

If so, does that process affect the number of hashes a given system will produce?

In general, are there mechanisms in place to inherently make different miners produce unique hashes?

There's no need to worry about duplicating nonces between miners/pools because they construct the block header, which contains the merkle root of all txs in the block, one of which is the coinbase tx that will payout to the miner/pool. So, the block header is different for every miner, so no need to worry about duplicating nonces.

As knaccc points out in the comment below, pools will also assign each miner a so called "extra nonce" to prevent miners at the same pool from duplicating work.


monerod v0.13.0.4 being killed / crashed randomly it seems Below is the screenshot of when it got killed and also the bitmonero.log file.

I started monerod with the command:

./monerod --block-sync-size 10

What could the issue be?

To quote @moneromooo-monero:

  That's the OOM killer. Free more memory.


How can I buy 'Mastering Monero' via XMR? 'Mastering Monero: The future of private transactions' is now available on Amazon. How can I buy it paying with XMR?

Until an option to buy it directly through Monero will be available (you can check it on https://masteringmonero.com/), you can buy 'Mastering Monero: The future of private transactions' with XMR in this way:

use https://xmr.to/ to convert Monero in Bitcoin
use converted coins to buy a gift card for Amazon at https://www.bitrefill.com/ or with another similar service
use that gift card to buy 'Mastering Monero' on Amazon at https://www.amazon.com/dp/1731079966/


When is monero "unlocked balance" updated? I just sent some coins out and now my unlocked balance is zero, but my balance shows a positive. How long do I have to wait to get it to update my unlocked balance?

This looks like a dublicate from here.

You would need to wait 10 blocks, or about 20 minutues until your wallet shows the coins as balance and not as unlocked.


How to set up a mining pool on Ubuntu 20.04? I know a similar question has already been asked, but it was 3 years ago, so I asked the question again so that the methods are relevant

See nodejs-pool for a javascript pool or monero-pool for a C based pool.


Desktop GUI wallet not syncing I've received two transactions on this wallet previously.  The last time I opened this wallet it would not completely sync up, just stopped.  I tried the suggestions on one post here, first deleted p2pstate.bin, then changed --block-sync-size 10, then deleted data.mdb and attempted to resync from scratch.  It got to over 99% but is stuck at 2889 blocks remaining (not sure how to figure which block that is).  Do I need to update my wallet, it was downloaded from the getmonero site in Aug.  If I update, does it keep the original keys etc. so I keep the transactions? because there is one in progress that I haven't received yet - thanks!

It got to over 99% but is stuck at 2889 blocks remaining (not sure how to figure which block that is) Do I need to update my wallet, it was downloaded from the getmonero site in Aug

Based on the above and the approximate timing of your question it sounds like you are stuck on block 1,400,000 which was the block height of the 0.11.0.0 "Helium Hydra" fork. You will need to update using these instructions

  If I update, does it keep the original keys etc. so I keep the transactions?

Yes, if you follow the instructions in this link all of that data will be retained


Monero blockchain size requirements I am thinking of running a local node, and I was wondering how much space is needed.

I know that the current blockchain size is less than 50G.

I heard that implementing bulletproofs will significantly shrink the blockchain size.

How much space will the full blockchain need if bulletproofs is enabled?
When will bulletproofs be enabled?
How much space is required now to run a local node? 60GB?

Thanks.

Bulletproofs are coming soon, but ensuring they are implemented flawlessly will take priority over meeting any particular schedule. You can follow the Monero dev meeting logs for updates here: https://monerobase.com/

Bulletproofs are a replacement for range proofs, and will greatly reduce their size. However, the size reduction will apply only to new transactions that are added to the blockchain, and not to existing transactions.

Your estimate of around 60GB is correct as of September 2018, but of course you will want to ensure more space is available for the blockchain to grow.


Trying to better understand monero mining I'm attempting to write a monero miner in PHP (I know PHP). I'm not after hashing speed I'm after understanding what is happening.

I have looked over the "CRYPTONOTE STANDARD 008" document that seems to explain what to do once I have the block data, what I'm not sure about is the input I am supposed to run the Keccak hash on.

First, the input is hashed using Keccak [KECCAK] with parameters b =
   1600 and c = 512.

Any code samples in PHP would be greatly appreciated.

Keccak is nearly SHA-3.

Taken from CryptoNoter

  SHA-3 is based on (a particular instanciation of) Keccak, but with a couple minor differences from the original Keccak. Cryptonote was made before SHA-3 standardization.
  - user36303


Do sub-addresses and disposable addresses have their own private viewkeys and spendkeys? I was just wondering since disposable addresses and sub-addresses are derived from the main wallet address.

No.

Given an output pubkey P in a new transaction with its tx pubkey being R, you can recognize it as your incoming transfer by using your private viewkey a, looking for P - Hs(a*R)*G in your hashtable and finding an entry recoding the sub-address's index j. Its private key P=x*G is obtained as x = Hs(a*R) + b + Hs(a || j). So you need both of the original private view and spend keys for receiving funds transferred to sub-addresses and disposable addresses.


get_bulk_payments - Method not found I'm trying to figure out how to process incoming payments and I'm stuck on the get_bulk_payments call...

Looking at the examples around, I was expecting to be able to type this:

curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_payments","params":{"payment_id":"4279257e0a20608e25dba8744949c9e1caff4fcdafc7d5362ecf14225f3d9030"}}' -H 'Content-Type: application/json'

And get details of payments to that payment id.

However, I'm getting this:

{
  "error": {
    "code": -32601,
    "message": "Method not found"
  },
  "id": "0",
  "jsonrpc": "2.0"
}

I'm running the Windows executable monerod.exe version v0.12.3.0

Can anyone help?

get_bulk_payments is not a monerod RPC, it's a wallet RPC.
Run monero-wallet-rpc, and connect to its RPC port to use get_bulk_payments.

BTW, you wrote "get_payments" in the query JSON, not "get_bulk_payments".


Validate a job's result in a proxy pool I'm writing my own proxy pool implementation.
I have problem with share verification.

I received a job from upsteam mining pool:

 job={
  "blob": "0c0ccdb490f2053f393023bdc102f7bf4c63be5c64569dc0b57ab94e9881fd66157995b679adc700000000767cb11fc62b2bde9fb8eae21058d99ad317482bfdbcc1956d766888dd4d475709",
  "job_id": "333",
  "target": "dc460300",
  "seed_hash": "154eb7a21cd32a597f985644187297607bad491650091620550877239c4178e1",
  "next_seed_hash": "",
  "height": 2032062
}

Sent this work to the miner. And miner submitted work with following result:

share={
  'id': '1',
  'job_id': '333',
  'nonce': '38870000',
  'result': 'f54a858a87f0f5bc9f3e75fba670a11cfdaf87b650d4189f50601597c8650200'
}

I want verify if the solution is correct. I'm using python and pyrx. The steps that I take to complete the verification:

Insert share['nonce'] from miner into job['blob'] to 39...43 bytes:

0c0ccdb490f2053f393023bdc102f7bf4c63be5c64569dc0b57ab94e9881fd66157995b679adc7*00000000*767cb11fc62b2bde9fb8eae21058d99ad317482bfdbcc1956d766888dd4d475709

0c0ccdb490f2053f393023bdc102f7bf4c63be5c64569dc0b57ab94e9881fd66157995b679adc7*38870000*767cb11fc62b2bde9fb8eae21058d99ad317482bfdbcc1956d766888dd4d475709

Hash this blob:

In [24]: blob = '0c0ccdb490f2053f393023bdc102f7bf4c63be5c64569dc0b57ab94e9881fd66157995b679adc738870000767cb11fc62b2bde9fb8eae21058d99ad317482bfdbcc1956d766888dd4d475709'

In [25]: hashing_blob = pyrx.get_rx_hash(blob, job['seed_hash'], job['height']).hex()

But I got unequal results with share['result']. I am sure that the answer is correct. The original pool accepted this work. Where am i wrong?

In [37]: hashing_blob == share['result']
Out[37]: False

In [38]: hashing_blob
Out[38]: '4fa368b991c8320c9c2ad1b80566f67439e789b329e0c33119b072aa7f2782e9'

In [39]: share['result']
Out[39]: 'f54a858a87f0f5bc9f3e75fba670a11cfdaf87b650d4189f50601597c8650200'

You are trying to hash a hex string not binary data.

Working example:

import pyrx
import binascii
import struct

def pack_nonce(blob, nonce):
    b = binascii.unhexlify(blob)
    bin = struct.pack('39B', *bytearray(b[:39]))
    bin += struct.pack('I', nonce)
    bin += struct.pack('{}B'.format(len(b)-43), *bytearray(b[43:]))
    return bin

seed = binascii.unhexlify('154eb7a21cd32a597f985644187297607bad491650091620550877239c4178e1');
nonce = struct.unpack('I',binascii.unhexlify('38870000'))[0]
blob = "0c0ccdb490f2053f393023bdc102f7bf4c63be5c64569dc0b57ab94e9881fd66157995b679adc700000000767cb11fc62b2bde9fb8eae21058d99ad317482bfdbcc1956d766888dd4d475709"
bin = pack_nonce(blob, nonce)
height = 2032062
hash = binascii.hexlify( pyrx.get_rx_hash(bin, seed, height) )
print(hash)

Which results in: f54a858a87f0f5bc9f3e75fba670a11cfdaf87b650d4189f50601597c8650200


How does the back-end of the upcoming MyMonero app look like? I was wondering if the backend (that I understand fluffypony will be running) will be just a regular full node. If not, how does it differ from a regular full node?

Also, could I run the MyMonero app against my own full node instead of fluffypony's backend?

See here for one working open-source implementation.

As understood, it is planned to release "official" open-source backend as well:

  In fact, in the near future, even the above trade-off will be eliminated as we're presently working to open-source a version of the back-end, which anybody can run as their own server at home.

There's a plan for some back-end overhaul as well:

  In progress by vtnerd Complete overhaul of back-end, and replacement of polling with sweet push-based synchronization (Issue #46)

So yeah, the plan is to let everyone run their own back-end, as indicated here. Quoting fluffypony:

  He's done excellent, excellent work - we've spent months on this, and hopefully it'll make MyMonero a significantly safer service to use, especially when you use it with your own node.


Help me setup a good mining rig on my high end gaming computer I will put down my computer setup here:

CPU: Intel core i7 7820X Skylake-X.3.60GHz
MB: MSI X299 SLI PLUS Skylake-X. (MS.7A93)
Memory: DDR 4. 32GB, 2400MHz
GPU: NVIDIA GeForce GTX 1080 8GB GDDR5X
Clocks: Core 139MHz, Memory 405MHz.
Internet speed: FIBER net. 100MB/S up and down. 4MS latency.

How can I setup that machine as a mining rig in the most efficient way?

Its really not that hard.

Create your wallet (GUI works well)

install:
XMR-Stak

XMR-Stak seems to work well (one unified version for CPU & GPUS:AMD/NVidia).  I did build it for linux, but there are prebuilt versions.
Then fire it up, answer questions (no to nicehash, and probably no to multiple pools) and point to to a pool (monerohash.com, xmrsupport.com, etc. Avoid minergate at ALL costs)
You can tweak settings in the .config file. (if Windows use notepad, NOT wordpad, word to edit the config.  ultra basic text file, no formatting codes)  Most pool sites have guides.
Basically you point it at an address and port.  Some want a user:password, typically just an email address.

While your mining your XRM, run monerod to fully sync your node.  It will be sync'd before you get a payout from a pool.  (wallet won't show balance until fully sync'd)

But to give you some insight:  I'm running a I7 (some version) 32GB and 3 GTX 1070's (8GB) and getting about .08 XMR a day.
(But I built the rig for password hashes not mining)


If I wanted to run a Monero node would I be able to limit the number of inbound connections? I remember trying to set one up before and one of the issues I had was trying to limit the number of inbound connections.

edit: by connections, I am referring to the number of peers connected at one time

monerod currently can only be set to limit outgoing connections with the parameter --out-peers where the default is 8.

So if you setup your node to be reachable for the public, you can't limit incoming connections. However, you could use a firewall like iptables to limit incoming connections on your public port.


Could a blackballs list be used maliciously? I do not see any way to trustlessly generate a blackballs database without running full nodes for malicious fork coins, which I do NOT want to do (and don't even have hardware resources to do). However, I need a working blackballs database to protect my rings against using outputs which are publicly known to be compromised across chains. Rock, meet hard place, with privacy-conscious users in between.

In this discussion on another question, a helpful user is distributing a blackballs list. As I observed it, it lists 16,427,618 txids 64-digit hex strings (Edit: see my comment to user36303's helpful answer). I appreciate the apparent helpfulness; however, hmmm... Attack: Distribute a malicious blackballs list containing 16,427,618 txids 64-digit hex strings which should not be blackballed. If I grok, this would be much worse than useless: It would significantly skew the probability toward randomly selecting outputs which should be blackballed.

Additionally, if the malicious blackballs database is large enough, I hypothesize that distributing different versions to different users may fingerprint them by differently skewing the distribution of output selection. I am less worried about this, due to the magnitude of numbers involved. I doubt it is a useful attack.

Note: I am not 100% sure of any of this. I have expertise in other coins, but I'm a n00b with XMR. Trying to do my homework, avoid common pitfalls.

A blackball list is a set of outputs which are known to be spent - or so the claim is. As you surmise, if that list lists outputs which are not known to be spent, but does not list outputs which are known to be spent, this will indeed cause the wallet to use a weaker ring.

If you do not want to scan the blockchains yourself, a way to mitigate this is to ge lists from two different sources and compare them. At the moment, sgp is planning on making such a list available in the near future.

Last, txids aren't blackballed. The blackballing process is done at the output level, since an transaction might create an output which is later known to be spent, and another which is not. For reference, there are currently about 29 million outputs, and 4.9 million transactions on the Monero blockchain. This makes the 16 million txid number highly suspect.


How exactly does "unlock_time" work? Monero transactions have something called "unlock time", that prevent transactions from being spent until a certain time in the future. I'm wondering how exactly that works.

Can a transaction with a "unlock time" component be published to the blockchain before the unlock time?

If no, this means the output it is paying into is locked until that time. Can you send from that output if the transaction it is in also has a unlock time, and that unlock time is in the future?

Can a transaction with a sooner unlock time override it, even after its on the block chain.

A transaction with a non default unlock_time will be mined as normal. However, its outputs will not be able to be used as inputs in another transaction before that time (which can be either a blockchain height, or a UNIX time in seconds).

Your second question is confusing.

You can't override a tx (except with a double spend attack sending conflicting txes to separate parts of the network), and having a non default unlock_time is irrelevant to this.


How are the other inputs chosen with MyMonero? Riccardo Spagni said in an interview somewhere (I will edit this if I find the right one) that MyMonero uses a different input selection algorithm than the official CLI and GUI wallets. How are the other inputs selected in MyMonero, and why is a different selection mechanism used?

Note: I am currently maintaining the Mymonero backend.

Mymonero currently selects outputs at random over the complete set of possible outputs. So guessing the real output is not necessarily trivial. The wallets try to select dummy outputs with a bias towards newer outputs, based on research indicating that there is a bias towards the real output being spent shortly after receival. Mymonero uses this alternative algorithm primarily due to historical significance (i.e. some past maintainer implemented it that way). I honestly did not think about this portion of the code until someone pointed it out to me ~2-3 months ago - it was in the "if it ain't broke, don't fix it" category previously.

More recently it has not changed because the required APIs from the daemon are binary and the web-facing client is written in GO. So grabbing the information is not "dead-simple". I was hoping the ZeroMQ patches would make it into v0.11 so that all calls into the daemon could be updated at the same time. But that patch didn't make it into the last release, so an interim solution may have to be applied now.

UPDATE: mymonero now uses the get_random_outs RPC from a monerod daemon.


Does bisq have a monero premium when buying? Where can one see if bisq has a premium when buying monero using bitcoin or ethereum?

You can check on a service like CoinMarketCap.


How secure is connecting the monero wallet via SSH tunneling to a self run remote server? Since running the monero daemon to sync with the blockchain requires substantial bandwidth and uptime, I have recently switched to connecting my wallet (with the local wallet files) to a remote instance on my own publicly available server (without the wallet files). I am using a SSH tunnel (-L 18081:localhost:18081) to map my local port to the servers port - now my only concern is the security of this approach. Is there any way to intercept the communication between wallet and daemon - or even worse the password etc?

The wallet password is never transmitted. Tunneling through ssh should be safe, assuming you have a good ssh key.


Explanation of how exactly the pederson commitments in monero work? so lets say for the first commitment (after a mined transaction)

let a = miner_reward

this is a known number.

to generate the first commitment, one does;

input = x.G + a.H; output = x.G + a.H

Then using diffie-hellman the sender lets the receiver know the values of both x an a. The problem is, if the receiver now wants to spend the outputted commitment, he must add a further layer of masking/encryption. Because if he doesn't and some malicious actor down the road receives a payment, all the bad actor has to do is reveal x, and everyone in the chain that used x as a blinding key, will have their amounts compromised.

So my question is, how exactly does the receiver add the further encryption to the commitment? Proofs of why its valid would be nice as well.

Blinding factors are random numbers that are only used once per commitment. No two commitments should ever share the same blinding factor, even if they're for the same amount. The blinding factor is generated by the sender and communicated to the receiver in encrypted form using the DH shared secret (as you've pointed out).

If the existing commitments for inputs were used in transactions spending multiple inputs (known as RCTTypeSimple transactions), if one real input ring position was revealed, this would reveal all real input ring positions in the transaction.

Therefore for transactions spending multiple inputs, you avoid this problem by creating new commitments for the inputs you're spending, and these are called "PseudoOuts" in the transaction structure. See Is the 'pseudoOuts' of 'rctSig' the commitment on input amounts for simple RCT


monero-wallet-cli Remote Mining Intermittently works I am mining Monero using Remote Nodes. To mine, I use the following command:

sudo ./monero-wallet-cli --daemon-address eu.node.moneroworld.com:18089 --trusted-daemon

The nodes are from moneroworld.com/#nodes

When I run the "start_mining" command sometimes it works, other times it says:

Error: wallet failed to connect to daemon: eu.node.moneroworld.com:18089. Daemon either is not started or wrong port was passed. Please make sure daemon is running or change the daemon address using the 'set_daemon' command.

Why is it so intermittent?

Public remote nodes should not be used for mining. Remember the mining happens on the remote node, not your local machine, so you would be using precious resources of the remote public node. If it is your own private remote node, fine.

  Why is it so intermittent?

Probably because the remote node is stopping you, as it should, from leeching it's resources.


What will the Monero Research Lab be working on in the future, after RingCT has released? Will they be looking more into quantum proofing the Monero protocol or Cuckoo Cycle testing etc?

Monero Research Lab Publications MRL-0001 to MRL-0005 have been published.

MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols
have been started.
According to fluffypony

  The difficulty research that Surae was working on is quite extensive, but incomplete.

EDIT: as of November 17th, it appears MRL-0006 will be renamed MRL-0007.

  Someone would have to pick it up and run with it, as Surae is basically burnt out on difficulty and has moved on to other challenges:)

A version of MRL-0008 - Ring Multisignature exists but is not published yet.


What does "Error: Failed to find a way to create transactions" in simplewallet mean? I get this error message when I try to send the full balance from monero-wallet-cli / simplewallet. Reducing the amount to cover the fees makes the error message go away.

So does this simply mean "Your remaining balance is not enough to cover the fees" or is there something else wrong?

This means exacly:
"not enough money to transfer, available only xx.xx0000000000, transaction amount xx.xx0000000000 = xx.xx0000000000 + 0.040000000000 (fee)"

You trying send everything? If you have 10xmr and want to send everything you must send 9.6 to cover the fee.

Check wallet log file to find out first what the fee is, because it depends on mixings and amount being sent.


getbalance json-rpc call just gives one big integer When i run the curl command:

curl -X POST http://127.0.0.1:18082/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getbalance"}' -H 'Content-Type: application/json'

It gives me a balance like so:

{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "balance": 140000000000,
    "unlocked_balance": 50000000000
  }
}

It's just one big integer, how do i convert it into the real balance?

It impossible to just add a decimal place because i don't what the actual balance is.

The "human friendly" amounts have a decimal place at 12 digits, so in this case, 140000000000 atomic units would be 0.140000000000 monero.


how to estimate profit from pools? For what I've seen so far this topic hasn't been adressed before.

In my case I have a crap computer with an intel i3 with a hash rata around 27h/s. Obviously there is no way to make profit with such a low hash rate, so I thought maybe I should join a pool.

The calculators however regarding pools are a bit confusing to me.

For example, I know that in a pool each miner gets a share according to what he gives. So if a pool has 487Mh/s does this mean I will get a decent share?

How can I estimate the profit in my case?

Thanks in advance

You should not consider the pool hash rate in your profits calculation.
Pool hash rate influence the variance in block finding frequency but not your profit. A lower pool find less blocks but you get a bigger reward of each.

For your calculation take the ((your hashrate) / (the network hashrate)) * (720 blocks per day) * (block reward) = XMR/day


NetworkByte for Monero Stagenet We're using the code here to generate XMR addresses by providing our own mnemonic.

The website above uses networkByte = 12 for Monero Mainnet and networkByte = 35 for Monero Testnet.

But I was wondering if anyone knew what the networkByte is for Monero Stagenet?

The stagenet address network bytes are defined in decimal in the file https://github.com/monero-project/monero/blob/3ad4ecd4ff52f011ee94e0e80754b965b82f072b/src/cryptonote_config.h

uint64_t const CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX = 24;
uint64_t const CRYPTONOTE_PUBLIC_INTEGRATED_ADDRESS_BASE58_PREFIX = 25;
uint64_t const CRYPTONOTE_PUBLIC_SUBADDRESS_BASE58_PREFIX = 36;

In hex these numbers are 18, 19, 24 respectively.


Compile (or download binary) XMR-STAK-CPU for armv8 I rented - as an experiment - a dedicated ARMv8 server. I trying to compile xmr-stak-cpu. I am running into the same issues as mentioned in:
https://github.com/fireice-uk/xmr-stak-cpu/issues/102.

Is there a working XMR miner on ARMv8 currently?

BR, Rene

It's possible, at least I managed to build XMR-STAK-CPU for Apple mobile CPUs, which are ARMv8. Though SSE instructions have to emulated with NEON instructions, it works pretty performant.
Some details on the experiment are here.


monerod --test-drop-download vs --fast-block-sync As per the help command

--test-drop-download : For net tests: in download, discard ALL
blocks instead checking/saving them (very fast)
--fast-block-sync arg (=1) : Sync up most of the way by using embedded, known block hashes.

What is the difference between these two modes of syncing?

The help strings pretty much describe the differences.

The --test-drop-download version wont save the blocks, it's used for testing downloading of blocks.

The --fast-block-sync is a mode for normal operation (not testing) which will still save the downloaded blocks.


Monero wallet RPC does not use HTTPS? The examples on https://www.getmonero.org/resources/developer-guides/wallet-rpc.html for using the monero wallet rpc has all the examples running over http not https and I can't seem to get them to work over https.
Is this not supposed to use https?

Both the RPC wallet and daemon support SSL.
$ monero-wallet-rpc --help | grep ssl -A 3
  --daemon-ssl arg (=autodetect)        Enable SSL on daemon RPC connections:
                                        enabled|disabled|autodetect
  --daemon-ssl-private-key arg          Path to a PEM format private key
  --daemon-ssl-certificate arg          Path to a PEM format certificate
  --daemon-ssl-ca-certificates arg      Path to file containing concatenated
                                        PEM format certificate(s) to replace
                                        system CA(s).
  --daemon-ssl-allowed-fingerprints arg List of valid fingerprints of allowed
                                        RPC servers
  --daemon-ssl-allow-any-cert           Allow any SSL certificate from the
                                        daemon
  --daemon-ssl-allow-chained            Allow user (via --daemon-ssl-ca-certifi
                                        cates) chain certificates
  --rpc-ssl arg (=autodetect)           Enable SSL on RPC connections:
                                        enabled|disabled|autodetect
  --rpc-ssl-private-key arg             Path to a PEM format private key
  --rpc-ssl-certificate arg             Path to a PEM format certificate
  --rpc-ssl-ca-certificates arg         Path to file containing concatenated
                                        PEM format certificate(s) to replace
                                        system CA(s).
  --rpc-ssl-allowed-fingerprints arg    List of certificate fingerprints to
                                        allow
  --rpc-ssl-allow-chained               Allow user (via --rpc-ssl-certificates)
                                        chain certificates

$ monerod --help | grep ssl -A 3
  --rpc-ssl arg (=autodetect)           Enable SSL on RPC connections:
                                        enabled|disabled|autodetect
  --rpc-ssl-private-key arg             Path to a PEM format private key
  --rpc-ssl-certificate arg             Path to a PEM format certificate
  --rpc-ssl-ca-certificates arg         Path to file containing concatenated
                                        PEM format certificate(s) to replace
                                        system CA(s).
  --rpc-ssl-allowed-fingerprints arg    List of certificate fingerprints to
                                        allow
  --rpc-ssl-allow-chained               Allow user (via --rpc-ssl-certificates)
                                        chain certificates
  --rpc-ssl-allow-any-cert              Allow any peer certificate

If none of the options are specified, the default (--rpc-ssl arg (=autodetect)) applies, which causes the wallet/daemon to present a self-signed certificate to any client that attempts an SSL connection - it's then up to your client to either allow or reject this self-signed certificate. If you already have a CA signed cert, or any other you'd like to use, then start your wallet/daemon with the relevant options.


Old dust that has never been swept. Denominations and other enhancements weren't around when Monero launched.


Monero wallet packet sniffing I've been comparing the weaknesses of Monero and Bitcoin. Following from this about bitcoin packet sniffing. I'm just wondering what an attacker can do if he's on my LAN and can sniff packets on the network.
As for the case for Bitcoin, an attacker can see when you send a transaction that you didn't receive, which means it must've came from you.
Questions:

Is this the case for monero too?

If I make a transaction can he decode the packet's payload? can he figure out what addresses are in my wallet? private keys?

Any other informations revealed?

Monero makes no attempt to encrypt or obfuscate the data being sent between peers. A passive attacker could monitor the transactions in the same manner to identify the IP that originated a particular transaction.

Unlike Bitcoin, Monero transactions always use ring signatures and always mask recipient addresses (I don't remember if the latter is enforced by the protocol, but the provided wallet always does this). Ringct is also an enabled by default option which masks amounts being transferred. So an attacker with only the information from a single transaction will be unable to determine who is receiving XMR, how much XMR was sent, or which transaction the XMR was originally sent to you.

However, this should not be ignored for privacy  leaks. If you send XMR frequently to another person, an attacker passively monitoring both parties will know with increasing probability that you have sent XMR to this person. In other words, the probability of someone consistently using your transactions in a ring signature are low.

There should be some further critical leaks from this technique - I haven't thought about this particular issue much. The integration with kovri will hopefully increase the difficulty for attacks based on passive transaction monitoring. The goal is to broadcast transactions through I2P by default, to obfuscate their origin.

Edit: I should mention that neither your public nor secret keys are transmitted from your wallet to the node. This is true for both spend and view key. And currently the wallet asks for every transaction, so there isn't an obvious leak between wallet and node. However, I would still recommend encrypting traffic between wallet and node, or running both on the same machine. And if you use monero-wallet-rpc with non standard software things change slightly too.


i2p/Kovri fundamentals in Monero Have the fundamental properties of Kovri been decided upon for Monero?

In particular, I'm curious about the IP configuration for the i2p/Kovri router. i.e. Will it be auto-detect methods, or hidden mode, etc.?

Hidden mode is the default in Tails i2p configuration, and I assume this is for increased anonymity. However, hidden mode can mean it takes a long time to integrate the router into the network. How will this be dealt with in Kovri, since users are likely to open the wallet just briefly to transact?

Keep up the awesome work devs.

Kovri for all intents and purposes is dead and development towards an I2P Java Router lite alternative continues with I2P-zero and tini2p.

As of September 2, 2019, I2P via proxy is supported in Monero. To run in this mode, start monerod with the options --proxy i2p,127.0.0.1:9000 (for outbound connections) and --anonymous-inbound cmeua5767mz2q5jsaelk2rxhf67agrwuetaso5dzbenyzwlbkg2q.b32.i2p:5000,127.0.0.1:30000 (for inbound connections). See ANONYMITY_NETWORKS.md for information.


Help to Setup a Monero mining farm $4000 Budget After to try some pools and alt cryptocoins by some weeks, I'm now really serious about to make a Monero farm because I believe in this potential, Monero is Awesome!

Today I mine in DwarfPool, just more couple of days to get my 0.1 XMR to try others pools or mine solo.

My miners today:

A raspberry pi 3 running cpuminer-multi – Was very fun configure this
mini miner with 10h/s, but soon he will be only my media center,
arcade and cold storage
My computer brings 66h/s (4 threads) with a i5 2400 running cpuminer-sandybridge-ivybridge and 528h/s with a R9 380 (which could be better if I try a new BIOS, but I’m afraid to damage it, but could try later) running Claymore 9.7. This CPU has 1 Pci-e and 2 mini Pci but only 1 miniPciE is usable with a GPU attached in the main PCie slot
A notebook i7 2630QM was unused last 3 years then I put it to work is making about 66/hs with 8 threads (same of i5, notebook sucks).
2 Computers i3 2120 running cpuminer-sse2 who brings together about 50/hs (They are fileservers and stay idle most of time anyway and for
these 2 the energy is free).

My unused equipment:

A i 650 with 2GB RAM (was 4GB before one of Ram finish) with 2 PCie slots free working but only missing it’s PSU
A Empty thermaltake Element G - http://www.thermaltake.com/products-model.aspx?id=C_00001440  (My finished i7 720 was here 6 months ago after six years of fun, I love this case, really).

What are coming next week (Already bought):

A Rx580 8gb Sapphire Radeon Nitro+ (https://www.newegg.com/Product/Product.aspx?Item=N82E16814202293)
A PSU Sharkoon WPC650 650W ATX 80 Plus Bronze to put into unused i5 650 or with other new pc with my element G Case.

I’d like suggestions to make a effective farm using pcs to mine Monero and maybe Etherium in the future. I have more $4000 to spent but I’d like to keep and use these 3 cases not a rig to stay simple and not to worry my family with using more space, that why I’m thinking only in GPUs inside these 3 cases and any device who has a processor and can mine (if my 3DS and old iPOD 3Gs could mine, they would be working now).
I was thinking to use this Rx580 with i5 650 and buy to another one or I could buy a Ryzen 7 1800X or a Ryzen Threadripper 1920X (but I don’t know if Worth to mine) with a Motherboard who can hold 3 GPUs then I could to get more 3 Rx580, a SSD, 16GB RAM (2x8GB DDR4) and a PSU good enough.

Is there any advice?

Is worth to use EthOs in these PCs during dedicated mining?

I don’t want make profit now, if the mined coins pay the energy bill and If I can keep the change its ok, with Monero and others cryptocoins I want just buy and hold for now.

About mining I was thinking to leave the pool and go solo mining making my own private pool or solo mining with every device in my house, but I don’t know if it is worth.

Sorry for my English

With that budget I'd probably build a rig around the following components:

AsRock H110 Pro BTC+ (~140€)
6xMSI GTX 1060 GAMING X6G (~360€ each = 2160€ total)

One GTX 1060 overclocked using the following settings will be able to sustain about 540 H/s resulting in 3.2 kH/s with very moderate power consumption:

Core Clock +200 MHz
Memory Clock +800 MHz
Power Limit 65%

Update:

Out of curiosity I've ran XMRig on the AMD Ryzen Threadripper 1950X hosting my beta pool and achieved approx. 1 KH/s using just the CPU. So in theory you could also build three CPU only rigs using that CPU at slightly higher cost but with reduced power consumption (Ryzen 1950X TDP is 180W) and the added benefit of sparing you the hassle of wiring and cooling all those GPUs.


Where can I find some test inputs and outputs for the CryptoNight (Monero PoW) hash algorithm? I'm interested in cobbling together my own implementation, but in order to validate it, I need to find some valid inputs/outputs (4 minimum, i.e. one that goes through the groestl path, one that goes through the blake path, one that goes through the jh path, and one that goes through the skein path).  Does anyone have any to share?

Failing that, how can I get the PoW input and hash from looking in the block explorer?

Edit: and if I can't figure those out from looking in the block explorer, where can I figure them out?

There's a test code for hash functions (https://github.com/monero-project/monero/tree/master/tests/hash) where the expected values are in the txt files.


block 202612 , how been findet this value? how been findet this value

 bool get_block_longhash(const block& b, crypto::hash& res, uint64_t height)
  {
    // block 202612 bug workaround
    const std::string longhash_202612 = "84f64766475d51837ac9efbef1926486e58563c95a19fef4aec3254f03000000";
    if (height == 202612)
    {
      string_tools::hex_to_pod(longhash_202612, res);
      return true;
    }
    blobdata bd = get_block_hashing_blob(b);
    crypto::cn_slow_hash(bd.data(), bd.size(), res);
    return true;
  }

i try to figurate what write to console or how it calculate for see it. And where to see it.

It's pow value , can be find at set_log 2


Mining pool found a block after three days but didn't pay me The number of blocks found was 327 yesterday and today it is 328, which means that the pool found a block. But when I check my GUI wallet I don't find anything. There are no transactions in my wallet and no balance. Is it a scam or is there another explanation?
The mining pool is xmrfast.com.

You will not be paid by the pool until you have reached the minimum payout threshold. Furthermore, pools usually only run payouts once a day, so you have to mine till 1) you have reached the minimum threshold and 2) wait for the next payout run.


Step by step guide on how to connect to peers I am using the command line wallet, and mining on my PC. The daemon says I have '8+0 connections', which I believe is the default. I believe this means I am connected to 8 nodes, but no one is connected to me. Am I correct in assuming that every block I mine is empty because I am not connected to anyone? Is there a guide that someone could link to to help me open port 18080 to allow others to connect to me? Also, what are the pros and cons for connecting to others? Would it strengthen the network more, increase my orphan rate, give me transaction fees? Is it worth it?

It's tough to write a step by step guide for port forwarding, because port forwarding is something your router does, and people have different routers.

If your router has UPnP, that would be the easiest.  Many people will argue that it's safer for UPnP to be off, which is correct; but you can enable it long enough for it to allow the daemon to punch a hole through the firewall (a non-technical term for port forwarding), and then turn it back off.  The port forwarding would have been performed automatically in that case.

But anyway, just look at your router's instructions for port forwarding.  Nearly all modern routers allow port forwarding, and it is not complicated.

Your other questions can either be asked in separate questions, or they may actually have already been asked and answered, so please search a bit.


What is the purpose of the Monero GitHub Meta repository? According the Hello Monero dev meeting highlights for 2016-11-13, a new Github was created for organizational issues.

What type of issues is this GitHub meant to address?

Will the same Collective Code Construction Contract, C4 guidelines used for other repositories, be followed for this one?

Are non-developer community members welcome to contribute?

What type of issues is this GitHub meant to address?

From the dev meeting:

fluffypony:: pigeons: do you want to tell people about the new repo we're using for issues?
pigeons: github.com/monero-project/meta
nanoakron: Please explain?
pigeons: for stuff realted to build machines, build infrastructure, etc
pigeons: anonimal has been using it some to get things setup for kovri needs
pigeons: so feel free
fluffypony: ok so
fluffypony: please use /meta for organisational issues
nanoakron: Roger
pigeons: there is also an empty repo there now, i'll check in some build infrastructure settings there and vm templates
fluffypony: "organisational" as in something that isn't project specific

Will the same Collective Code Construction Contract, C4 guidelines used for other repos be followed for this one?

Given that the meta repository falls under the Monero Project umbrella, I assume it also applies.

Are non developers community members welcome to contribute?

Of course! Note that non developers are welcome to open issues on other Monero Project repositories too.


Verifying Tx to cold wallet Having some trouble.  I have made a few transactions to hot wallets just fine. Balances reflect transactions.

Also sent tx to cold storage wallet addresses.

Using https://xmrchain.net/ I can see from the Tx hash that the Tx are on the blockchain so I am feeling pretty confident.

I am trying to use http://xmr.llcoins.net/checktx.html  to see if tx are associated with the private viewkey of the intended addresses but I get back "Failed to get transaction data! Perhaps MoneroBlocks is down?" message.  Moneroblocks is up and verifies Tx hash...

All with test amounts of Monero so no panics other than my own FOMO wanting to buy more and salt them away into cold storage.

Any suggestions?

Option 1 - from the sending wallet
You can check it from the sending wallet using monero-wallet-cli:

find the transaction key using the transaction id (requires your wallet-cli to have store-tx-info set to 1):
  get_tx_key TX_ID

check that the transaction has been confirmed:
  check_tx_key TX_ID TX_KEY RECIPIENT_ADDRESS

The output should be something like:

RECIPIENT_ADDRESS received [AMOUNT] in txid <TX_ID>
This transaction has 1191 confirmations

Option 2 - using a view only wallet
Create a view only wallet:
monero-wallet-cli --generate-from-view-key wallet-name

Then input the public address and private view key.
You will then see a list of incoming transactions for that wallet.


What is the cause of this "std::runtime_error"? What is the cause of the "std::runtime_error" error below?

  a@a-Peppy:~/monero$ ./monero-blockchain-export --output-file /media/a/SanDisk64GB/

  2016-Nov-22 20:07:27.628966 Starting...

  2016-Nov-22 20:07:27.629007 Setting log level = 0

  2016-Nov-22 20:07:27.629024 Export output file: /media/a/SanDisk64GB/

  2016-Nov-22 20:07:27.629041 Initializing source blockchain (BlockchainDB)

  2016-Nov-22 20:07:27.629501 database: lmdb

  2016-Nov-22 20:07:27.629525 Loading blockchain from folder /home/a/.bitmonero/lmdb ...

  2016-Nov-22 20:07:27.690936 Blockchain initialized. last block: 1185530, d0.h0.m13.s53 time ago, current difficulty: 3744774366

  2016-Nov-22 20:07:27.690974 Source blockchain storage initialized OK

  2016-Nov-22 20:07:27.690986 Exporting blockchain raw data...

  2016-Nov-22 20:07:27.691000 Storing blocks raw data...

  terminate called after throwing an instance of 'std::runtime_error'

  what():  Error reading expected number of bytes

  Aborted

  a@a-Peppy:~/monero$

According to developer hyc the error is cause my not specifying a file name and can be resolves in the following manner:

  "Use an actual filename for --output-file, not a directory name."


Pin Entropy of Trezor versus Ledger Nano S There have been discussions of adding hardware support for Monero, specifically for Trezor and Ledger wallet.

How much more entropy does a 9 digit pin (Trezor) offer compared to a 4 digit pin (Ledger Nano S)?

Will the 8 digit pin option planned for Ledger Bue also be made available for the Nano S in a future update?

Besides pin length what are some of the other primary differences in securing Monero (with unofficial Trezor firmware now and official firmware for both platforms when available) on Trezor compared to Ledger Nano S

Does either wallet support:

Passwords in addition to a pin?
Timeouts between pin/password attempts?
Wiping of device after a certain number of incorrect pin/passwords attempts?
Support for dummy accounts?
Any other notable security features that differentiate one hardware wallet from the other?

How much more entropy does a 9 digit pin (Trezor) offer compared to a 4 digit pin (Ledger Nano S)?

Given entropy per symbol (0-9) is 3.322 source you get 13.328 for 4 digits and 29.898 for 9 digits. Thus you get 16.57 more bits of entropy with a 9 digit pin than a 4 digit pin.

With regards to all your other sub questions, the products are constantly evolving so it doesn't seem appropriate to do a tear-down comparison except to say official Ledger support for Monero looks far closer than the Trezor.


Error: not enough outputs for specified ring size = 11 I am trying to fork monero release-v0.13. I have made changes to the cryptonote_config file and I built and ran the daemon. Everything seems to be fine, nodes are syncing, mining is happening. But when I try to transfer an amount using wallet-cli, I am getting the below error.

Error: not enough outputs for specified ring size = 11:

I have been trying to fix this for the past 3 days.

I have searched in google but I didn't find any solution. Can anyone please help.

You are trying to find 10 outputs on the blockchain other than your own with the same amount, so they can all be put in a ring. Your daemon is telling you it could not find that many. Not surprising if you start with a fresh chain. Use a smaller ring size.


What is a good way to go about translating Monero software to other languages? Say I wanted to translate the Monero GUI to my language is there a good process for doing that?

The Monero GUI is written with the Qt application framework that includes tools for the translation.

As one can expect, translation files are located in the translation folder.

You have to create a file for your language by copying monero-core.ts. You then fill it with the translated strings. You can do it with a text editor (replacing withYour translation` or with the Qt Linguist GUI.

Once the file is ready, you have to update lang/languages.xml file and create a relevant picture in PNG format in the flags folder.


LEDGER WITH BTC AND MONERO WALLET 0

Hi all,
in my Ledger Nano S there is a wallet in BTC and a wallet in XMR. When I have created BTC wallet I have wrote the 24 seed words for restore wallet in case of emercency. The MONERO APP installed on Ledger token doesn't supply seed words (in this case should be 25 instead of 24). Either on ledger token but also in GUI MONERO DESTOP the fields seed words are empty. Please, is there anyone that can clarify on the matter? I have also downloaded Mnemonic Code Converter tool but without a guide is very difficult to use (at least for me). Making a mistake on this issue could cause the less of the wallet. Thanks everybody for you help. Giovanni

When you did set your Ledger Nano S up, you did receive 24 words. Write these down in the correct order and hold them safe (or remember them).

If you install an app for any cryptocurrency (Monero, Bitcoin, Ethereum, ...) on your ledger nano s, your device will make a private key out of your 24 words you got the first time you used your Leder Nano S. This private keys will never leave your device.

If you enter these exacte same 24 words in the same order in another ledger nano s device, you will also have acces to your funds again, if you install the application for a specific ctyptocurrency, as the device wil generate the same private keys out of your 24 words.

If you set up a Monero GUI wallet, you wil do it by using your Ledger Nano S. Select this option in the Monero GUI. Your Ledger Nano S holds the private keys, and these keys wil never be exposed. See the official support page of Ledger for more information about how to set up the Monero GUI.

So you don't need another 24/25 words. Just use your Ledger Nano S.


Is there any PHP script for mining monero on webserver? I have seen may tutorials and links for webmining on client, Is there any php based miner for server?

If you have access to the sever to run PHP code then you can just use a cpu or gpu monero miner anyway which are much faster and readily available for download and use.

As far as mining on a web client (not clear if that is what you're asking about):

Web based client side miners (such as javascript miners) use the web browsers or video streamers etc of the client machine to perform mining.

It is being done with platforms like coinhive as a monitization strategy (ethically questionable imo) where one would alert the user about it and ask for permission
but it is usually done by malware illegally in what is called Cryptohjacking. Essentially this is taking advantage of people's computers for ones own personal gain without any regard for those people or their devices


Monero GUI Changing from host node to local node I have deposited coins into my Monero GUI wallet prior to the completion of full node synchronization. My coins are not visible and synchronization is very slow for me, currently 5 days with still around 91000 blocks remaining.

If I change to a remote node, will this change my wallet address or will I lose my coins?

With Monero, the daemon takes care of syncing the blockchain, while the wallet handles private keys. The daemon never has access to private keys [1], only the wallet does. Therefore, if you switch daemons, your wallet address does not change, as long as you continue loading the same wallet. The wallet software will just scan for blocks from a different source of blocks.

[1] this will soon change a little, as the daemon will gain the ability to scan the chain using a wallet's private view key, but this isn't relevant here.


Would a long-time block target be annoying? Lets imagen for a second that I have an idea for a really unique coin and not just a clone ...

If I created this coin to have an average new block-time of 1 day would it need to give more coins for a reward (than average / quicker block-time coins) to be worth mining?

  (imagen if the value of the coin was the same value as another popular coin) ...

Would miners have to hash at the same power as they would for any other (quicker block-time) coin but, instead, have to spend all day to achieve the same results?

What is the benefit from longer interval blocks (besides shorter chain length) from having the difficulty (time estimate) as a unique 'setting' when creating a coin?

  Disclaimer: features can be anything outside of the scope of this question. I understand that differing block timings and mining rewards don't count as 'features'!

To target a block time of a day, difficulty would be adjusted to make the likelihood of finding a block require a days worth of hashing (work). The big drawback to such a large block time would be slow confirmation of transactions.


How do I install Aeon on Ubuntu? I have a virtual machine with Ubuntu MATE installed. How do I install an Aeon node on this?

Install the necessary prerequisites (on top of a default Ubuntu MATE image):

sudo apt-get install cmake g++ libboost-all-dev

Create a git directory:

mkdir git
cd git

Clone the GitHub repository:

git clone https://github.com/aeonix/aeon.git
cd aeon

Compile the sources:

make

After about 30 minutes, you'll end up with the following binaries in the build/release/src subdirectory:

-rwxrwxr-x 1 user user 3600096 Jan 26 14:44 aeond
-rwxrwxr-x 1 user user  829136 Jan 26 14:44 connectivity_tool
-rwxrwxr-x 1 user user  789768 Jan 26 14:46 simpleminer
-rwxrwxr-x 1 user user 2768864 Jan 26 14:47 simplewallet

When synching up the blockchain, if you have a nearby node available, use the --add-priority-node option to speed up the process, e.g.:

./aeond --add-priority-node <IP address>:11180


How to send Monero from a cold (paper) wallet via RPC? I'm generating a wallet address and keys with http://moneroaddress.org. But how can I create, sign and send transactions with NodeJS from this cold wallet?

The monero-wallet-rpc requires a wallet file to operate on. Therefore, if you only have the keys, you will first need to restore a wallet file from your keys, which can be done using the monero-wallet-cli:

monero-wallet-cli --generate-from-keys my_wallet

This will prompt you for your address and keys then save the new wallet file as my_wallet.

You can then proceed to opening the wallet file you just created with the RPC:

monero-wallet-rpc --wallet-file my_wallet --rpc-bind-port 18084 ...

At which point you can then call the RPC methods, such as transfer, to transfer funds.

All the RPC commands are just HTTP POST calls, no special libraries are needed.


Failed to update txpool transaction metadata on local Monero daemon I have a Monero daemon running on a Raspberry Pi connected to my LAN. After a full blockchain sync, I got this error:

2018-01-16 12:00:50.993  [P2P0]  ERROR   txpool  src/cryptonote_core/tx_pool.cpp:516     Failed to update txpool transaction metadata: Error finding txpool tx meta: MDB_NOTFOUND: No matching key/data pair found

Everything seems to be working fine and I can use the daemon from a wallet on another PC over the LAN without issues. The error message has appeared once and if I use the ´status´ command, I get this result:

Height: 1488428/1488428 (100.0%) on mainnet, not mining, net hash 669.57 MH/s, v6, up to date, 9(out)+0(in) connections, uptime 0d 6h 3m 33s

What should I expect from such an error?

What should I do about it?

Thanks in advance.

This error is not a problem. While it might happen for several reasons, the most likely is benign: monerod attempted to relay a transaction from the txpool to other peers, but then failed to record the relay time as the transaction was not in the txpool. This happens when the transaction is taken off the txpool when it's mined in a block at the same time it gets relayed.

See https://github.com/monero-project/monero/pull/2971/files for a fix (which doesn't change the way it works, just makes sure there's no error when it's the benign case).


Doing a Send Transfer using monero-cli v0.14.0.2 with long payment id enabled, still getting errors on send Using the below command with long payment id enabled in monero cli v0.14.0.2 and I still get an error. What is wrong?

transfer 4xxxxxX 4bxxxxXX 2

  Error: amount is wrong: 4xxxX 4xxxxX, expected number from 0 to
  18446744.073709551615

Reason why is the format:

  transfer < receiver_address > < amount > < payment_id >

I had the payment id and amount swapped! Absolutely noob unfriendly...


Mymonero and monero-wallet seed Monero wallet and Mymonero use different seed.

Mymonero 13 words seed and Monero wallet 25 words seed.

Does this mean Mymonero seeds are less secure?

What is the size of words set? (Is it the same for both?)

Why Monero dev did choose to use the same seed protocol than Bitcoin? (It's seems to me that monero use a different words set)

Yes, it's less secure because it's 128bits of entropy in the 13-word seed vs 256bits of entropy in the 25-word seed. However, it's considered safe enough as it would again take an impossible* amount of time to generate a collision.

The process for mymonero is:
mnemonic -> seed -> private spend & private view keys

The process for simplewallet is:
mnemonic -> seed -> private spend key -> private view key

Technical details on the implementation can be found here, at the bottom of the page.

Note that the mnemonics are not part of the protocol. They're just a way to conveniently generate the actual cryptographic keys used at the protocol level (private spend and private view key).

Considering that you can always restore a wallet from the actual keys, you are never locked into any system in particular.

And yes, it is the same wordset.

*A note regarding collisions, quoting Luigi

  Note that generating random collisions of 128 bit values is well
  within the realm of "possible" nowadays. The key is that you're still
  mostly fine, as generating a collision (birthday paradox) isn't very
  useful for finding actual accounts with value (unless there are a
  "lot" of existing accounts--even then, it's very unlikely someone
  finds yours, just more likely they find someone's.

As far as the history of decision is concerned, here's a quote from fluffypony:

  When we first decided to create a mnemonic system the spec we came up
  with was: take the seed from the mnemonic, hash it for the spend key,
  hash it twice for the view key. Somewhere during the simplewallet
  implementation we forgot about that, and just used the mnemonic seed
  as the spendkey directly.

  This proved to be a blessing in disguise, though, as we'd not realized
  that people might want to retrieve their seed. Using our original
  design this wouldn't have been possible, as we didn't store the seed
  in the wallet file.

  Much later on when we were creating MyMonero (a different group of
  developers, I'm the only common link between the two) we decided that
  a 13 word seed would be much easier for people to remember, but
  because we wanted it to match simplewallet's implementation we made
  sure that we followed the spec as it was originally.

  At some point in the future we'll add support in the command-line
  wallet for four types of derivation and let advanced users choose
  derivations with a command-line switch:

  short mnemonic, spendkey is seed

  short mnemonic, spendkey is hashed seed (MyMonero)

  long mnemonic, spendkey is seed (current simplewallet)

  long mnemonic, spendkey is hashed seed


how do you sign a message with your monero private key? How do you sign a message with your monero private key using the cli-wallet, gui-wallet, and last with pure js using what libraries?

With monero-wallet-cli, you can sign the content of a file (e.g. message_file)  with the command sign message_file, and verify the signature with verify message_file address_of_the_signer signature.

With monero-wallet-gui, in the menu go to Advanced -> Sign/Verify, then you can sign (or verify) a message or a file by filling the appropriate boxes.


What is novault and what is its connection to Monero? What is the primary purpose of novault? Is it safe to use? Is the tool meant to be used just Monero or does it had wider applications?

According to its GitHub description:

  novault is a command-line utility and Python module for generating passwords and cryptocurrency wallets from a combination of a description and a master password. The description and master password are hashed, generating a pseudo-random seed which is then formatted as a password or wallet keys/address.

There is no official connection between Novault and Monero but the first two currencies supported are Bitcoin and Monero. The author accepts donations in Monero and stated in the tools r/monero announcement:

  My main motivation to develop novault started with my use of Monero, but since this is not a purely-Monero tool I opened a subreddit at /r/novault. You are welcome to comment to this post or open new ones in /r/novault.

Since this tool is not an official Monero project a review of its safety is outside of the scope of this Stack Exchange. Having said that at least one Monero core developer, Riccardo Spagni has expressed interest in it. Users can review the source code and make their own conclusion.


I've setup Monero Core Gui 0.11.0.0 on my old laptop with location to E:Drive for blockchain. How to move to new laptop I've everything running fine on old laptop with Monero v 0.11.0. Now I try to move this (Monero GUI Folder, blockchain folder and Keys) to new laptop.
And try to restore from keys, I can see it is showing my balance correctly. Now while starting Daemon with fails and I try to do it from cmd line and it fails

E:\monero-gui-win-x64-v0.11.0.0\monero-gui-0.11.0.0>monerod --data-dir E:\MoneroBlockchain\
2018-02-27 17:17:35.875 9824    INFO    global  src/daemon/main.cpp:279 Monero 'Helium Hydra' (v0.11.0.0-release)
2018-02-27 17:17:35.875 9824    INFO    global  src/daemon/protocol.h:55        Initializing cryptonote protocol...
2018-02-27 17:17:35.876 9824    INFO    global  src/daemon/protocol.h:60        Cryptonote protocol initialized OK
2018-02-27 17:17:35.877 9824    INFO    global  src/daemon/p2p.h:63     Initializing p2p server...
2018-02-27 17:17:37.119 9824    INFO    global  src/daemon/p2p.h:68     P2p server initialized OK
2018-02-27 17:17:37.120 9824    INFO    global  src/daemon/rpc.h:58     Initializing core rpc server...
2018-02-27 17:17:37.124 9824    INFO    global  contrib/epee/include/net/http_server_impl_base.h:70  Binding on 127.0.0.1:18081
2018-02-27 17:17:37.125 9824    INFO    global  src/daemon/rpc.h:63     Core rpc server initialized OK on port: 18081
2018-02-27 17:17:37.126 9824    INFO    global  src/daemon/core.h:73    Initializing core...
2018-02-27 17:17:37.127 9824    INFO    global  src/cryptonote_core/cryptonote_core.cpp:323     Loading blockchain from folder E:\MoneroBlockchain\lmdb ...
2018-02-27 17:17:37.374 9824    ERROR   cn      src/cryptonote_basic/cryptonote_format_utils.cpp:102 Failed to parse transaction from blob
2018-02-27 17:17:37.375 9824    ERROR   txpool  src/cryptonote_core/tx_pool.cpp:1020    Failed to parse tx from txpool
2018-02-27 17:17:37.375 9824    ERROR   cn      src/cryptonote_core/cryptonote_core.cpp:409     Failed to initialize memory pool
2018-02-27 17:17:37.376 9824    INFO    global  src/daemon/rpc.h:90     Deinitializing rpc server...

May be something corrupted.
What is right way to Move Wallet with blockchain db file to new laptop?

Before copying over the files of the Monero blockchain, make sure the daemon is no longer running. Perform a monerod exit from a Command Prompt if necessary.

Then, you should copy over the entire directory, in your case E:\MoneroBlockchain to the target computer. On the target computer, I would just remove those .bin files, before starting the daemon. This way, the daemon will rediscover th proper state.

  Note: Monero 0.11.0 isn't the lastest version, you should probably use 0.11.1.0 on the target machine.

The wallet files can just be copied as is. This should work the same on the target computer, but again, try to use the latest version of the software. And always keep a copy of your mnemonic away from the computer. That guarantees you'll always be able to recover your funds.


How to remove the GUI wallet on Mac? How do I remove the wallet completely, also deleting the monero chain that I have downloaded?

I can't find the file path and I am a bit new on Mac. A short guide would be much appreciated.

I have secured my seed.

On Mac, the chain and associated files are stored in this path ~/.bitmonero.

The wallet files are wherever you placed them.

For the binary, just delete the application from your applications folder.


aeond connection problems When starting the current version of aeond (aeon v0.9.12.0) I get tbe following message:

Starting...
aeon v0.9.12.0()
Module folder: ./aeond
Initializing p2p server...
Binding on 0.0.0.0:11180
ERROR /aeon/contrib/epee/include/net/abstract_tcp_server2.inl:468 Exception at [boosted_tcp_server<t_protocol_handler>::init_server], what=bind: Address already in use
ERROR /aeon/src/p2p/net_node.inl:300 Failed to bind server
ERROR /aeon/src/daemon/daemon.cpp:175 Failed to initialize p2p server.

How can I fix the above error and connect to the network?

As predicted by Clement and TEV in question comments, it turns out I already had another daemon running in the background that I was not aware of. The issue disappeared once I restarted my system and ran aeond again


My dog ate the USB key with 10000 monero wallet. Are they lost forever? I don't have a dog, nor 10,000 Monero for that matter, so everything is OK :)!

But what happen if I lose the medium on which the wallet with my Monero is stored, or if it is destroyed? Hard disks fail, after all.

And if the wallet is not important (because block chain knows), does it mean that there is a way to restore a private key? Isn't that a security hole?

When you create a new wallet, the software gives you a "mnemonic seed". It's a list of words that can be used to regenerate your wallet file and rescan the block chain to find your transactions.

By writing the seed on paper and storing it in a safe place (or by memorizing it if your memory is good), your moneros would not be lost forever in case of a dying hard disk (or hungry dog).


Monero nodejs mining documentation I have a simple question. Is there any documentation on how mining software works on Monero with nodejs? Or how should I connect with the blockchain and get some data to process it?
I've looked already on Google but I can't find anything solid.
Thanks in advance
JPP

...how mining software works on Monero with nodejs?

Mining "works" the same irrespective of the platform the pool/miner is built on.
Documentation of a nodejs based pool can be found at nodejs-pool.


Is it okay to host a node that connects on the clearnet? There is some concern in regulatory bodies about governing Monero in the future. Does this have implications for people hosting nodes at home on personal computers and connecting on the clearnet, without a VPN? Thanks.

This is related to your local juridiction.
In most countries, running an application, as long as it does not break any existing laws, is totally legal.

If something change in the future, it might just be on the taxation of cryptocurrencies themselves.
Nodes owner may not be targeted by this taxation, or may be depending on your juridiction.

To summarize: look at your local laws to ensure your not breaking any (it's highly improbable you are) to run a node today, and stay tuned to your juridiction's new law to avoid breaking them.

But in the future, Kovri will be in General Availability release and integrated to Monero so that you shouldn't be seen by any juridiction.
This could help you to continue using the software in case of banishment, if regulators don't manage to apply a taxation model on secure cryptocurrencies.  That said, i would not push you to break any law.


What are the changes in CryptoNight v2 PoW algorithm? According to the last Dev Meeting, PoW changes to the upcoming fork are almost finished. What exactly will be changed and how will it affect speed on CPUs and GPUs but also potential ASICs or FPGAs?

The main changes are:

reading a whole 64 byte chache line at a time: many recent processors will read 64 bytes at a time when fetching from RAM, so access to the whole set is virtually free after it's cached. Since ASICs don't have to behave like this, this will increase the memory bandwidth an ASIC needs by 4, since Cryptonight acts on 16 bytes at a time. A simple addition is done to ensure an ASIC can't just multiplex the data.
adding integer math operations (division and square root): on a CPU, these are "hidden" by the memory access latency. This will cause an ASIC to have to have extra circuitry to compute those, as well as prevent part of the pipelining an ASIC may be able to perform due to the serialization of data use and calculation.

On most recent enough CPU/GPU hardware (apart from ARM), performance was found to be from 85% to 95% of the performance of Cryptonight, see reports from https://github.com/monero-project/monero/pull/4218.


Why can't a pool find block after the hard fork I know that it's my problem, but I don't have any idea what happened.

Here are my pool stats(private pool):

Here are the stats before the fork:

Early on, all was good. A few days before the hard fork, I upgraded the monero cli tools to the latest version, and they had been working fine before the night from 15 to 16.

I've not found anything in the monerod logs
(from time to time i'm getting INFO     stacktrace  src/common/stack_trace.cpp:120  Exception: cryptonote::BLOCK_DNE
but it's started much early with upgrade to version v0.11.0.0)

(and I just checked, it's still here).

Version of monerod is ./monerod --version
Monero 'Helium Hydra' (v0.11.0.0-release)

So, I don't have question.. I just don't realize what happened, I have not changed anything on the pool server, my miners all are here and working fine and getting updates from the pool ..

I really need any advice.. Thanks!

Check your pool logs for "Error submitting block". That's in logs/pool-info.log. If one of those shows up, then a miner found a share matching network difficulty, but the block was rejected.

Then check the same log file for "found at height". If you find any, but your pool did not get the block, then the block got orphaned. This may be due to bad luck (someone else found a block at about the same time), or because your block was invalid, and the network rejected it.

If you find none of those messages, it means you (as in, the miners mining on that pool) were just unlucky.


How exactly does mining software work? If I had time I would read the source code, but could someone tell me a human readable version of it?

In shortest / simplest, just to illustrate the principle (may not be 100% accurate).

Take the hash of the last block
Build a block made of transactions which you collect from the network, while verifying that they're valid. You also include a coinbase transaction to yourself, called block reward. Other miners will include theirs.
Keep hashing (1. + 2.) until you find a hash satisfying a criteria (usually looking for a hash which has to be larger than the target).
If you find it first, publish it to the network and claim the reward. Use the new hash and goto 1.
If someone beat you to it, take his winning hash and goto 1.

This process ensures that we can't change the past of our blockchain without having to redo all the cumulative work done by the miners.

Pooled mining works a bit different, where you submit hashes which satisfy an easier criteria than in 3. as a proof you're mining. For each one submitted, you will get a share of any block found by the pool (even if it's coming from you).

Obviously, the goal of any mining software is to perform as much as possible hashes / s with a given hardware.


Early Monero usage compared to Bitcoin Has anyone done an analysis comparing Bitcoin usage its first two years compared to Monero usage in its first two years since launch?

I see some statistics here http://moneroblocks.info/stats but they only go back one year. Has the transactions per block data been adjusted according to the block time change from 1 to 2 minutes?

What factors today (spam attacks, different percentages of exchange related transactions, etc) might make such a comparison less useful or difficult?

Comparing with Bitcoin, since blocks in Monero are 5x "faster" (2 min X 10 min) we are roughly in mid-2012.


Does Monero still use chacha for wallet encryption? With the advent of RandomX has Monero created an encryption scheme that use it for key derivation? Also how does/did chacha8 work is there a whitepaper one can read?

The wallet cache uses chacha20 for cache encryption. The KDF used is still the original Cryptonight (one round by default, overridable with --kdf-rounds).


Does the latest Monero release (Nov 2019) contain I2P and Tor only in CLI or in the GUI too? Win 10 user, PC, trying to setup Daemon on a local hard drive. Before I do, I want to know about the privacy options regarding IP addresses when using a node.

Does the latest Monero release, to run your own daemon, contain support for I2P and Tor?
Is it only the GUI, CLI or both?
For a regular non computer geeky type of user, is it easy to learn the CLI and is that the better one for privacy? I was going to use GUI for simplicity, but if the CLI has better privacy then I'll learn that.
Just to be clear, so I understand, is support for I2P and Tor included in the latest daemon? Can you run it on clearnet from home and your ISP won't know you're connecting to other Monero daemons?
Do you still need to use Whonix or Tails for total privacy with latest release of the GUI or CLI?

Some questions about general use of Monero on clearnet without the privacy of Tor:

If using from home, and setting up a daemon on a PC hard drive, when does your ISP actually record connections to Monero? I mean does downloading the blockchain mean there is a connection to Monero even before you use the wallet?
For privacy concesious usage, is it best to download the blockchain to my PC before getting the GUI and CLI or should it be done at the same time? I thought that downloading the blockchain first might be more secure.. but not sure.

Cheers!

Actually, tor/i2p support has been in Monero since the previous release, not just the last one.

With regards to your specific questions:

The releases don't "contain" tor/i2p, rather they have options available to integrate with a local tor/i2p router to broadcast transactions over tor/i2p. See ANONYMITY_NETWORKS and README.
The settings are in the daemon. Therefore anything that uses the daemon (which is both GUI & CLI wallets), can use these options.
This is subjective. Some people will find the GUI simpler and some the CLI. The official GUI and CLI both offer the same levels of privacy.
The answer here depends. If you are using the built-in tor/i2p options, this is specifically for transaction broadcasting as of now. The functionality is present to help prevent linking a transaction to an IP address. Syncing blocks would still occur over clearnet.
They could - and that's the point. If you need to hide the fact you are even running Monero, you will need to route all your traffic through tor/i2p. This can be configured in your operating system (see the README).
When you say "download the blockchain" I assume you mean the raw blockchain file, and no, there is no privacy benefit to downloading this before downloading the CLI/GUI. There really is no benefit to that raw file at all these days - it was provided at a time when syncing the blockchain in the daemon was on the slow side - nowadays the sync speed has been significantly increased.