Identifying the *real* public keys of ring signatures

Every public key in the ring is valid as they are all stealth addresses. You cannot determine which is the real destination (which wallet receives the funds or how much).

A good explanation of stealth addresses can be found here.


You can set the MONERO_LOG_FORMAT environment variable to include whatever data you want to be output. The default is:

%datetime{%Y-%M-%d %H:%m:%s.%g}\t%thread\t%level\t%logger\t%loc\t%msg

The available variables are in the easylogging++ documentation, in the "Loging format specifiers" section:

https://github.com/muflihun/easyloggingpp


Can Monero stand as a distinct cryptocurrency, or will its features be brought to Bitcoin via sidechains?

A lot of the other answers address some but not all of the questions.

  Is Monero intended to be a competitor to Bitcoin, or is the intent to develop technology that will improve Bitcoin?

It is unknown whether Bitcoin will ever implement any of Monero's technologies, but from the outset, the cryptonote protocol (from which Monero has evolved) was made to address some of the shortcomings of the bitcoin protocol. From the cryptonote whitepaper, each of these drawbacks is listed - 2.1 Traceability of Transactions, 2.2 Proof of Work Function, 2.3 Irregular Emission, 2.4 Hardcoded Constants, and 2.5 Bulky Scripts. Additionally, from the whitepaper, we see this passage -

  For example, the system’s distributed nature is inflexible, preventing the implementation of new features until almost all of the network users update their clients. (...) In such inflexible models, it is more efficient to roll-out a new project rather than perpetually fix the original project. In this paper, we study and propose solutions to the main deficiencies of Bitcoin. We believe
  that a system taking into account the solutions we propose will lead to a healthy competition among different electronic cash systems.

https://cryptonote.org/whitepaper.pdf

Therefore, I can only conclude that the original Cryptonote protocol was made to be in direct competition to Bitcoin (to stand alongside) and was not intended to ever be merged into the bitcoin protocol, but only time will tell.

  Is there any reason why Monero's features wouldn't just be brought to Bitcoin through sidechains?

There's plenty of reasons for bitcoin to bring Monero's features into Bitcoin through a sidechain, but there's no reason for Monero to become a Bitcoin sidechain. If we take all of the features of Monero and bring them as a sidechain, this sidechain will have dynamic block sizes, an ASIC resistant proof of work, and last but not least, untraceable transactions. Albeit these features, this theoretical Monero sidechain would now be coupled to Bitcoin's security model and other parameters. In addition, as others have mentioned, one could trace transactions being moved to the Monero sidechain and this would be the equivalent of getting $10,000 in cash. You would be suspected of doing something.

  What about Monero's features being implemented in Ethereum?

This is similar to the Bitcoin implementation.

The bottom line is that if true fungibility isn't in the base protocol, then the base protocol isn't fungible no matter how many layers you add.


The curve generator is just another name for the curve's base point, which is denoted as G.
In Z2M 3.1, each "base key" J is simply a curve point you are going multiply by a scalar k (a private key) to get a new curve point K (a public key).
Put simply, the proof discussed is about creating a proof to show you know the k multiplied by each J to create each K, and you can prove this without revealing k.
Or annotated first line from 3.1: "It is often useful to prove the same private key (scalar k) was used to construct public keys (each point K) on different ‘base’ keys (each point J)"


How much traffic does the simplewallet use?

The wallet will get block and pruned tx data (that is, roughly everything except the signatures and range proofs). For current transactions, that's around less than 5% of the full block size I believe. So if you have 100 kB average block size, you'd get about less than about 50 MB for 10000 blocks. I think it's less than that, but let's say 5% to be conservative.

For reference, 10000 blocks is about 2 weeks' worth of blocks.


Hard disk space usage using Helium Hydra on Windows, 64bit

The Monero blockchain data is located (for Windows) at C:\ProgramData\bitmonero\lmdb

If you want to be able to view your wallet's balance, etc., you will need to move the entire blockchain onto an external drive, not just your wallet.  Definitely have a look at this question by debruyne for help on trying to move the blockchain data without losing sync progress. .


Why did the total network hash rate drop by 50% after 0.10.1 release?

The network hash rate never reached 70 MH/s (I don't think it even reached 60 MH/s, though it came close), so this points to a bug in the site you're looking at. It seems likely that this is related to the switch in block target from 60 seconds to 120 seconds a while back. Some sites never noticed, and started reporting wrong difficulty. Maybe this site updated their logging at that time.

To see the "other side" of the problem, look at http://chainradar.com/xmr/chart, look at the difficulty chart, zoom out to "all", see the (false) bump from less than 1 billion to 1.9 billion on the 20th of march 2016, which is the hard fork that changed the block target.


C/C++ - What is nonceptr in scanhash_cryptonight function?

nonceptr is a pointer to the place where the nonce is in the block header (pointed to by pdata). It is defined as a pointer to an unsigned 32-bit integer because the nonce is 32 bits long, and it is used when mining to easily change the nonce (e.g. *nonceptr = new_nonce;).


Can the import\export key images command can be used to check the balance of a paperwallet?

Is it possible to get a transaction key image from a Paperwallet without exposing the spendkey or seed?

It depends on your definition of "expose". Key images can of course be computed offline, even by some self-contained hypothetical device, but you are still "exposing" your spend key to that device.

You could do the necessary math on paper if you want, but you still expose your spend key to the paper. I do not recommend this method. :)

Christopher King has proposed an idea where the key image would be generated by a view key-derived output, but it needs some more review (and also involves substantial protocol changes).

It is also possible to compute some number of key images when you first generate the seed (it's "exposed" at that moment anyway) by using pre-chosen txkeys. However, there is currently no UI that implements such a thing (MyMonero is the easiest method of doing it manually).


Is there a sample javascript code of how to generate a monero adddress from a string of characters?

There is Javascript code to generate Monero addresses from an arbitrary string, yes. See https://github.com/moneromooo-monero/monero-wallet-generator/tree/master. This page contains code originally from MyMonero (https://mymonero.com/).

The general idea is to hash the string (preferably using a KDF), and use the resulting hash as the spend key. The view key is obtained from the spend key.


An easy scriptable way is to run:

  for n in seq 1000; do ./monero-wallet-cli --generate-new-wallet wallet$n; done

It's a bit heavyweight though. If you can code, you can generate new keypairs with:

cryptonote::account_base account;
account.generate();
account_public_address address = account.get_keys().m_account_address;


What security risks are associated with accepting Instant Transactions?

The risk is that this transaction will not be included in a block, ever, and thus never pays the merchant.

The risk are the same as with Bitcoin, since Monero uses the same type of PoW system, so you may want to read up on doing this with Bitcoin.

One possibility for attack is that the transaction being sent to the merchant has an input which will be spent in another transaction that is being mined, but either not relayed to the merchant, or rejected by the merchant's daemon (since it spends an output that's already being spent in the pool). This requires that the second transaction be sent after the one to the merchant (so the merchant node can't receive it before from other relays), but reach mining nodes before the one sent to the merchant. So it's a timing race.

Another possibility is that a tx is sent to the merchant only. The merchant's daemon would normally relay it to ther nodes, so this only works if the merchant is in "listen only" mode. There is no such thing in the current monero daemon, but this might be done as an optimization in the future by a merchant who wants to save bandwidth.

As to how to balance the risks vs the loss if an attack succeeds, that is a decision for the merchant to take. If quick service is part of the merchant's appeal, there is an incentive to.


monero-blockchain-prune is not showing when choose "show package contents" on monero-wallet-gui 0.16.03 on mac

Ended up deleting the whole blockchain (94GB) and resynching with the --prune-blockchain start up flag for Daemon set in the miners wallet gui. This took over 5 days but I now have a 29GB blockchain a saving of 65GB!


Bootstrapping Monero blockchain via clearnet?

You can download the current bootstrap from here

Regarding 'Monero's blockchain bloat' : As far as I know, until now the Monero BC network hasn't really experienced a problem due to this as it hasn't got to unbearable levels of traffic that suffer from the extra size that comes with RingCT.

Further, Monero will soon have Bulletproofs which will reduce transaction size, improve transaction speed, and lower transaction fees


On xmrchain what do the l, e and - pID symbols mean?

l means the legacy CryptoNote pID type is being used. It is an unencrypted 32 byte payment id that is separate from payment address. Exchanges have traditionally been the most common user of this pID type as a means to know from whom the payment came from.

e is the newer "integrated address" pID first implemented by Monero. It encrypts the pID and combines it with a Monero address. For usability reasons exchanges have gradually moving to this standard over the older l type pID.

- simply means no pID exists for this transaction

Going forward it is assumed that sub addresses introduced in Monero 0.12.0 will replace most uses for both l and e pIDs. This will improve network privacy by making transactions that traditionally use one pID type over another (or none at all) look more alike on the blockchain.


aR is an elliptic curve point, and has a 32 byte compressed representation. i is not a scalar. Scalars, like a would have a 32 byte representation. i however is a varint. Varints are specified in section 1.2 of this document: https://tukaani.org/xz/xz-file-format.txt

Therefore aR||i will usually be 32+1 = 33 bytes of data. The concatenation has no padding, and is simply one byte sequence followed by another.

Also note that although the white paper says P = H(aR||i)G + B, if you look at the Monero source code it's actually P = H(8aR||i)G + B. This is to avoid small subgroup attacks, because it forces the result of 8aR to be in the subgroup of the base point G.


What are the best practices to move coins out of cold storage?

Excellent question. I suppose the only way, for now, would be to boot into a clean system by using a live CD with network access, syncing the daemon, restoring your wallet*, syncing the wallet and immediately spending what you intended to spend (or send to your "hot" wallet) and then sending the remainder to a new cold storage. This last step is an important one just in case that, even with the precautions, your system was compromised somehow. If you spend and send the change back to a new cold storage immediately, the potential thief probably wouldn't have a chance to steal your funds.

*For added safety, I'd create the wallet file on an offline PC, secure it with a password and copy it to the online PC, sync and spend the funds. This way, the potential thief would need both your password and the wallet file to steal your funds.

Another approach would involve having 2 nodes. One exposed to the internet, and the other firewalled so that it allows only the monero node traffic between your 2 nodes, but for this you need to know your networking to set it up securely (I wouldn't know how to do it).

Eventually, we will have the functionality to do offline signing. It would work like this: you'd get all the data required to build a transaction from the online PC, copy it to the offline PC and use it to sign the transaction with your private keys, copy the signed transaction back to the online PC and broadcast it to the network.

To avoid all the hassle, there is a device (Trezor) which you plug into USB of the online PC and it serves the purpose of the offline PC and signs the transaction, with the tx data going back and forth over USB, saving you the trouble. The firmware for monero is available for testing purposes and we should expect a stable version in the nearby future. This is the most convenient option, and I think it can't come too soon.


What use cases will Kovri have for Monero?

Kovri will function as a full i2p router, thus increasing the utility of the i2p network overall, and providing the Monero user a gateway into that network. i2p is The Private Internet - its really its own network, you can sort of think of it like America Online back in the day. If you didn't use AOL in the early 90's, it was not the internet. AOL had its own subnetwork, almost, and if you wanted to browse the internet (not that there was much to browse in the early 90s), well then you had to essentially leave AOL's cordoned-off area.

So, if there is a distinctly private internet, and there is a distinctly private internet-currency, Kovri will essentially create the Monero-centric world.

And yeah, you can also access remote nodes. Actually, you can do that now already using an independent i2p router.


The most obvious way is doing something like gratuitously increasing the Tx version or changing Tx structure. However, wallets have to be aware of this too, so it's a little more complicated (plus you waste version numbers). We haven't done that as the prior chain forks (especially in the recent one) haven't been extended much at all (i.e., they weren't controversial); it's just been not a concern.

In the future, if an old chain fork does pick back up, the easiest thing for you to do as a user (assuming RingCT is enabled) would be to add a coinbase transaction from your fork to your transaction as a mixin. This will ensure it's always invalid on the other chain. This solution is pretty simple and would likely be preferable to mucking with version numbers or other params. Coinbase transactions are locked for 60 blocks, so just make sure you don't spend for approx 120 minutes after a fork, and include an unlocked-but-only-on-your-chain coinbase as a mixin (again, only works for RingCT unless you're spending denominations that match the coinbase). This could be pretty easily implemented if it became necessary.


The ViaXMR pool hasn't found a block since Dec 3: https://www.viaxmr.com/#/blocks  So no one has been paid out in a while.  It's been a really unlucky streak.

Also, the minimum payment is 0.4 XMR. Look at the Pool Config here: https://www.viaxmr.com/#/home

So you will have to mine long enough to accrue 0.4XMR before the pool will pay you at all.

You won't see any XMR for a long time in that pool.

MoneroOcean (or some other http://moneropools.com/) may be a better pool for you: 0.03 XMR minimum payouts: https://moneroocean.stream/#/dashboard


How can one use RingCT to maximize the privacy of existing wallets?

You just need to sweep all your inputs to your own address and the new inputs (if transaction was mad with ringct of course) will be in the new RingCT format


View Key of Monero Core Development Team donation account

The viewkey for that address is:

f359631075708155cc3d92a32b75a7d02a5dcf27756707b47a2b31b21c389501

(Taken from https://github.com/fluffypony/bitmonero)

Remember, though, that a viewkey only allows you to see any incoming transactions.  It does not allow you to see the spent outputs of the address, so it doesn't function the same way as looking up a bitcoin address on blockchain.info.


Is there a simple Monero price lookup API?

That's because you're using the wrong ticker. Try XMR.

https://min-api.cryptocompare.com/data/price?fsym=XMR&tsyms=BTC,USD,EUR


Is there a way to see all the transactions coming through my Monero node?

Yes. You will need to increase the log level in the daemon. E.g. set_log +daemon.rpc:DEBUG should suffice.


They are hardcoded in the wallet software, not the protocol. That said, the protocol expects a non-zero fee for each transaction. The Monero protocol does not do fee free transactions so that it can prevent node, and blockchain spamming. Nodes also have the option of deciding which fee paying transactions they will relay of not, and if an enterprising users wishes to recompile the wallet client to send lower fees they can do so and take their chances on the transaction propagating and being mined.

The code in question, can be found here


How long of an encrypted payment ID hex message can be sent after the v0.15 fork?

Encrypted payment IDs are 8 bytes (16 hex chars).


Multiplication over an elliptic curve using the monero cryptographic libraries

Assuming G is the base point and i is a scalar (the convention is to write points in capital letters and scalars in lowercase letters):

  rct::key tmp;
  sc_mul(i.bytes, i.bytes, i.bytes); // i = i^2
  sc_mul(tmp.bytes, a.bytes, i.bytes); // tmp = a * i^2
  rct::scalarmultBase(tmp, tmp); // tmp = a * i^2 * G

The rct API is easier to use than the fe/ge API, but it has a single type for points and scalars, which make it more error prone. sc_mul (scalar multiplication) is the fe API, and scalarmultBase is the rct API.


Any thought on the Minergate hard fork of Dashcoin? Is it a 51% attack?

I don't think we can blame Minergate for a bug in other organization's code... Like with all cryptocurrencies the blockchain with most users will win despite the question which of the branches of blockchain is officially sanctioned.


Monero wallet issue with multiple accounts

You need 10 confirmations to get balance becomes unlocked, but you should be able to see a new balance (not unlocked) once the first confirmation gets in.

Apart from that, you always need to have your wallet fully synced with the Monero blockchain to get it updated with the newest transactions.


Are there any open source block explorer available?

There is the Onion Monero Blockchain Explorer. The README says it's open source but no license is explicitly mentioned.


ELI5: How is Multisig going to work in Monero?

OK, here's my attempt at an ELI5 on this. Please help to correct any errors in the usual manner.

A multisig is a special requirement put on to a transaction so that it cannot be spent unless a certain number of signatures are present. This threshold is set something like "3 out of 5" or more generally "t of n".

Multisig transactions are useful because they prevent just one key having control over the funds which helps businesses to reduce theft (perhaps through multiple people signing) or multiple device ownership (2 factor authentication).

In Monero we have "Ring Signatures" where a transaction can be signed but the actual single signing key is unknown to preserve anonymity. We can extend this to introduce multiple signing keys and a threshold using "Ring Multisignature".

We'll gloss over the technical details of setting up the shared key except to say that everyone involved makes sure that all their communications are securely signed to prevent anyone messing with the component keys in transit and that the outcome is control of a particular agreed address. This is covered in the Ring Multisignature protocol laid out in Section 4.4 of MRL-005 (pdf).

This address looks no different to a normal Monero address because of the way the mathematics works when applying additional signing keys and a threshold. This helps with fungibility since there is nothing special about it to indicate it as different from anything else. Funds can be spent to the address in the usual manner.

When the time comes to spend the funds held in the address the owners of the signing keys collaborate to produce a number of signatures that satisfy the threshold.


Why low hash rates doing SHA/CryptoNight algorithm?

You cannot compare hash-rates for SHA and CryptoNight as they have different characteristics. CryptoNight requires 2MB of processor cache per thread and if you don't have that, the hashing will be significantly slower than other algorithms.

Raspberry Pi 3 to my recollection only has 512KB L2 cache so it's always going to be slow hashing CryptoNight compared to hashing on most desktops.


How does having a negative number in a Pedersen commitment, create money out of thin air?

A good description of this is found in Greg Maxwell's paper on CT:

 (1 + 1) - (-5 + 7) == 0

This would be interpreted as "someone spends two bitcoins, gets a '-5'
bitcoin out that they discard out, and a 7 bitcoin output".

If we substitute your example values:

(10 + 11) - (31 + -10) == 0

The commitment is to zero and the -10 output is simply discarded (it's just one of the two outputs and can be ignored), so you are left with one output of 31. That is, a spend of 21 to get an output of 31 (10 created from thin air).

Hence why range proofs are needed - to prove that each committed value is within a range (positive).


What settings for ZFS dataset containing blockchain directory?

The recordsize must be the same as the system's VM page size, which is usually 4KB on most systems. For blockchain data, compression is a waste of CPU. Cryptographic data is inherently incompressible.


Can you use an integrated address when withdrawing from bittrex or other exchnages?

An integrated address is a valid address, and if the exchange has implemented the support for integrated addresses, you can use them as destination when withdrawing from the exchange.

However, the basic monero address and the payment ID can be recovered from an integrated address (integrated addresses are just a way to pack an address and a payment ID together, nothing is encrypted). Therefore whether you use a basic address or an integrated address (for that basic address) to withdraw, the exchange will know that these withdrawals have the same wallet as destination.

Using different sub-addresses for each withdrawal can hide the fact that they have the same wallet as destination.


How does CryptoNight "depend on all the previous blocks"?

I think the CryptoNote website's page about the egalitarian proof of work is about the inner working of the hash function, not about how the hash of a block is computed (which is basically cn_slow_hash(block_header + tree_hash(block_transaction_hashes)) as you thought).

Internally, the Scrypt function computes blocks of pseudo-random data. Something like:

B0 = SMix(B0, N)
B1 = SMix(B1, N)
B2 = SMix(B2, N)
...

The computation of the next value of block Bi only depends on the current value of Bi, therefore the computations of blocks B0, B1, B2... can be done in parallel.

The CryptoNight function also computes blocks internally, but computing a block depends on the previous blocks. Something like:

B1 = AES_rounds(B0)
B2 = AES_rounds(B1)
B3 = AES_rounds(B2)
...

Therefore the blocks can only be computed one after the other, because computing B5 requires B4, which requires B3, which requires B2, etc.

Description of the CryptoNight algorithm: https://cryptonote.org/cns/cns008.txt


how to calculated how much H/s can my GPU do for different types of cryptocurrencies?

It's not possible to calculate. There's either data available based on what people are reporting, or there's not.

Mining performance is dependent on the mining algorithm used. Monero uses CryptoNight, and for that you can find a list here: Which type of hardware is the most efficient for mining Monero? It should be the same for any cryptocurrency using CryptoNight.

For non-CryptoNight cryptocurrencies, I doubt you'll find an answer here as this StackExchange site is focused on Monero and other CryptoNote cryptocurrencies.


Funds received from subwallet are not showing

Monero "looks ahead" 200 subaddress indices from the highest subaddress index that it observes it has received an incoming payment to.

Therefore if you ever issue more than 200 subaddresses in a row and none of those receive any funds to them, then you need to force your wallet to scan beyond the subaddress index that it would normally stop looking beyond.

To do this, use the command line Monero wallet (CLI) and type address new as many times as necessary to get the wallet to recognize higher subaddress indices. Then type rescan_bc to rescan the blockchain for those higher numbered subaddresses.

  I also want to know if I can get all 60,000 subaddresses from a just
  recovering key from a mnemonic seed

Yes, you can use the --subaddress-lookahead option when restoring a wallet from seed using the Monero CLI (command line interface) wallet. E.g. use the command ./monero-wallet-cli --restore-deterministic-wallet --subaddress-lookahead 50:70000 to automatically scan the first 70,000 subaddresses for each wallet in each of the first 50 accounts. Note that unlike the GUI, the CLI allows multiple accounts each with multiple subaddresses. If you've only been using the GUI so far, then you'll only have one account.


How are transactions validated in monero vs bitcoin?

And KeyImages link to addresses which links to inputs

Any particular key image specified in a ring signature in a transaction must correspond to one of the output public keys (sometimes called stealth addresses) referenced in that ring signature, but you can't tell which output. These outputs will be created in transactions where it will again not be clear which outputs were actually spent as part of that transaction.

  where P is the one time public key, and p is the secret key generated from the sender

For clarity, P is created by the sender, but the sender cannot mathematically figure out the corresponding private key p. Only the recipient can mathematically determine that. This prevents the sender from spending the outputs that the sender creates for the recipient.

  Would having a monero utxo db with the hidden outputs be pointless?

Only the person that owns an output can tell if it has been spent. For all other outputs, it is unknowable as to whether they have been spent or not. Therefore you can't create a UTXO database.


Remember that other users (those that are not the "owner" of an output) also use this output in their rings as soon as it appears in the blockchain.
So an output might (and most likely will) appear many times in many different rings prior to be actually spent by its owner.


Will unlock_time lock sender wallet balance?

Yes, it will be locked for the same amount of time.

This is because the wallet had split some of the inputs into 2 amounts: one which it sent to the destination, and one which it sent back to yourself as change. The amount which will be locked on the sending wallet will depend on what input was chosen by the wallet when sending, and duration will be the same.


What are the hex representations of the small subgroup curve points on Ed25519?


Will there be security vulnerable if you left your wallet address and password in public?

The password is used to decrypt your wallet's .keys file.
No one can access your wallet without having this file and the password used to decrypt it.

Alternatively, your wallet could be stolen by someone being in possession of your Restore seed.

Having only your password and your Monero address, nobody can steal your wallet or see the funds "in" it.


The MyMonero web wallet's infrastructure is behind on syncing to the Monero network, scanning your wallet, or both. Luckily, MyMonero is only an interface to the network. You can access your funds through another mechanism by following these steps.


What's the fastest way to display the block height with a shell script?

I propose the following with simple bash scripting using curl and jq.

First, install jq (to parse json)

macOS: brew install jq
Ubuntu: sudo apt-get install jq
Others at https://stedolan.github.io/jq/download/

Then, write a simple bash script

Using the moneroclub public node:

#!/bin/bash

INFO=($(curl -sS -X POST http://node.moneroclub.com:8880/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"\
get_info"}' -H 'Content-Type: application/json' | jq '.result.height'))

echo $INFO

Alternatively, using moneroblocks.info:

#!/bin/bash

INFO=($(curl -sS -X GET http://moneroblocks.info/api/get_stats/ | jq '.height|tonumber'))

echo $INFO


Does the key vector approach in RingCT represent linkability among transactions? Can it be exploited by blockchain analysis?

smooth (and I) expressed concern about this same thing during the implementation. The good news is Shen came up with an alternate construction where one MLSAG is used per input rather than combined (see here and below).

With the new construction the single secret index goes away, and we get a straight improvement on untraceability due to less inputs on average. I don't think the proof for the new construction is published anywhere; that would be a good thing to add to the document.

It also wasn't really compatible with existing Monero transactions in the original form for more than one input, as they reference (and order) inputs by offset rather than by key or arbitrarily.


I consider "dust" to be any amount of Monero not exceeding the cost of the transaction fee, therefore nullifying its value.


What's the tip for protecting your laptop from damaging during mining?

None of the mentioned points is really correct.

1) Break every hour

I don't see how that could help in any way, really.

2) Let your CPU cool

Your CPU should not get to hot but letting the CPU cool down and then start again isn't the answer. The real answer is, don't let it run all the time on 100%. If you are mining you have to set the number of threads. The more threads the more your CPU is occupied. If you worry that your CPU might get to hot then don't use the maximum threads possible.

3) Plug in the power

That one is actually kind of correct. If you mine with your laptop then it can be that your laptop is set up so that it will not use the full processing power if not plugged in. If that's the case, then you have two possibilities. 1) Plug in the power 2) Change the OS setting so that it will use full processing power. Also, the real threat here is, that your battery might break faster if you constantly running on full power without being connected to power


Laptop has to go to service center - delete GUI?

Your password should keep it protected but its probably advisable to at least delete your wallet (found in "C:\Program Files\Monero wallet" I think) as a malicious person could still copy, and brute force it. Alternatively you could simply generate a wallet on a new machine, and transfer them.


CryptoNight-Lite PoW modifications in Aeon

There are two modifications: the scratchpad is only half the size of regular Cryptonight (1 MB rather than 2 MB) and the number of AES iterations is halved (half a million rather than a million). This makes a light hash about 4 times as fast as a regular one.

It's a bit hard to tell how this change influences blockchain sync since different machines will have different performance behavior and bottlenecks, but for a CPU bound sync, a 4x improvement is a good first approximation.


See get_transfers. It has the necessary options to filter by height.


"Failed to lock C:\ProgramData\bitmonero.daemon_lock"

Most likely you were running it before and killed it uncleanly. Windows takes a few minutes to notice that the owner of a file lock has died, before it cleans up the lock.


"Error: Problem fetching info-- rpc_request:" when running monerod as service

The RPC does not return connection info when running the status command because it is a restricted RPC and restricted RPCs do not return any privacy sensitive info.

In order to get the proper output to the status command it must be run against an unrestricted RPC port.

It is possible to run a node with both restricted and unrestricted RPC ports. This would allow public access to your node through the restricted RPC, while keeping the unrestricted RPC sealed off for your own access.

If you decide to run an unrestricted RPC port make sure it is not exposed to the internet!!! Otherwise you may be jeopardizing your privacy and allowing anyone to control your node and use your CPU to mine for their wallet.


xmr-stak-cpu is a pool miner: it doesn't mine directly, it just hashes on behalf of a central pool, who actually mines. The pool will pay you later from the blocks it finds, based on the work you did for the pool. You can see pool mining as some kind of subcontracting: the pool operator wants to mine monero, but subcontracts the hashing power to others, who run such programs as xmr-stak-cpu, minerd, etc.

In contrast, monerod mines directly for you. You get the block reward when you find a block, rather than the pool operator.

Pool operators run monerod themselves (though typically don't bother mining with it directly, they just use the hashing power supply by their miners).


Does bisq have a monero premium when buying?

You can check on a service like CoinMarketCap.


Upgraded Monero GUI, but getting an issue with "update needed"

The daemon displays this warning approximately a month in advance of a scheduled protocol upgrade. However, sometimes the new version is not ready yet and you simply need to wait until v0.13.0.0 is released to update. Note that a scheduled protocol upgrade is planned for ~18 October. Thus, make sure to upgrade before that date.

  Did I do something wrong?

No.


Reason for 9 month period between v4 and v5 forks

Aside from the general convention of aiming for March and September hard forks is there any reason why the v5 fork could also not happen sooner?

RingCT is a significant protocol change involving complex cryptography. Sticking to the original date increases the time to test this relatively novel technology.

  RingCT code was released with Monero v0.10.0 - Wolfram Warptangent several months ago and Monero users, are excited about improved privacy features. Why is there a need to wait until September to enforce RingCT network wide?

While RingCT will not be enforced until September, RingCT transactions can be performed during this phase. Indeed, I think any new wallet software will default to RingCT transactions - so the only people that would be making old-style transactions are those using old software. So people can use RingCT in the interim.

  If convention is the primary reason why not activate v5 in March 2016 and resume the conventional fork schedule after that? Since RingCT is working on testnet today, if January 2016 until March 2016 not long enough of a (main-net) testing period before RingCT is enforced?

3 months can go by extremely fast in an open-sourced, volunteer driven project. And as I mentioned above, RingCT isn't enforced, but its also allowable.


I upgraded to a new My Monero App now I lost my coins?

You will need your mnemonic seed. Since you've found it, what is your restore height? You might need to lower it a bit, it depends when was the last transaction.


There's a list here: https://getmonero.org/community/team/

2 of them made their identities known. Some of them are inactive. But the role of core team is not to do all the work. They're there simply as trusted gatekeepers of the project. I haven't seen them do much coding.

Coding is done by many other contributors. There are good stats on this here: https://www.openhub.net/p/monero


Is the Bytecoin proposed scheme to scan numerous addresses faster interesting for Monero?

Bytecoin's scheme is to create addresses which differ in their spend key, but not in their view key. In that way, they are able to scan incoming transactions once, using the shared view key, while being able to distinguish the provenance (assuming they assign one such key per possible sender).

I like this system, as it's pretty simple, very scalable, and even decreases the space needed on the blockchain due to not needing a payment id.

I do not think it was discussed for Monero, though moneromooo has said to like that scheme.

It is pertinent to note that these different addresses are still half identical, and thus two such addresses can be trivially known to be the same owner.


Where is the public key/output for the miner reflected on the blockchain?

Transaction fees and block reward are sent together as the miner reward. For example, the block 1229239 has one non-coinbase transaction whose fee is 0.01. The block reward is 8.8642, so the miner reward is 0.01 + 8.8642 = 8.8742.


This may not be a fatal error: if you already have peers in your p2pstate.bin file, then accessing seed nodes is not necessary. If you don't then it is, and you need to ensure you have working DNS from the machine/VM aeond runs on.

The Aeon seed nodes are:

74.91.23.186
  192.187.114.114

They expect connections on port 11180. There are just two, so if they're both down when you try to connect, you might have to wait. They appear to be both up currently.


How is the "account" command used in the CLI?

Yes, you may use accounts to help managing subaddresses, but you don't have to. If you don't care which address receives coins as long as it goes to your wallet, just leave it.

Accounts work like this:

By default you get a single account with number 0.
You may switch current account context by issuing account switch <number> or by account new which creates a new one.
Each of these accounts has its own primary address. The account 0 is a wallet's primary address, others have a subaddress.
When creating an account, it gets a new subaddress.
Additionally, every account can get additional subaddresses, created by command address new
Once you have created accounts, the balance command shows contents of the current account only:

[wallet BZwH58]: balance
Currently selected account: [1] (Untitled account)
Balance: 50.000000000000, unlocked balance: 0.000000000000

To get contents of the entire wallet, use the account command:

[wallet BZwH58]: account
        Account               Balance      Unlocked balance                 Label
       0 9wFuzN       14.943273120000       14.943273120000       Primary account
       1 BZwH58       50.000000000000        0.000000000000    (Untitled account)
----------------------------------------------------------------------------------
          Total       64.943273120000       14.943273120000

The outstanding question is how to transfer coins between accounts without creating a blockchain transaction. I haven't figured it out yet. It seems that accounts are like separate wallets. To transfer between them you must create a regular blockchain transaction.


Recover XMO. ltc-xmo through changelly but in XMR wallet

The transaction is present only in the XMO blockchain, not in XMR blockchain. You can't get XMR with a XMO transaction.

The upgrade guides won't help you since the cases tackled by those guide is for (1) outbound transaction mistakenly sent in XMO chain when it's meant for XMR, and (2) inbound XMR transaction not showing in wallet due to wallet syncing with XMO chain. You are asking for an inbound XMO transaction (post-fork) to be shown in XMR wallet. Since the transaction is not present in XMR chain, there is no way for you to receive XMR in this way.

Your best bet is to get a reputable exchange or cryptocurrency converting service that will accept XMO (or XMC; They are the same thing), and sell them for XMR. (That is, if you can find a reputable exchange for XMO at all; XMO is shady all along) You still need to download an XMO wallet to send your XMO out. Official XMR wallet v0.11.1 (Helium Hydra) theoretically works but I have never tried it.

And in case you still haven't realize, avoid Changelly.


Would an attacker knowing the block-heights of my wallet's transactions weaken my privacy/security?

Yes, it would weaken your privacy. By knowing when you transacted, an attacker can narrow down the field of which possible outputs you own, thus increasing their capability to trace your past and future transactions.


What is the difference between Monero (XMR) and Beam (BEAM)?

Beam authored a similar piece on a comparison between Beam, Monero, and Zcash that I recommend you read here to get a different perspective. I personally disagree with some points, but the high-level details are more or less correct.

Pardon the image, but there is no way to create tables in StackExchange.

Beam's privacy is best characterized as "Monero with aggressive pruning and no ring signatures." Users who are unable to get access to old information cannot pull up past transaction information by looking at the current ledger state. However, those who receive transactions as they are broadcast can see the inputs and outputs for individual transactions. This effectively indicates whether outputs are spent, something that is not possible with Monero. I argue that the article overstates the privacy protections of "confidential transactions" in Beam. CT is a technology that hides transaction amounts, nothing else. The output transaction graph is hidden through obscurity of information, not anything committed on-chain.

Monero's scalability has improved significantly over recent years. Transaction sizes fell from ~13 kB to ~1.5kB. Monero now supports pruning, allowing users to ignore most of the information for old transactions. Still, Beam allows more information to be pruned, and they prune it much faster.

I did not include network privacy on this chart, since both Monero and Beam provide network privacy. Monero provides support for Tor and i2p, and it later will provide support for Dandelion++. Beam supports Dandelion++, and users can use Tor or i2p if they configure it manually. Transaction network obfuscation is important, but it's less important for most people than graph protection.

I like to think of Monero and Beam as projects that are pushing the privacy and scalability boundaries, each beginning in different positions. Monero is focused on a privacy angle with scalability second, whereas Beam has the opposite focus.


How to change the monero-wallet-gui rendering mode for older computers

Here is how to do it:

Linux & OS-X:

The easiest way is probably to launch it via terminal (has to happen in the same terminal session).

QMLSCENE_DEVICE=softwarecontext ./monero-wallet-gui

Windows:

Click the Start button, right-click the Computer option in the Start menu, and select Properties.
Click the Advanced System Settings link in the left column.
In the System Properties window, click on the Advanced tab, then click the Environment Variables button near the bottom of that tab.
In the Environment Variables window you can now add a new User Environment Variable. Name=QMLSCENE_DEVICE / Value=softwarecontext

Allright, so far so good. but what does it really do ?

The different isnt that easy to spot, but for users on old machines it will make a big difference :-)
you might notice the difference when comparing the font.


How to generate deprecated Monero Payment ID

Old unencrypted payment IDs were deprecated some time ago and support was finally removed from the official wallets last release. Therefore, while it's still technically feasible to add an old style payment ID, no wallets will actually recognize it.

Only encrypted payment IDs are supported nowadays and these are created by making an integrated address. Alternatively use subaddresses.

If your question is about how to technically add a payment ID, knowing nothing will recognize it, this is done by adding the data prefixed with the TX_EXTRA_NONCE and TX_EXTRA_NONCE_PAYMENT_ID bytes to the tx extra field.


I've sent real Monero from Coindirect to my stagenet wallet address, not my mainnet wallet address

Stagenet wallet addresses have different prefixes, and so Coindirect's wallet would consider your stagenet address invalid. Even though they didn't alert you to the problem when you entered the stagenet address, their wallet should still automatically fail and not attempt the transaction when the payment attempt is made.

Therefore you should contact Coindirect and ask them to investigate the failed payment.

In the worst case scenario, if Coindirect have a wallet that is not validating addresses prior to constructing transactions, you can still access the funds by creating a mainnet wallet using the stagenet seed.


How about setting up your own stratum engine with MiningCore and connect everything you have to that?


Monero wallet code base dependencies and APIs?

For compiling, the dependencies are all listed in the project's README file. When built as static binaries though (the way the releases are built), there are no runtime dependencies, but if you compiled as dynamic, the libraries listed as dependencies are then required to be installed on the target system.

For any Android/iOS wallets, you will need to consult with those particular projects.


Is there any benefit to the network by running multiple full nodes from one location?

It's even harming the network, since every full node will be synching the whole blockchain from other nodes and using their bandwidth without giving more back to the network than one full node at this location would do alone.

However for one location, there are several possibilities, which differ a little bit from each other:

Home internet access provides probably very little upload speeds at most locations, so each node will sharing very little with other nodes but still synching the whole blockchain from them.
VPS or Cloud servers at one location like Amazon AWS can make sense, since they have a very good outbound connection and each one with a small CPU/memory config can reach its limits. Also recommended as remote node for privacy concerned users who want to run an own node but their home connectivity doesn't allow them due to bandwidth limits.
Dedicated servers hosted in the same datacenter are still very helpful for the network, since they have mostly a good connectivity and a lot of bandwidth and hardware resources. In most cases they will be operated by different people what decentralises the control and distribution of the blockchain.

So no, several full nodes at one location sharing the same internet connectivity and controlled by one and the same person are no benefit for the network. At home the best solution is probably to run one energy savvy device like a RaspPi or similar for a full node and connect all other devices to this node.


An old experiment of alternative implementation of Monero can be https://github.com/monero-project/mininero

It's not an alternative for Monero but an alternative for RingCT transactions.


Is it possible to set the priority / fee multiplier below 1?

Consensus rules don't disallow it, so a lower fee than priority 1 would be a valid TX in a block. If you're a miner, you're free to mine 0-fee TX-es.

On the other hand, as a non-miner, getting into a block is another story because anything lower than minimum fee won't get relayed through the network so no miner will ever see your TX for it to have a chance at getting mined.

Note that the minimum do-not-relay fee could be changed without a HF in case situation would require it. If some % of nodes are running clients with looser requirements, it could end up in a block and get mined.


Running at full utilization is likely to degrade performance, especially for the CPU. It's difficult to say by how much, though.

Luckily, your temperatures are pretty solid at only 60 degrees. This is around the maximum I would recommend for constant use.

Since the 8350 has an 8MB cache, it's actually optimal for you to mine with 8/2 = 4 threads. Any number greater than this is most likely wasted. You can reduce it below 4 to reduce CPU use.


What is the correct way to make a systemd service file for monero-wallet-rpc

I got it working a little better, however every once n a while, the wallet rpc service stops and tries restart, but can't because the wallet lock file still exits.

[Unit]
Description=Monero Wallet RPC Daemon
After=network.target monero-node.service

[Service]
User=root
Group=root
Restart=always
RestartSec=60
Type=simple
ExecStart=/opt/monero/bin/monero-wallet-rpc --wallet-file=/wallet.bin --password Seceret_Password --daemon-address 172.16.254.80:18081 --rpc-bind-port 8082 --log-file /var/log/monero/monero-rpc.log --rpc-bind-ip 172.16.254.80 --confirm-external-bind --disable-rpc-login

[Install]
WantedBy=multi-user.target


How can I recover a wallet using the mnemonic seed?

Right now there are two primary ways to do so:

Go to the folder containing monero-wallet-cli and run "./monero-wallet-cli --restore-deterministic-wallet", entering your mnemonic seed when prompted. NOTE that this will simply restore your wallet keys. You will still need to scan a blockchain (either your local blockchain or a remote blockchain) to see your balance and make transactions.
Visit mymonero.com and simply enter the seed in the login box.  You will be given a notice that importing your seed will cost you 1 XMR (recently lowered from 10 XMR because of the increase value of Monero) mymonero service has to scan the entire blockchain, but going through this method requires no prior setup.


Bytecoin was exploited shortly after its developers were privately notified of the bug. Most reasonable conclusion is the Bytecoin devs themselves performed the exploit. https://twitter.com/fluffyponyza/status/865619303651053568


Based on Nate's understanding of Cryptonote's ring signature implementation: No, it cannot be used with colored coins:

With Bitcoin, there is a one-to-one correspondence between inputs and outputs of transactions. Suppose there is a transaction X with an output X1 that sends 1 satoshi to Alice's address A, and everyone agrees that output X1 is coloured so that it grants title to Alice's 1977 Chevy Nova. If Alice decides to give the car to Bob, she creates a new transaction Y, with an input pointing to X1, and whose sole output Y1 sends 1 satoshi to Bob's address B. Now Bob can prove, by creating a signature corresponding to his address B, that he is the rightful owner of the car. If Mallory tries to claim the car by creating a different transaction with input X1, he will be found out, because he can't sign that transaction with Alice's private key, so it won't verify. If Alice tries to give the car to someone else by creating a second properly signed transaction Z with input X1, it will be detected as a double spend because another transaction spending X1 precedes it in the block chain.
With ring signatures, this correspondence is broken. When creating a transaction, in addition to the one output (of a previous transaction) that you really want to spend, you can list many others. You create a signature that proves that you are authorized to spend one of the outputs you listed, but doesn't give any information about which one it was. However, a linking algorithm ensures that any future attempt to spend that output again will be noticed and rejected.
In the above scenario, if Alice uses a ring signature on her transaction Y, including not only X1 but another output Z1, then her signature will not prove that she is entitled to spend X1 (and therefore is the rightful owner of the car and can give it away); it only proves that she is entitled to either X1 or Z1.
Furthermore, Mallory could create a transaction M that includes X1 and another output K1 that he is entitled to spend. Since he has the private key corresponding to K1, he can properly sign the transaction M, but it won't be clear whether it is spending X1 (which would convey title to the car) or K1 (which won't).
Now, ring signatures are an optional feature in Cryptonote. If you want, you can create a transaction with only a single input, which will make it unambiguous which previous output you are spending. To avoid confusion such as Mallory's transaction above, a coloured coin protocol for Cryptonote would probably specify that to convey title, you have to use a transaction with a single input; then Mallory's multiple-input transaction above would still be a legal Cryptonote transaction, but the community would agree it doesn't grant him title to the car.
In short, the whole point of coloured coins is to create an unbroken chain of transactions that traces the title of the car, and the whole point of ring signatures is to avoid creating such a chain. So if you want coloured coins, you have to avoid using ring signatures in this way.


What level of peer review is required for Monero website updates?

I believe that fluffyponyza controls getmonero.org and ultimately has the power to update the website on his own or by merging pull requests of others. This does not seem like the type of thing that could be easily and safely delegated.

There is a formal procedure for developer contributions to Monero addressed in this question. However the procedure is likely much less formal for the website. My guess is that most relatively "harmless" pull requests such as merchant or moneropedia updates receive an eyeball review and critical updates such as links to new binaries or security alerts similar to the "Cobra" update to Bitcoin.org are carefully reviewed by fluffyponyza.


How does Monero use DNS to discover seed nodes?

This usually works, but I broke something when moving the seeder to a new set of servers. It should be working again soon!


How far will Monero scale up (gradually or instantaneous)?

I am pretty sure that the network could not handle a million daily transactions (how many does it handle now?)

In the last day, Monero processed an average of 2.22 transactions per block excluding coinbase transactions. This comes to about 2.22(30)(24)= 1598.4 transactions per day. As demonstrated by the August 2014 spam attack, Monero blocksize limits allow for scaling with increasing transaction volume.
Scaling can happen quickly but not instantly. In your hypothetical example where transaction volume goes through the roof overnight, transactions would get relayed but sit in the txpool until expiration. Given enough time, the maximum blocksize would scale to allow the greater load.
Based on these transaction per second estimates Monero can handle roughly 1700 transactions per second with a  Intel i7 2600k quad core processor. Transaction validation is quick and 1 million transactions per day would be extremely easy for all modern computers. 1700 transactions per second(60)(60)24=146,880,000 transactions per day that can be validated by the 2011 computer processor mentioned above.
Hard drives are getting cheaper every year. 2TB SSDs are now available for under 1 Bitcoin (under 100 Monero). The cost of storing the blockchain is not significant for those that value their privacy enough to run a full node.
For the foreseeable future, bandwidth (not validation times or memory cost) will be the limiting factor in parts of the world with outdated infrastructure. Monero is working to reduce bandwidth requirements with things like Fluffy Blocks. Pruning like being experimented with by Aeon and light clients can also reduce the need for bandwidth for those with metered or slow Internet .


Simplewallet: How do I get the tx_id needed for check_tx_key and get_tx_key?

Transaction hash, transaction id, txhash, txid, are all terms for the same thing.

When you send a transaction, the tx key will be saved in your wallet cache (assuming you have this enabled, this is the default for most wallets, but for a short time after this feature was coded, it was not the default. Use set store-tx-info 1 to enable, in case it's off).

If you remove your wallet cache, this will be removed. If you need to remove your wallet cache, and you think you may need the tx keys, you can write them down or save them in a text file). Unfortunately, the wallet cache sometimes becomes corrupt, and it will be made into an LMDB database in the near future to avoid this.


Could monero benefit from research done for bitcoin?

Research builds upon prior research, so yes, definitely. For example, RingCT builds on both Nicolas van Saberhagen's Cryptonote and Gregory Maxwell's Confidential Transactions for bitcoin, and merges them.

I hear some kind of SegWit is theoretically possible with Monero, though I do not know the specifics.

Block propagation is currently not very optimized I think. Transactions are sent twice.

Of course, every bit of research may not be applicable to Monero, but given both currencies are "standard" output based PoW curencies, there will be some overlap.


Monero is an open source project, and is no different than most in that respect. There is no company or similar organization providing funding, and most developers contribute pro bono.

That said, there is an optional funding system called the "Forum Funding System" which allows a person to request funding for any particular reason. This is wholly voluntary, and not connected to the consensus rules in any way. This allows monero holders to decide to fund people if they think that the proposed task is likely to be good for monero, and thus increase the value of their own monero.

Several such funds have been successful, some are still ongoing, and some failed.

In addition "smart mining" (if your CPU is idle and you are not running on just battery power it will begin mining) once released will help with development funding (via optional donations) in addition to network decentralization.

Some developers also build Monero related services (such as xmr.to) that will financially benefit from the growth of the Monero network.

Some services also donate to Monero core development - for instance, most (if not all) mining pools include a small percentage donation to core development.

Finally, some individuals donate directly to core development. For instance, on the Community Hall of Fame, it can be seen that some members have donated 20k xmr to core development. Though it should be noted that the hall of fame includes funding routed through the forum funding system as well as direct donations.


Can you input the blockchain through remote web server?

You can use monero-blockchain-import to import a raw blockchain file, wherever it comes from, including from your own web server.

However, monero-blockchain-import does not support reading from the network directly, it must import from a file (and will make two passes over it, if memory serves).

One possibility is to temporarily mount a partition from your web server onto your VPS, maybe using sshfs.

In any case, do not turn verification off. Many people seem to be doing this for speed, which opens them up to being fed malicious blockchain data.


Monero translates to coin in Esperanto. The name of the original project that Monero is based on was called BitMonero, or literally BitCoin in Esperanto.


I have two R9 290's online mining. I have an AMD Sapphire running approximately 723h/s sure I can do it a little better. Also have a PowerColor running but its only at 636h/s hopefully that will give you a little idea. A lot depends on the model.


Is there a monero-wallet-rpc call that can sign/verify a message?

Yes, there is the "sign" RPC which takes a "data" parameter (string), and the "verify" RPC which takes "data", "address" and "signature" parameters (strings).


I would like to know exactly what is going on behind the process of creating the mnemonic seed from the string of bits.

The whole process is explained here:

How are monero wallets generated?

  For example I don't understand why in the vocabulary is only around 1624 words, I would expects full 11 bit scope (I suppose that bit string is divided into 11-bit parts and each is parsed with appropriate word)

It's 1626 words, and a mnemonic of 24 words gives 1626^24 combinations which is slightly above 2^256.

The conversion is done in triplets where each triplet is 32 bits of information:, ie 8 * 1626^3 = 8 * 2^32.0013 = 2^256.01

It's really a conversion between a base1626 number and a base16 number (or backwards), where each word can be though of as a label for some number between 0 and 1625.


Can I pool-mine with the default monero daemon?

No. The daemon cannot pool mine. It generates its own block template, and has no concept of shares.

The other way is possible for some pool mining software, however.


How to perform a simple verification of a Monero address with a regular expression?

Here is a simple regular expression and javascript code snippet that can be used to confirm a Monero address has been entered correctly.

Regular expression:

4[0-9AB][<insert-all-base-58-characters-here>]{93}

In Javascript:

addr_str.match(/4[0-9AB][123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{93}/);

Credit goes to /u/binaryfate for the useful info.


Missing transaction. XMR sent to Monerujo wallet

Each Monero transaction contains multiple inputs/outputs. It is not expected that you own all of the outputs of the transaction; only those destined for you.

The utility you used is reporting:

  This address owns output 1 with pubkey: 238a...48ce for amount: 0.297602

Which indicates that your address did, in fact, receive 0.297602 XMR.


Can monero include actual spent input as previous transaction output?

If you are sure a decoy used as ring member is already spent in some other transaction, no matter if the reason is zero-mixin (no longer supported) or n transactions using the same n ring members, which then are obviously all spent, it is not providing any privacy gains for your transaction any more. Also forked chains may increase the amount of obviously spent outputs in special cases.

Monero however doesn't support 0-mixin transactions since 2016, when 0.9.0 Hydrogen Helix has been released. Minimum ring sizes have been raised since then from 3 to 5 and 7 as of today. Additionally blackballing has been introduced, which is a simple blacklist of all obviously spent outputs, no matter for what reason. It prevents your wallet from adding these outputs as decoys to your transactions. The list will be huge (about 1GB) when scanning all ever used outputs, when 0-mixin has been allowed, before the introduction of RingCT eg. but it's only about 2MB when you only consider outputs generated after RingCT introduction. With a raising ring size it's getting harder to generate obviously spent outputs (no matter if intentionally or accidentally).


Is it possible to change the mnemonic seed of a monero wallet?

No. I actually had to just double-check, as I wondered if changing the wallet password maybe changed the seed, but it didn't.

If you need a new seed (because your existing one is compromised for example), you'll need to create a new wallet and transfer the funds over.


Does the ARM v6 have enough power to be a Monero node?

Thanks to Monero Reddit people, I solved the issue. This is the link to the discussion.

The issue was related to timezones because the timezone of the system was set on wrong timezone, one hour behind the correct one. So, I changed timezone with:

sudo dpkg-reconfigure tzdata

and restarted the Pi.

After a long time, the node completed the blockchain synchronization and now it's fully functional. I can access it from all the devices on the LAN, but all the operation are really slow.

So, to answer the question of the title, the Raspberry Pi Model 1 has enough power to run Monero daemon software, but not enough to be a Monero node in a real world because any operation takes too much time to be completed.


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.


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

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.


If Monero was sent to an address, do I have to wait to actually "see" the funds before transferring

No. This is because your address is not actually written to the blockchain. Think of address as an instruction. The sender read that instruction, and put the money in a special envelope hidden among all others. He didn't write an address on it, otherwise everyone could tell it was for your address. Instead, he wrote a little secret and only your wallet knows how to recognize it, but it needs to scan the whole blockchian. To spend it, you need to find it first, open it, and make a new TX from what you recovered.


Xmr-stak is one of the best Monero mining programs and you can easily compile it for macOS. All the necessary instructions are here: Compile xmr-stak for macOS.


How CryptoNote derived coins get balance from secret keys?

In CryptoNote you can't just get a balance for an address since CryptoNote uses one time addresses or stealth addresses.

Because of that, in order to get your balance you have to scan all transactions on the blockchain. You need to check each output if you can access it with your private view key.

Because of that, there is no easy way to get the whole balance without such scanning.

What you have to do is basically create a view wallet with your private view key and let it scan the whole blockchain for you. After the scan is done you can access the balance via a JSON RPC.
In order to speed up the process you can also give the wallet a starting height. For example, the scanning should start at the block where you sent your first coins to the address.

This is how it works for Monero and it should be true for some other CryptoNote coins.

What the simplewallet does (wallet2.cpp) is it gets all the blocks and pruned transaction data and starts generating a key derivation for each transaction and checks whether the transaction belongs to it.

If you want to go even more in to detail, I would read the follwing blog post:
https://steemit.com/monero/@luigi1111/understanding-monero-cryptography-privacy-part-2-stealth-addresses


Is solo mining nonviable on non-specialized rigs?

The Monero software, cli or gui, both only do CPU mining.  Solo CPU mining is generally thought to be non-viable these days, yes.  In general, solo mining is non-viable in this environment.

However, if you want to solo GPU mine, you can.  See this thread for discussion and options for how to solo GPU mine.

Generally, you're best off pool mining.

To address the side question, you're touching on a general feeling of new miners, or even small pool owners.  Everyone gets a little on edge when they've been mining for a while and haven't won a block.  That's normal.  The truth is you just need to know what to check, like ensuring your node is keeping up with the network, and otherwise you just need to wait and hope to win a block.  If you pool mine, there's much less waiting to receive positive feedback.


Where can I find the POW hash of blocks?

To find the PoW hash of a block, you perform two steps:

get the hashing blob for that block (get_block_hashing_blob in the Monero source), which is built by serializing the block, and appending the number of transactions in that block as well as the root of the Merkle tree
run Cryptonight (cn_slow_hash in the Monero source) on this blob

If you just want to lookup the PoW hash of a particular block, you can use the print_block command in monerod, giving either a height or a block hash, eg:

print_block 87493


Start the daemon: monerod --testnet and then once sync'ed...
Start the wallet in another window: monero-wallet-cli --testnet to create a testnet wallet, then...
Back in the running daemon type: start_mining <your-wallet-address-here>
Wait to mine a block. You'll then have testnet coins.


blockhashing_blob is the block header and Merkle tree root hash. The block header has a nonce field and it is this a miner updates and then hashes the blockhashing_blob (which contains the header and updated nonce).

blocktemplate_blob is the whole block with transactions (including any requested reserved space). Nobody hashes the blocktemplate_blob directly, rather, they use this to create a blockhashing_blob to hash.

The reason both are returned from getblocktemplate is because a miner / pool / proxy may want to modify the block's reserved space before creating the blockhashing_blob. This reserved space can only be easily changed before creating the blockhashing_blob because you need to know it's offset. Conversely, the nonce can be updated in the blockhashing_blob directly because it's at a fixed location.

Lastly, it is the updated blocktemplate_blob that's submitted back to the network when a successful hash is found. This has been updated to include the successful nonce and any reserved data. Setting aside other validation, other nodes simply convert the submitted blocktemplate_blob to a hashing blob, hash then check resulting hash meets the difficulty target. I.e. they do not need to edit anything.


The most profitable consumer-grade hardware that I know of is the GTX 750 Ti (an nVidia GPU). This is on a Hashrate per Energy Used basis, since the marginal cost of mining is the energy spent. It gets ~250 H/s for ~35 W. Some intel CPUs can get ~200 H/s for ~45-60 W, so CPUs aren't at that much of a disadvantage. GPUs tend to be cheaper, however, and you can use 4-6 GPUs in a single rig, whereas consumer-grade CPUs are 1 per rig generally. So there is less "extra" cost when GPU mining in building out the rest of the rig's components.


start_mining 2 is supposed to mine continously.

Mining is paused at a few points, when modifying the blockchain. It is possible that a bug crept in, causing mining to not get out of pause. A bug report on https://github.com/monero-project/monero/issues will be help in getting this fixed.

In the meantime, you can have a simple cron job restarting mining through RPC, like this:

curl -v -X POST http://127.0.0.1:18081/start_mining -d '{"miner_address":"insertyouraddresshere","threads":2}' -H 'Content-Type: application/json'


Is there a record of Monero OTC trading before it was listed on an exchange?

First, to answer your first question. Yes, there is a record of Monero OTC trading before it was listed on an exchange, which can be found here.

The OTC trading thread was started on April 22, 2014, whereas Monero launched on April 18, 2014. Therefore, undoubtly there have been some trades before aforementioned thread was launched. Most trades, however, likely happened in a private manner and thus are unrecorded. An exception is this "auction", where smooth traded 0.025 BTC for 1.2 XMR, which is a price of 0.0208 BTC/XMR. This trade was done on April 21, 2014 and therefore most likely the first recorded price (in Bitcoin) for a Monero trade.

  What was the highest and lowest OTC price for Monero??

Looking at the reported trades in the OTC thread, it seems that the highest price was recorded at 0.001750 and the lowest price recorded at 0.000200. This excludes smooth's trade, of which I am not entirely sure if that was the right price.

  How much OTC trading volume was there at the time?

From the reported trades in the opening post of the OTC thread we can see that a total of 86 trades occured over 24 days. The cumulative volume of these trades is approximately 134k Monero. This gives an average volume of approximately 5.6k Monero per day. In addition, the largest trade is a trade for 8000 Monero, whereas the smallest trade is a trade for 50 Monero.


This site has statistics and graphics on Monero transactions. It has 5 graphs, Transactions count (all), Transaction counts (per period), Transaction fees, Transaction outputs (sum), Transactions size (average). From these graphs you should be able to infer if the Monero network is much busier on certain times of the day.


Is a cold paper wallet more secure than a cold wallet generated with the CLI or GUI?

It is most secure because in the process of generating a cold wallet, the device used to create it is never exposed to a network.

This means that the only piece of information required to spend your funds didn't ever have a chance to be stolen by some hacker! Recall that the only way you 'own' monero is having the correct private spend key (or the 25 word mnemonic). If you completely isolate this piece of information and keep it 'cold' on a piece of paper, the only risk is someone breaking into your house and finding the piece of paper (or a bad random number generator - that's why you need verified software to generate it, too).

Either way to generate it is OK (downloaded copy of https://moneroaddress.org, CLI wallet, or GUI wallet).


Does running a full node becomes harder as the blockchain grows?

Yes, it does.

The first obvious requirement is a larger storage space needed for the raw blockchain.

The second one is the need to store an increasing amount of output data in fast storage, as they're randomly referenced by incoming transactions. This include key images, public keys, and amount masks. This set never shrinks.

If you also consider that the amount of transactions per unit of time increases, then you also need more CPU, memory, and network capacity. This is not implied by your question though.

There is no pruning in Monero currently, but this is something that is doable, and preliminary work was done to hash prunable and unprunable RingCT parts separately. There is also talk of dropping signatures beyond a certain age (ie, when they have more than a huge number of "confirmations"). What will be done is not yet decided though.


Can you mine on an Ubuntu USB drive using xmr-stak-cpu with no swapfile or swap partition?

Turn hypertheadding off in your bios.  Hyperthreadding is useless on any real number crunching.  I worked for Intel for 3 years and in the seismic industry for 5.  Trust me.  One thread per core on Intel architecture for anything like this.  On the new IBM power processors it is a little different.  Their smt implementation actually works.  Intel hyperthreadding may be useful on desktop applications.  I personally am convinced it is almost entirely a steaming pile of marketing garbage.


Hi and welcome to Monero.

Syncing:

I am going to make a guess here and assume you are using a HDD. This will sync slower than an SSD so will take a while to sync. You may also be connected to some slow peers. Be patient or download the raw database and perform an import. This may actually be slower though, depending on your internet speed.

Upcoming network upgrade:

This will not require a full new blockchain sync. Once you've updated your software, when you run the latest version, it will upgrade the database to the latest version.


How can I use Monero to pay a Bitcoin accepting merchant?

Any business that accepts Bitcoin can be paid with XMR.to which automatically converts Monero from the buyer into Bitcoin that will promptly be sent to the Bitcoin merchant.

Shapeshift.io offers a similar service to xmr.to but with slightly slower payments (they wait for tx confirmations instead of scanning the mem pool like xmr.to) and much lower maximum transaction sizes.

The only caveat to the above statement is that the goods/services being purchased must cost less than the maximum transaction limits (As of August 2017, 20BTC for xmr.to and <1.5BTC for Shapeshift.io).

Although the BTC payment to the merchant can be traced back to xmr.to or Shapeshift, it cannot be traced back to you because your Monero payment to xmr.to or Shapeshift was untraceable.

For maximum privacy connect to xmr.to or Shapeshift over Tor.

xmr.to logs are deleted in the following manner:

  To be precise, we purge your order from our database after the bitcoin payment we make on your behalf has 144 confirmations (about 1 day). After 2 more days, your order will be purged from our backups. That means all records of your payment will be gone from our system after 3 days.

If using Shapeshift, do not use the return address feature for an XMR address that can be tied your public identity.


Unable to run a cryptonote forked coin, what are node seeds

Not sure for exact details but:

try set seed=localhost on the first, and seed=node1 on the other
be sure to change all the ports not to clash with existing CN cryptocurrencies
be sure to change address prefix not to clash with existing CN cryptocurrencies
if there are some check-points like embedded hashes in the source, you'd need to tweak those as well


Starting monerod v0.11.1 Exception in main! Failed to initialize p2p server. Failed to deinitialize core

Make sure you don't have another monerod service running. I had to kill mine and start it again to get it to work.

ps -aux | grep monero
kill < id >

Get the id from ps and then kill it.


Is there a minimum and maximum mixin size?

As mentioned by JustinEU4, degradation of privacy for one party also degrades privacy for others. The effect is typically small, but if there is a lot of degradation, there comes a threshold effect.

This can be understood intuitively with a simple, contrived, example:

Alice, Bob, and Charlie each write their names on a piece of paper, fold it, and put it in a jar. Eve comes in, and tries to work out which piece of paper reads "Charlie". If the papers are well folded, etc, the probability to get it right is 1/3. This'd be the same if Eve was trying to work out which paper is Alice's, or Bob's.

Now, imagine Alice decides to forego her anonymity, and points out which paper is hers. Now Eve can guess at Charlie's paper with 1/2 probability, though Charlie mixed with 2 others. If Bob now also decides to point out which paper is his, then Charlie is now deanonymized, despite mixing with others.

I concur with JustinEU4's pointer the research from https://lab.getmonero.org/ to get more details about this.

As for the more prosaic rules in current monero, the minimum mixin is now 2 (so you mix with two others), unless there are less than 2 other outputs for at least one of your inputs's amounts. Since mixin 2 would not be possible in that case, mixin 0 is allowed as a special case, so you don't get stuck with unspendable monero. In that special case, only one mixable input is allowed in the transaction.

There is no arbitrary maximum mixin, but it probably breaks over 2^31-1 as an int is used. There are practical limits though: you want to find that many other outputs of the same amount on the blockchain, and you want the resulting transaction to be no larger than the current block size limit so it can be included in a block.


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. ... 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


What signature scheme does Monero use for multisig?

Initial support detailed here:
How to Use Monero Multisignature Wallets (2/2 & 2/3)
Then arbitrary M/N was added later.