How can I sync the blockchain from scratch, gently in the background? I'm new to Monero, forgive me if this is a newbie question!

I've tried to sync the blockchain from scratch twice now. Both times, it's slowed my computer to an absolute crawl and my computer was unusable.

I know it's going to take days to fully sync (I have an HDD), but is there a way I can sync from scratch in the background and keep my computer usable in the meantime? Will changing the block sync size or setting a bandwidth limit help?

I'm running Monero 0.14.1.0 GUI on Ubuntu.

Thanks!

I know it's going to take days to fully sync (I have an HDD), but is there a way I can sync from scratch in the background and keep my computer usable in the meantime?

You could maybe try setting --max-concurrency=1 --prep-blocks-threads=1 which will limit the threads used. Of course, this will slow down your full sync.

You could also try these settings in combination with first downloading the raw blockchain outside of monerod and then importing. See instructions here. That way you are simply downloading a ~70G file before even processing (importing), it to the daemon. Downloading a file shouldn't slow the rest of your machine down. The bit that does the resource intensive work is the importing, and if you use flags like above, you will be limiting the resources made available to monerod at the expense of it taking longer to process.

  Will changing the block sync size or setting a bandwidth limit help?

I don't think changing the bandwidth settings is the best way to go here. You'd be throttling your bandwidth usage as opposed to the resources being used by your system to process the downloaded data. Sure, you'd end up spending longer downloading as opposed to processing, but when you are processing, it's going to zap the same amount of system resources that you are currently seeing.


How is Keccak calculated in Monero? I am reading the monero's implementation of Keccak (used as first part of slow_hash) in src/crypto/keccak.c

I have found that it is a Keccak-256 (with b=1600, c=512, r=1088) and "output" of 1600 bits (is this really keccak's output or only internal state?).

I tried to compare it with simple Python implementation Keccak.py, but the final result is not the same (in fact, first 136 bytes of output are the same, they differ only in the remaining 64). I used myKeccak.Keccak((len(s)*4,s),1088,512,1600,True) command. However the state after "Value after absorption" is correct! It is the same as output from monero's keccak1600() function.

Looking at the Keccak.py sources, does this mean that monero's implementation omits the squeezing part of Keccak? I don't think so as I can see invocation of keccakf() on 2 places in keccak.c. Then how is it possible that the final result of python implementation is not correct, but the state before squeezing is?

EDIT: I am asking about the Keccak implementation which is used as first part of slow_hash (during mining), which produces 1600 bits of output.

The keccak1600 function used by Monero is based on Keccak-256 (b=1600, c=512, r=1088 and output of 256 bits, not 1600 bits), but it returns the whole internal state (1600 bits) instead of the first 256 bits of the internal state.

The "squeezing phase" present in Keccak.py doesn't appear in Monero's keccak.c file because in this particular case it has no effect.

The reason why there are two places where the keccakf function is called is because in monero's keccak.c, most of the message is hashed in the for loop (first keccakf), then the remaining bytes of the message are padded and hashed (second keccakf).

In mininero's Keccak.py, the message is padded first, then the padded message is hashed completely (first keccakf in the for loop). The second keccakf (in the "squeezing phase") will never be called given the parameters used for monero (n = 256, r = 1088).


How do I connect an AppVM running the CLI to a separate AppVM running monerod in Qubes? I have monerod running on an AppVM in Qubes and want to run the CLI in a separate AppVM to minimize the exposure to my wallet files.  First, is there any downside to this approach? Second, can someone provide a walk through for accomplishing this?

You need to setup your firewall to allow connections between the two VMs.

Run this on startup (some script linked from /rw/config/rc.local):

/usr/sbin/iptables -I INPUT 5 -p tcp --dport 18081 -m conntrack --ctstate new -j ACCEPT

This allows incoming RPC calls.

In the firewall VM, allow the two VMs to talk to each other (again, from /rw/config/rc.local):

/usr/bin/iptables -I FORWARD 2 -s a.b.c.d -d e.f.g.h -j ACCEPT

/usr/bin/iptables -I FORWARD 2 -s e.f.g.h -d a.b.c.d -j ACCEPT

Rule numbers kinda arbitrary here, especially for your setup.


Is it better to mine with a CPU or GPU "The proof-of-work algorithm, CryptoNight, is AES-intensive and
  "memory heavy", which significantly reduces the advantage of GPU over
  CPU."
  https://en.wikipedia.org/wiki/Monero_(cryptocurrency)

Does this mean that it is generally more profitable to mine with a CPU? If I buy a new computer to mine, should I focus on CPU specs and ignore the GPU?

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.


What is Primo (Private Monero Payments)? With the introduction of payment for service in Monero (https://github.com/monero-project/monero/pull/5357), the Primo project was released (https://repo.getmonero.org/selene/primo) to make use of that feature. What is Primo, and how can it help someone use Monero's new payment for service system ?

Primo is a protocol and associated suite of software allowing a website to request payment for service by mining Monero to an address owned by the website owner.

Primo enables the following scenario:

Maureen is a webmistress, and she quite frankly doesn't like the way the web is full of advertisements/malware, and decides to get income from her website in another way. Using Primo, she is able to setup part of all of her website to request payment via Monero mining. If the user mines, then her web server will allow access without ads. If not, Maureen has the choice to either deny access, or allow but still display ads.

Ursula the web user is also running Primo, and visits Maureen's website. Primo will automatically spot that this website requires payment, and will tell Ursula about it. Ursula can then either accept or decline.

Technically, Primo is composed of three parts which work in concert:

primo-apache is a module for the Apache web server. Maureen will need to install it on her web server, and configure which parts of her site to require payment for. This module requires access to a Monero daemon which supports pay-for-service (ie, 0.15.0.0 or later). The Monero daemon will keep track of which payment are made, and when to allow or decline service.
primo-firefox is an extension for the Firefox web browser. Ursula will be running this. This extension will automatically detect when Ursula visits a website which is setup with Primo, and display a notification when she does.
primo-control-center is a graphical control center to be run by Ursula. It keeps track of which websites Ursula visited and allows her to control which websites she will allow mining for. primo-control-center coordinates with primo-firefox to list the Primo enabled websites Ursula visits, and is Ursula's all-in-one interface with Primo.

Thus, Primo offers a way for Maureen to get an income stream that does not depend on obnoxious or malware laden ads, and for Ursula to avoid the aggravation of browsing pages with ads.

Primo has a number of advantages for Maureen:
- she does not have to deal with a third party ad broker, which has control over which ads her visitors will be subjected to and may decide to drop her at a whim
- she will get paid in a decentralized currency, avoiding censorship by payment processors

Primo also has advantages for Ursula:
- her personal information is safe: Ursula does not have to supply credit card info to Maureen, preventing credit card fraud
- Ursula stays anonymous: no credit card info means Maureen cannot discriminate against Ursula as long as she supplies payment
- Payment is done as Ursula needs to: there is no payment in advance, unless Ursula chooses to

Primo also has a number of benefits for the Monero network:
- it increases the network hash rate, as more people mine Monero so they can access paid sections of websites
- it increases the Monero network mining decentralization, as each such websites acts like a small independent pool

Note that a disadvantage for Maureen is that her actual income will depend on when her users actually find Monero blocks, so she will get "blocky" payments every once in a while rather than a steady trickle. The larger her user base is, the more this disadvantage will vanish.


How does the difficulty adjustment for monero work? For context, the Monero hashrate has recently experienced a large, sudden drop in hashrate.

The network will adjust the hash rate accordingly, however it will take a certain amount of time for this adjustment to take place.

How is the adjustment calculated and how long will the adjustment take when the hashrate drops like it has today?

The difficulty adjusts with each block.

The adjustment algorithm examines 720 prior blocks, starting from 15 blocks ago.

Of those 720 blocks, the 60 highest and lowest block times are excluded from the analysis, which leaves 600 blocks.

Out of those 600 blocks, the average block time is determined. This average is then used to adjust the difficulty proportionally in order to target a 120 second block time. Difficulty is defined as the number of hash attempts required, on average, to find a valid hash for the block every 120 seconds. The unit of difficulty is therefore "hashes".

When there is a large and sudden change in hashrate, e.g. due to the April 6th 2018 PoW change, it will therefore take 15+60=75 blocks before the change in hashrate starts to affect the difficulty. The change to difficulty when adjusting to the new hashrate will be gradual, and after 15+60+600=675 blocks the new hashrate will have been fully taken into account by the algorithm.

When you see web sites display a "network hash rate" statistic, what those sites are actually doing is inferring the network hash rate from the current difficulty. The actual current network hash rate can only be indirectly inferred by observing how quickly blocks are being mined.

Credit for this answer goes to smooth from his comment here: https://www.reddit.com/r/Monero/comments/8a9wof/the_actual_drop_on_hash_power/dwxxiek/


Trouble compiling Wolf's cpuminer-multi on Mac OS X I’m new to Monero. I’ve got three Macs setup as nodes mining through monero-cli-wallet and a windows machine which I have configured for pool mining. On the advice of many threads I selected a smaller pool (https://moneroworld.com/#) and followed the instructions there to get my Windows PC connected to the pool with CPU and GPU miners. All seems to be going well in about a week I’ll have enough XMR to actually get a payout ;-)

What I would like to do is contribute my three Macs to the pool  (all running Mac OS Sierra 10.12.2). I looked at all of the other pools help pages to see if they had easy Mac setup but it appears the only open-source way is to compile Wolf’s cpuminer-multi from GitHub. I have not been able to compile it successfully. I managed to get the dependencies installed without issue (jansson from GitHub - yes I know it is included in the cpuminer-multi tree but I wanted to see if I could at least install something from source off of GitHub; and Curl through Home-Brew ).

The instructions I am following are:

git clone https://github.com/wolf9466/cpuminer-multi

cd cpuminer-multi

./autogen.sh

I got 'aclocal' error so installed automaker via Home-Brew which seems to fix it
Then got error ‘configure.ac:133: error: possibly undefined macro: AC_MSG_ERROR.If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation.’ Fixed with 'brew install pkgconfig'.

CFLAGS="-march=native" ./configure #seems to run fine with no errors reported that I can see

make #error: ‘make: No targets specified and no makefile found.  Stop.’

Is there a some other syntax for the make command I need?

On another note, does Wolf’s AMD GPU miner work on Mac OS? Once I figure out my cpu miner-multi issues I’d like to tackle that if it runs ok as both my iMacs have AMD graphics cards?

Thanks for taking the time to read.

Regards,

Greg

I've had the same trouble as you. Thankfully there is an OSX fork by correcthorse that's worked for me:

https://github.com/correcthorse/cpuminer-multi

It has the build instructions for OSX in the readme:

  install Xcode from app store
  install Xcode command line tools xcode-select --install
  accept Xcode license sudo xcodebuild -license
  install Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  brew install autoconf automake pkg-config
  continue with Basic *nix instructions

Basic *nix build instructions:

  ./autogen.sh # only needed if building from git repo
  Optimal GCC flags are built in - you only need to use -march=native if you want it
  CFLAGS="-march=native" ./configurec (Use -march=native if building for a single machine)
  make


Mining XMR - upgrading my graphics card hd 6950 to gtx 780 Evening all,

Currently running my old Dell XPS 8300, i7 2600 3.4GHz processor and a Radeon HD 6950 card.

Using the unified XMR-stak miner I'm getting around 270 H/s from the processor and 130 H/s from the 6950, that's using Afterburner to oc the card to GPU clock of 949 MHz, and mem clock of 1550 MHz, running around 70C.

Now,  the nitty gritty bit.....was looking at getting an upgrade from the 6950 to a second hand GTX 780, can anyone give me an idea of how much of an improvement (if any) I'm likely to get running the newer used card?

They tend to go for around £120 or so used, I'm not looking at a quick ROI as this is purely a background hobby for my comp which has been gathering dust!

Thanks all,

Vinny

I could go in to a longer answer, but essentially the crux of it is a GPU that old is not likely to provide any greater performance for mining that would be worth the investment of purchasing it.

To really get significant improvements in hash rate per watt, you should consider getting current generation AMD grpahis cards or basically any high end CPUs.


Can I avoid Javascript poisoning when using MyMonero.com? I read this from fluffyponyza regarding safety of his site MyMonero.com:

  There's simply no way I can control and guarantee the JavaScript
  delivery from the server to your computer, so you can be served
  poisoned JavaScript. Also, any local malware can and will steal your
  MyMonero private login key (we've seen evidence of this running in the
  wild).

Is it possible to avoid this risks of Javascript poisoning ?

Yes. In the mean time, a Chrome application have been released to largely reduce the security limits of MyMonero (that come from the concept of a web wallet rather than errors from the developer).
https://chrome.google.com/webstore/detail/safer-mymonero/hcgliilmeggjhmpkfglnekbegacockei

It protects you from "JS modifications, HTML injections, HTTP downgrading and Google Tracking".

Keep in mind that it is just "Safer MyMonero" and that there still are some risks, in particular local malware as mentioned by fluffyponyza.


Sent some monero with the cli using the transfer command. How can I get the key to view proof that I sent it using an monero explorer? I did a transfer using the cli and now I want to view it in the https://xmrchain.net explorer. What do I need from me to decode the outputs so I can prove that I sent it? And what commands do I need in the cli to output these things to decode the transaction on the explorer page?

If you know the txid for your transaction:

  get_tx_key TXID

And replace TXID with that transaction's txid.

Note that once you disclose that secret tx key to a third party, that third party can use it in the same way you do (ie, to try to prove they sent that tx).


When scanning blocks via the android mobile wallets like monejuro and cakewallet, does scanning happen server side or clientside? Scanning takes awhile when using a mobile monero wallet like monejuro and cakewallet. Is the scanning of these blocks done on the server side or the client side? Does having a beefy monero node help with scanning speed or does it depend on the client mobile device?

Both Cake and Monerujo wallets use the normal c++ simplewallet implementation.

That means that all your keys for scanning and spending never leave your device.
Thats also true for the view key which is needed to identify transactions that where send to your wallet.

Because of that the scanning is done on your wallet. Your device gets all blockheaders and a prune version of every tx. With the prune tx version it can check together with your private view key if a output within the tx belongs to you.

A node is limited by its bandwidth and its internal I/O speed. A bigger node can handle more "clients" since it can handle more requests at the same time.

If you restore a wallet you can improve the scanning speed by setting a date or a block height from which the scan should start.


Any ways to increase hashrate? I wonder why no one ever asked this question before...

Are there ways to increase the hashrate?

I know that overclocking and a CLI based OS could increase the hashrate. But I'm sure there are more than two.. What tricks are you probably using and what could lead to a better hashrate?

Thanks for your answer in advance!

Edit: I'm interested in advice for Linux and Unix

Background: I have a Raspberry Pi for mining and I got the maximum out of it (in my eyes...). Now it's interesting for me to know some of your 'tips and tricks'...

Quite honestly, mining on a Raspberry Pi is never going to give a good hashrate. The processor just doesn't have enough cache (you need 2MB cache per thread/core) for optimal hashing. You can't even add a graphics card (as there's no PCIe slot).


Does Aeon have a development roadmap? Monero has a clearly defined development roadmap. Does Aeon have something similar?

Monero has made many improvements since Aeon was forked from it. Which Monero improvements will Aeon rebase against and how will Aeon remain unique?

What part of the Aeon roadmap will be helpful to Monero developers in achieving their design and development goals?

Smooth just released a new Aeon roadmap today

The planned rebase is rather comprehensive and will include many Monero improvements including:

  LMDB, view-only wallets, message signing, usage of tx keys, Ring CT and a porting of the new GUI wallet to replace the old Neozaru open source GUI whose upstream code is no longer maintained.

Aeon will remain unique in that it will retain 4 minute blocks and the CryptoNight-Lite PoW that is mobile-friendly and allows verifying the blockchain about 4x faster than the CryptoNight PoW. A pruning branch (modified for LMDB) will be maintained. New features such as lightweight encrypted messaging will also be added to the roadmap.

  Some of the items from the existing AEON roadmap, such as the ability to perform signature trimming and faster syncing of non-fully-validating nodes, are being incorporated in Monero's RingCT implementation

Some Aeon privacy improvements have already been merged by Monero. One important example was the identification and fix of this leak of the real output in a ring signature when using a very recent output:

  The wallet and the daemon applied different height considerations
  when selecting outputs to use. This can leak information on which
  input in a ring signature is the real one. Found and originally fixed by smooth on Aeon.

In addition, Monero developers can benefit from observing an in production Aeon pruning branch and other scaling related features. Monero may not adopt these features directly but can reject, modify or otherwise learn from these experiments more than it could from any other cryptocurrency because of the similar Aeon codebase. Having smooth as a developer of both projects helps make both the XMR and AEON codebases easier for developers to understand and compare.


Recover an XMO transaction I have an XMR Monero wallet on my MAC computer, went through Changelly and sent (accidentally) XMO to it instead of XMR. Everything was correct except I sent XMO instead of XMR. I have looked at a couple of posts but they seem to be referring to recovering an XMR transaction to an XMR wallet. I have installed monero-original-v0.11.2.0 CLI wallet with the same seed words and now have the same address as my XMR wallet. That's where I'm stuck, the wallet is sync'd but I still don't have any balance. I also tried creating a wallet from a specific date. Can anyone help with where to go from here?
thanks - H Mark.

Edit:  Seems the question has been answered by dEBRUYNE in comments above.  Therein lies the answer.

Use your XMR seed with the XMO client to get your funds back.  You can still exchange them to XMR at Changelly, but I wouldn't count on that being the case forever, as XMO is not, as far as I know, used by anyone, at all, for anything.

XmanXU has posted on github the fork, though I would not recommend using it.  The person advertised the publication on reddit as well, to near-universal disapproval, by the way. It seems to be a scam coin that actually hurts the privacy of XMR itself.


C++ program to generate mnemonic seed, view/spend keys and wallet address? Is there a simple C++ program to generate a mnemonic seed, view/spend keys and a wallet address? The reason I am asking this is because I am working on an iPhone product and I require this to integrate Monero in Swift and Xcode. If you have a better solution please let me know.

XMR is a bit clunky, but should get you rolling. Also look at http://moneroexamples.github.io/spendkey/.


How strong is Monero cryptography against brute-force attacks? I have seen an image about brute forcing Bitcoin cryptography saying even a perfect computer which uses all the power of star system, and still wont succeed.

How strong is Monero cryptography against such an attack?

This image says that all the energy of the sun would not be enough to try all the Bitcoin private keys (256-bit keys).

The elliptic curve that Monero uses works with 255-bit private keys, and trying all of them would not be feasible either.


What to do about "Please check your wallet and daemon log for errors. You can also try to start monerod.exe manually." in the GUI I want to create a local monero node however it always comes with this error, "Please check your wallet and daemon log for errors. You can also try to start monerod.exe manually."
What should I do?

This message tells you that the GUI failed to automatically run the monerod software. This softwere's logs might have more information about why it failed to start, and the GUI is telling you to check those logs. They're typically stored in ~/.bitmonero/bitmonero.log (at least on Linux and Mac).

You can also run monerod yourself, instead of relying of the GUI automatic system. If you don't change the defaults (eg, port), then the GUI will spot a running monerod and not try to run it automatically.


Monero GUI startup (on Linux) getting *** Error in `./monero-wallet-gui': free(): invalid pointer: 0x00007f2afd1b9c60 *** Downloaded monero gui v12 on ubuntu and ran the command:

./monerod

then

./monero-wallet-gui

And now i get this error:

app startd
available width:  2495
available height:  1286
devicePixelRatio:  1
screen height:  2560
screen width:  1310
screen logical dpi:  96
screen Physical dpi:  95.9689
screen calculated ratio:  0.749757
*** Error in `./monero-wallet-gui': free(): invalid pointer: 0x00007f2afd1b9c60 ***
Aborted (core dumped)

You can resolve this issue (which is related to OpenGL) by starting the GUI as follows:
QMLSCENE_DEVICE=softwarecontext ./monero-wallet-gui
This ensures the GUI uses the Qt Quick 2D Renderer instead of relying on OpenGL. More information about the Qt Quick 2D Renderer can be found here.

Qt Quick 2D Renderer is an alternative renderer for Qt Quick 2 that uses the Raster paint engine to render the contents of the scene graph instead of OpenGL. As a result of not using OpenGL to render the scene graph, some features and optimizations are no longer available. Most Qt Quick 2 applications will run without modification though any attempts to use unsupported features will be ignored. By using the Qt Quick 2D Renderer it is now possible to run Qt Quick 2 applications on hardware and platforms that do not have OpenGL support.
Qt Quick 2D Renderer is a Qt module that contains a scene graph renderer plugin.


Stuck at "creating transaction" I'm trying to send funds but when I press "send", a new window titled "Creating transaction" pops up with a nonstop running circle hanging there forever....

I've tried twice and it's the same. The funds are not sent and I have to force close it.

Latest GUI 0.11.1.0 Helium Hydra linux 64bit.

An update to the current version 0.13.0.4 Beryllium Bullet of the Monero GUI wallet for Linux should solve your issue.


Monero mining equipments can mine Zcash as well and have the same hashpower? Is any device capable to mine monero, also capable to mine Zcash (zec)? The hashes per second offered in that equipment for monero would apply also for zcash?

That would be helpful for the mining calculations I want to do, because I want to be able to switch between both coins during my mining operations.

No. Monero uses Cryptonight whereas Zcash uses Equihash. They are different algorithms and most devices will compute them at different speeds, though for some devices they may happen to be close.


Is there a way to remotely access simplewallet securely? simplewallet has a RPC mode that allows you to access it via an API. This is intended for local use only.

Is there a way to use simplewallet remotely in a secure way?

In Monero 'Wolfram Warptangent' (v0.10.0.0-release), use this flag

--user-agent arg

It is used to Restrict RPC to clients using this user agent. Make sure to set the user agent to something that cannot be guessed. i.e. a random UUID.

That way only RPC clients that set the User-Agent in the HTTP header can access the wallet.

However, this requires that all RPC clients and RPC server share the same secret. If at least one of them leaks said secret, all the monero in your wallet will be gone. Also, all the User-Agent values sent to your servers will be visible.

A better option is to use something like this or this, to keep your RPC behind a proxy which needs authentication. I will write a tutorial on how to do this when I find some time.


Does it make sense to run two nodes in order to disguise your identifiable information? I'm repeatedly encountering statements related to passive monitoring.
Like that:

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 is low. monero wallet packet sniffing

also

For broadcasting own transactions you can probably keep even more privacy when using a hidden node over the i2p network, since you will not disclose your IP address along with your transaction to anybody.
what is a remote-node

I'm thinking, from simple to complex:

Run VPN > Run node behind > XMR wallet > USD-BTC-XMR on one of the exchanges > spent XMR.

No good, the exchange can identify my Monero address along with my passport, etc.

Run VPN > Run node behind > XMR wallet[1] > USD-BTC-XMR on one of the exchanges >  XMR to wallet[1] > XMR to [wallet2] > spent XMR.

No good, I guess, small(ish) risk when broadcasting from the same set of IPs.

Run VPN[1] > Run node[1] behind > XMR wallet[1] > USD-BTC-XMR on one of the exchanges > XMR to wallet[1] > Run VPN[2] > Run node[2] behind > XMR to wallet[2] > spent XMR.

Probably, can get away with that, not facing extremely motivated adversary.
Run VPN - actually I'm running OpenVPN over stunnel4 over Whonix(Tor) virtual machine over a router, VPN issues new address for each reconnection (after Tor expires).
Nodes uptime close to 24/7.

Does it make sense to run two nodes in order to disguise identifiable information?
Why is that overkill?

There is a small amount of metadata leaked if you broadcast transactions from the same IP address. Luckily, if you are using a VPN, you should be safe from the attacker connecting these transactions to your real IP. However, the transactions may still be connected to each other.

To mitigate this risk (which I would consider already very small), you need to break the link between these IP addresses being correlated to each other. It's probably not worth your time to run different nodes for this, but you can connect your node to a different VPN for each transaction you make.

Once Kovri is fully-implemented, then you would no longer need to be concerned about this potential risk.


Failed to import outputs: Transaction extra has unsupported format at index 17 So today I decided to check my offline wallet and make some donations.

Fire up monero-wallet-cli on the hot machine, connect to monerod and do the usual:

export_outputs outputs

Then I move that outputs to the offline machine, start monero-wallet-cli and do:

import_outputs outputs

All I get is: "Failed to import outputs: Transaction extra has unsupported format at index 17"

So I tried to rescan_bc on the hot wallet and no chance, the outputs still can't be imported. Now both the hot and cold wallet are showing different balances because outputs can't be imported and I believe my wallet is unusable now that UTXO aren't properly tracked in the hot wallet. I have already tried to export key images and importing to hot wallet anw in case that error is just a warning but the balances shown still differ.

Monero version: 0.11.1.0 for Linux 64bit.

OS of monerod: ArchLinux, updated a few minutes ago.

OS of monero-wallet-cli: Fedora-25 guest inside QubesOS 3.2.

Is there a way to fix this?

It should be fixed one this PR is merged: https://github.com/monero-project/monero/pull/3065


Stealthcoin compared to Monero How does Monero compare to Stealthcoin https://stealth.org/

I mean in what ways is Monero better other than it being an older cryptocurrency?

thanks

Stealth.org is a nice pricey domain
Stealthcoin = PoS vs Monero = PoW
Stealthcoin optimizes coinbase rewards to allow very rapid blocks, tradeoff being staker centralization*

* You can only withdraw after mining (staking) the equivalent of a full day worth of blocks, meaning in 1 year, the best case scenario is 365 people get to withdraw.

The project will likely have to age before a fair comparison is really doable.


Implementing monero accepting for online merchant with monero-python I am trying to understand monero & recieve funds with monero using this python api in my website.

Please check with my plan and correct me freely if I'm wrong.

For every account I will make a sub-address like the following and save it with user info

w = Wallet(JSONRPCWallet(port=28088))
w.new_address() #create new subaddress for a wallet

new_address_for_user = w.get_addresses()[-1] #get the newly created subaddress
user_info['monero_subaddress'] = new_address_for_user #save the subaddress with user info

If user buys an item, check for the transaction

w = Wallet(JSONRPCWallet(port=28088))
monero_subaddress_for_user = user_info['monero_subaddress']
incoming = w.incoming(local_address=monero_subaddress_for_user)[-1] # get transaction with the particular subaddress in user_info

price_of_item = transaction_info['price']

if price_of_item is incoming.amount:
    #check user paid for item correctly

Stepping aside bugs and other things for later, is this code the right concept for basic transaction with monero?

Conceptually, yes. The defaults for wallet.incoming return confirmed transactions. Depending on the rest of your architecture, you may want to make use of unconfirmed transactions (e.g. mark product as sold but not ship until the transaction is confirmed), if this is the case you'll need to also make use of the parameters for incoming: wallet.incoming(unconfirmed=True, confirmed=False).


What is the Monerodo Operating System? What is the Monerodo Operating System (Monerodo OS)? What is its relationship to Monero, and how safe is it?

The Monerodo OS (sometimes referred to as MOS, at least, in the system itself) is a text-user interface and customized Ubuntu Linux distribution that is maintained and developed by Gingeropolous (and yes, that's me). The operating system is designed to give individuals with no Linux knowledge the ability to operate a fully dedicated node device in their home using any spare hardware available at minimal cost (because they don't have to buy a new operating system).

Monerodo is a portmanteau of the word Monero and the esperanto word for node, "nodo".

There is no official relationship to Monero core team and it is only as safe as the Ubuntu operating system on which it is built.


Monero balance lost? I have an issue: my balance in GUI went to zero and I do not understand how to back it up. Explanation:

I was about to send a tx but before I could confirm with my password, my PC crashed. I restarted the GUI but balance was 0.
My guess is that the tx is unspent but out of the wallet interface anyway. I tried to backup the entire wallet with seed but it didn't change anything.
Anything I can do? And do tx reverse automatically if not signed after a certain amount of time?
Please note that no transaction is showing in the wallet, so I do not have any Tx ID

Thanks for the help!

Probably a corrupted file.
Make sure your daemon is synced 100% and create a new wallet, using your mnemonic seed.

Maybe, create the new wallet files in another location than the original.

monero-wallet-cli --restore-from-seed --generate-new-wallet new-filename \
    --electrum-seed "your seed words..." \
    --mnemonic-language English \
    --password "some optional new password"


Why is it necessary to have such long addresses? In the cryptonote paper, it says the address needs to be so long because there has to be a spend key and a view key. where the receiving address is calculated like this;

address = Hs(rA)G + B

but would it not be fine to just do;

address = Hs(rA)G

Why have the additional B? Is the only point of having two different keys so that the receiver can optionally disclose his view key so that other parties can see all of his incoming transactions? Or is there another reason to do with security?

First note that in Monero there are two sets of keypairs, namely the private view key (a) (which is the private spend key hashed with Keccak-256 and subsequently reduced modulo l) with the corresponding public view key (aG (G = the base point) = A) and the private spend key (b) with the corresponding public spend key (bG (G = the base point) = B). The public address is then created as follows:

  The pair of public keys are prepended with one network byte (the number 18, 0x12, for Monero). It looks like this: (network byte) + (32-byte public spend key) + (32-byte public view key).
  These 65 bytes are hashed with Keccak-256.
  The first four bytes of the hash from 2. are appended to 1., creating a 69-byte Public Address.
  As a last step, this 69-byte string is converted to Base58. However, it's not done all at once like a Bitcoin address, but rather in 8-byte blocks. This gives us eight full-sized blocks and one 5-byte block. Eight bytes converts to 11 or less Base58 characters; if a particular block converts to <11 characters, the conversion pads it with "1"s (1 is 0 in Base58). Likewise, the final 5-byte block can convert to 7 or less Base58 digits; the conversion will ensure the result is 7 digits. Due to the conditional padding, the 69-byte string will always convert to 95 Base58 characters (8 * 11 + 7).
  This 95-character result is the (obscenely long) Cryptonote Public Address!
  If you're creating an integrated address, simply append the 64-bit payment ID to step 1 and continue; everything else is the same except for the lengths (77 bytes total, 106 Base58 digits) and the prepended byte (19, 0x13).

It logically follows that the addition of B to the creation of a one-time public address (stealth address) is required in order for a user to be able to optionally disclose his public address + private view key. This allows a third-party (e.g. an auditor) to view all incoming transactions to the user's wallet without knowledge of their private spend key.

Lastly, a note from luigi1111 (a Monero core-team member) on single-key / non-dual key stealth addresses:

  It is possible to do a non-dual-key stealth addressing scheme, but you must make one of two trade-offs. You can either: (1). use the concept in the whitepaper called a truncated address, which means the view key pair is publicly known and all incoming transactions can be linked (a = Hs(B)); or (2). forego a view key pair entirely, which means scanning requires spending ability (P = Hs(rB)G + B).

Sources:

https://xmr.llcoins.net/addresstests.html
https://steemit.com/monero/@luigi1111/understanding-monero-cryptography-privacy-introduction
https://steemit.com/monero/@luigi1111/understanding-monero-cryptography-privacy-part-2-stealth-addresses


Ledger Nano S Transaction Error: unexpected error: Wrong Device Status : SW=6911 (EXPECT=9000, MASK=ffff) I'm currently using Windows & my daemon is updated to v0.13.0.2, however when I tried to send some XMR from my Ledger Nano S to my Cake Wallet, I got the following error:

Error: unexpected error: Wrong Device Status : SW=6911 (EXPECT=9000, MASK=ffff)

I tried sending to my Cake Wallet address using an integrated address, using the regular address, and also with/without Payment ID. Every time I get the same error, so I was hoping someone might have an idea whats causing this.

For the record, I've been using the updated Beryllium Bullet monerod (v0.13.0.2) but because I'm using the Ledger Nano S, I haven't been able to use the recently released monero-wallet-cli.exe, so I've  been using the monero-wallet-cli.exe from the Lithium Luna v0.12.3.0 release, in case that changes anything. Thanks in advance!!!

so I've been using the monero-wallet-cli.exe from the Lithium Luna v0.12.3.0

You cannot mix and match the GUI and daemon versions. The latest GUI (with daemon) can be downloaded from here.


Getting notified about a new block on the Monero blockchain Is there any method, other than polling, to subscribe to new blocks being published on the Monero network? I want to get notified whenever a new block is published on the network on my app.

The current Monero release allows you to call a program in those cases:

When a block in added to the blockchain, you can trigger a command using monerod's --block-notify option.

When a transaction is received by the wallet (both when seen in the txpool and after its first confirmation), you can trigger a command using monero-wallet-{cli,rpc}' --tx-notify option.

Both of those options take as parameter a program and optional parameters. Every instance of %s will be replaced by the block hash or transaction hash which triggered the notification. Note that this is a program and optional parameters, and not a shell command, if you want redirection or pipes, you'll have to call a shell (eg, --tx-notify bash -e 'echo %s >> /tmp/hashes'). Parsing is limited, so you can't use quotes and backslashes to escape spaces. If you need complex parsing, write a script to do it and call the script.


Monerod constantly in sync by lagging behind 2 blocks I have been running my own Monero Node (Monerod) for some weeks now and it worked perfectly. However, today my Node get stuck in the constant sync limbo at exactly 99.9%. It was always 2 blocks behind the network:
status

Height: 2246208/2246210 (99.9%) on mainnet, not mining, net hash 1.64 GH/s, v14, 12(out)+0(in) connections, uptime 0d 9h 12m 6s

I am running a little bit of selfish Node for my own needs with no incoming connections allowed. Run attributes for my Monerod are as following:
--restricted-rpc --rpc-login <DummyText>:<DummyText> --log-level=1 --enforce-dns-checkpointing --no-zmq --no-igd --hide-my-port --in-peers=0 --check-updates disabled --max-concurrency 2

While investigating an issue I have noticed that my Node is surprisingly always and exactly 2 blocks behind due to some subset of peers - lets call them "+2 peers" for the clarity:
sync_info
Height: 2246208, target: 2246210 (99.9999%)
Downloading at 32 kB/s
12 peers
148.251.195.244:18080     04988397a2eac5ca  normal            0         2246208  0 kB/s, 0 blocks / 0 MB queued
192.99.154.164:17085      fa9df573098b9b52  synchronizing     0         2246210  16 kB/s, 0 blocks / 0 MB queued
167.172.150.102:18080     90034b2baf0e81c6  normal            0         2246208  0 kB/s, 0 blocks / 0 MB queued
144.217.241.28:18080      f76d3b057c41fc4e  synchronizing     0         2246210  16 kB/s, 0 blocks / 0 MB queued
97.126.77.35:18080        ab9fbcf12b6fa412  normal            0         1  0 kB/s, 0 blocks / 0 MB queued
94.23.23.52:18080         e0214630fbeebc70  normal            0         2246208  0 kB/s, 0 blocks / 0 MB queued
144.91.122.162:18080      e74c7910ba360ee4  normal            0         2246208  0 kB/s, 0 blocks / 0 MB queued
51.79.52.228:9505         9dc3992c92fd4c83  synchronizing     0         2246210  0 kB/s, 0 blocks / 0 MB queued
37.191.201.68:18080       e40ee8258f2bed16  normal            0         2246208  0 kB/s, 0 blocks / 0 MB queued
216.130.231.18:18080      c9954b06032f233a  normal            0         2246208  0 kB/s, 0 blocks / 0 MB queued
54.39.75.65:4698          2b932a39cfb437aa  synchronizing     0         2246210  0 kB/s, 0 blocks / 0 MB queued
83.212.105.141:18080      9a4db716d08250b9  normal            0         2246208  0 kB/s, 0 blocks / 0 MB queued
0 spans, 0 MB
[]

In this output, majority of nodes are on block height: 2246208, while a subset is at block height: 2246210. The problems is that Nodes with +2 block height (2246210) are not synchronizing their blocks to the rest. I have checked the Network status with https://xmrchain.net/ and see that most likely "+2 peers" are not in consensus with the rest. In other words block height of 2246208 was the valid block height visible on XMR Chain Block Explorer as well.
I tried to ban the "+2 peers" and after an hour or so, I got the following results:
bans
137.74.189.88 banned for 79234 seconds
142.44.144.243 banned for 79417 seconds
193.70.78.196 banned for 85348 seconds
51.178.251.7 banned for 83963 seconds
51.210.96.211 banned for 82505 seconds
51.79.11.199 banned for 82797 seconds
51.79.49.41 banned for 84239 seconds
51.79.50.44 banned for 85744 seconds
51.79.54.168 banned for 80803 seconds
54.39.75.73 banned for 85133 seconds
87.98.229.114 banned for 84704 seconds
94.23.147.238 banned for 79261 seconds

After banning those nodes, everything went back to normal. I was able to properly synchronize Wallets and even make test Tx without any problems. However, those "+2 peers" which do not synchronize their extra 2 blocks were keep coming back and I had to keep banning them to make it work again. As you can see there is a lot of 51.79.XX.XX IP addresses in the problematic group.
I just do not know what the heck is happening. What is the problem here and how to solve it without constant banning?
Thank in advance for your help!

I was having exactly the same issue. But you pointed me in the right direction :)
There is a ban-list which you can use, by adding the following argument to the daemons command line:
--ban-list <path to block.txt>


Hashrate correlation by time of day Looking at historical Monero hash rate data it appears as if the hashrate is often the highest near 0:00 GMT and lowest near 12:00 GMT

What credible explanations are there for this pattern? What reason would (a small percentage of) miners have to turn on/off depending on the time of day and continue that pattern over a long period of time?

The daily variance appears to be limited to about 10% of the hashrate. Two possible explanations:

A system administrator mines Monero at night when computers would otherwise be idle
A system administrator mines Monero during the day while having physical control of the computers.

Replace system administrator for anyone with control over a large group of computers and adjust day/night to match the idle computer or working hours in that particular time zone.


Missing monero sent from one GUI wallet to another Newb here

So I've installed and fully synced a GUI wallet on my desktop PC and one on my laptop, it's been 12 hours after sending all my monero from my desktop to my laptop and it still hasn't appeared yet.

Checking the transaction on the GUI reports back: "This address received xx.xx monero, but the transaction is not yet mined"

Putting the Tx ID or the Tx key into xmrchain.net reports that "Nothing in the blockchain has been found that matches the search term :-(
Note: there might be 10 block delay between what can be searchable (e.g., key images)"

Any ideas/links to similar problems that have been solved?

"This address received xx.xx monero, but the transaction is not yet mined" means that the transaction is seen by the Monero network, but has not been mined yet. Miners select transactions based on the highest fee per byte, to maximize their income. If your transaction has a fee that's a bit on the low side and there is a continuous stream of incoming transactions with a higher (even by a little) fee per byte ratio, those other transactions will be selected and mined first. Your transaction will be mined when there are no more other transactions with a higher fee per byte than yours (or not enough to prevent yours from being included in a block).

Alternatively, your transaction is invalid (for instance, it tries to double spend one or more of its inputs), but that is less likely. If this is the case, the transaction will disappear from the network after 24 hours and the monero will reappear in the sender's wallet (though the double spent inputs are really spent, so the real balance will be smaller as the original was incorrect).


Are there plans to optimize bandwidth usage by implementing something like xthin or compact blocks? As I understand it now, all transactions are re-transmitted when a new block is found. Is it possible in Monero to implement something similar to compact blocks, and if so is there a timeline for their incorporation?

Yes, absolutely! Compact blocks is about the most sane scheme we've seen, and we'll likely implement something exactly like that.

For those that don't know how it works, the basic idea is that your node has likely already received most of the transactions in a newly mined block. So instead of receiving them all over again, a node will send the block header and a list of the transaction hashes in that block, and then your node can just ask for any transactions that it doesn't have.

This massively reduces bandwidth (in a hypothetical future where we have lots of transactions per block), but doesn't do anything to speed-up syncing from scratch or catching up to the rest of the network.


How many transactions per second can the Monero network handle? How many transactions per second can the Monero network (theoretically) handle?

Did recent LMDB optimizations improve the speed that CPUs can confirm transactions?

Is the current limiting factor CPU confirmation time, bandwidth of Monero nodes or something else?

Based on test testnet data so far, will RingCT transactions faster be slower than  (pre RingCT) confirmations today?

Monero transaction confirmations are very quick on modern computers. With LMDB estimates from developers Smooth and NoodleDoodle are that Monero can handle 1700 TPS (up from 1600 TPS pre LMDB).

Confirmation time is definitely not the limiting factor. Many nodes do not have the bandwidth to support 1700 TPS based on current transaction sizes.

Monero can have very large blocks thanks to its adaptive blocksize. However by the time that we reached 1700 TPS memory requirements would also be too much for many nodes.

In order of importance, I would say the TPS limiting factors today bandwidth and memory. LMDB did speed up CPU confirmation time but it was not the limiting factor in TPS even before the improvement.


How to get the balance of an integrated address? As an integrated address is different from a subaddress and account hierarchy, how do I get the balance of an integrated address?

An integrated address is just a normal address with an embedded payment ID. Thus you use the usual get_balance RPC method, or balance detail CLI command.

As they have a payment ID, you can also make use of get_payments (RPC) and payments <PID> (CLI), which will show you any incoming payments made to the address using the provided payment ID.

It's worth pointing out you should not use integrated addresses / payment IDs, as these are deprecated in favor of using subaddresses.


Missing functionality / screen controls in Monero GUI app v0.14.0 I was browsing the getmonero.org website and saw a screenshot in the 'Creating A View-Only Wallet' guide. The screen had way more controls - menu tabs - than what I see on my GUI. Here is a comparison of both screenshots with the top image from the getmonero website with more screen controls high lighted in yellow:

Anyone have any idea what's going on here? Maybe some setting or config, or perhaps the unzip process skipped some files?

The discrepancy in your posted screenshots is based on what mode the wallet is being run in. The GUI wallet supports both "Simple" and "Advanced" modes. When in advanced mode, you have the extra tabs and menu items.

You can switch modes by clicking the "Close wallet" button, restarting the GUI and when in the opening wizard, open the existing wallet and change the mode to advanced mode (after language). You will then have all the advanced options available to you.

Per your comment above:

  my intent is not mainly to be able to use a remote node, but rather not to download the blockchain

Unfortunately it is a little confusing for new users understanding the various options/modes.

There are two different "simple" modes, one with bootstrap and one without. The key difference is that when using the bootstrap variety, the blockchain is downloaded to your computer at the same times as connecting you to a remote node, so you can use your wallet immediately, without needing to wait for the full blockchain to download.

Advanced mode allows for the fullest flexibility. Here you can specify if you want to download the full blockchain, use only a remote node, use a specific remote node, or use a mixture (e.g. bootstrap).

As your intent is to use a remote node and not store the whole blockchain, you can safely just use simple mode (without the bootstrap option). However, you cannot specify which remote node is used while in this mode. Therefore, if you want to specify a remote node yourself, you will need to have started your wallet in the advanced mode.

I'll end with pointing out one other thing. Although using a remote node, with no bootstrap, wont actually store the blockchain, it still needs to scan for outputs, which takes time and bandwidth. Depending on how long since you last scanned, this can take some time. This is why there are two progress bars. Wallet sync is the scan progress, daemon sync is the daemons download progress. If you are using a remote node (daemon), it shows how much the remote node has downloaded. If you are using a local node, it shows your local daemon download progress.

Hope this helps clarify.


Configuring Iptables for cpumulti I'm using a VPS for Monero mining, but the cloud does not have DDoS protection, so I'm making iptable rules. A friend who knows how to mess with Linux (Ubuntu 16) made a configuration that he thinks is the best he has ever tested. But the configuration does not allow any data traffic to enter. With this the cpumulti does not connect to the pool. Does anyone here know of a rule that I can put that releases cpumulti? I already tried the pool doors and it will not.
I use the Wolf version ...
Anyone?

The miners use standard HTTP, and the pool will send information to the miner via the connection the miner itself initiated. This means you don't need any incoming rules for new connections. You will need to allow new outgoing connections to the port you want to mine on (this depends on your pool and chosen starting difficulty, see the "Getting started" page on the pool for details), and allow incoming data on the same connection.

Now I can't give iptables rules for this, but since it's a bog standard TCP duplex connection, you should be able to easily find one on the internet and adjust the port number.


How can I assist in testing RingCT on the Monero testnet? I hear that RingCT is currently fully deployed on the Monero testnet, and that we can assist with stress testing the protocol by creating a testnet account ourselves. I created my own testnet wallet and had one of the Monero developers send me some testnet XMR. How can I help in testing RingCT on testnet? Do they simply want me to send various amounts of XMR to various developers on the testnet?

Here are the testnet XMR addresses I've found for various devs (hat-tip MoneroWorld):

Gingeropolous: 9zKiBBQ6E61LxDuNp3abSDZhE7LEargDMCTYJkj2coqfdFYWXXdxNLRX2JRKhVkHP2Vgvg4MxitT3VMSMKRzbxVs8fSLBD5

Moneromoooo: 9yvGzysbcaWPHNjzkdKTMy5E7uvf85eNtZmuDQ3FLJrq3TeMy9cEaEi5CK7FqXNboWKHBvLGAxHFB5gq8KpSxmgJPah9MJc

iDunk: 9tLGyK277MnYrDc7Vzi6TB1pJvstFoviziFwsqQNFbwA9rvg5RxYVYjEezFKDjvDHgAzTELJhJHVx6JAaWZKeVqSUZkXeKk

hyc: 9xSS2SPW21rQzSzSVLue64MfQnAu3rynRaRBgiaLNPAC1pVnjEXcQ6K5BCJuDz58cHZMtyqJg4iJYZ15NJsdFiG28wjQJ8M

jr2016x30: 9yKAHBHKdyDdANzp3quDK5Kh7aMczoJiDAsgi7FGreA1QGwJ2FN6QEuZZi99s9NQMjaJtbfWKGfnz9pno7Z1LZAgNQeNA1n

Am I missing any?

You can help by performing the most unlikely actions that should still work, keeping track of what you do, and reporting what doesn't work.

Sending transactions to other addresses is the obvious case, which has been well tested already. Things worth testing now are features that were added recently to the git repository, such as cold wallet signing.

You can also test restoring a wallet through various means (from seed, from keys, etc), and checking ringct transactions are still recognized. You can check all transfer commands: transfer, sweep_unmixable, sweep_all. You can check that you can still prove a payment using get_tx_key/check_tx_key. Basically, go through everything, especially the most obscure, since that's what is more likely to have been overlooked.

If anything does not work, please file a bug on https://github.com/monero-project/monero/issues, detailing what you tried, what the results were, and what you expected would happen instead.

Thanks for testing!


Will I need to update wallet and miner after the next upcoming (March 2019) fork? I have read about the next upcoming fork planned for the block 1788000 (around the 9th of March). After that block, will I need to update the Monero daemon, the wallet, or both? And what about the miner programs?

Thanks in advance for answers.

Yes, as we have done before for the other forks, you'll need to update daemon, wallet, and miner.

As you can see here, the upcoming fork will bring to Monero a new PoW algorithm: the CNv4, Cryptonight variant 4 aka CryptonightR.


How to create a cold storage & watch-only wallet Using monero-wallet-cli, I want to safely create a cold storage wallet and make a watch-only counterpart which I later want to use on my Windows PC to monitor the balance. How can I do this?

Monero Cold Storage, Monitoring, and Spending Guide (MS Windows) - Part 1: Creating The Wallet

Create a bootable USB drive. Follow instructions here.
Get the latest Monero Core binaries. If you followed step 1. to the letter, you will need Windows 64-bit binaries. Extract from .zip and copy them to your bootable drive.
Reboot into your USB drive. When it boots, you will be presented with a console. Initially, you should see:

X:\windows\system32>wpeinit

X:\windows\system32>

Change drive to your USB drive by commanding d:. Note that it could be some other letter depending on your system configuration. After commanding d:, command dir and you will see a list of files & folders on the drive which can tell you where you are and if d: is the correct drive. To help with this, you could also start notepad by commanding notepad and then select File->Open which will let you browse your computer using the standard folder picker, and help you understand which is the correct drive. Close notepad and type the correct drive letter:

X:\Windows\System32>d:

D:\>

Change working folder to wherever you copied monero binaries to. For example, type cd d:\_tools\monero.win.x64.v0-10-1-0\. Note: you can use TAB to auto-complete folder names, just type in the first few letters and push TAB to cycle through suggestions.

D:\>cd _tools\monero.win.x64.v0-10-1-0

D:\_tools\monero.win.x64.v0-10-1-0>

Type monero-wallet-cli.exe. Again, TAB works to auto-complete, so just type mon and hit TAB a few times until monero-wallet-cli.exe appears.

D:\_tools\monero.win.x64.v0-10-1-0>monero-wallet-cli.exe
Monero 'Wolfram Warptangent' (v0.10.1.0-release)
Logging at log level 0 to D:\_tools\monero.win.x64.v0-10-1-0\monero-wallet-cli.log
Specify wallet file name (e.g., MyWallet). If the wallet doesn't exist, it will
be created.
Wallet file name (or Ctrl-C to quit):

Type in your wallet file name and press Enter.

Wallet file name (or Ctrl-C to quit): myWallet
No wallet found with that name. Confirm creation of new wallet named: myWallet
(Y/Yes/N/No):

Type Y and press Enter to continue.

(Y/Yes/N/No): Y
Generating new wallet...
Enter a password for your new wallet:

Type in your password. I advise to type some long gibberish here as you don't really want to save it anyway but it will get saved automatically (to your USB drive). If you type a lot of random characters, it will be impossible to crack open even if saved. Note: you could decide to save it and use this USB as your cold storage instead of paper. If that is the case, set some strong password you will remember and make sure to NEVER PLUG THIS USB INTO A RUNNING SYSTEM if you want to keep it cold.

Enter a password for your new wallet: ****
Confirm Password: ****

Pick a language for the mnemonic.

List of available languages for your wallet's seed:
0 : English
1 : Spanish
2 : German
3 : Italian
4 : Portuguese
5 : Russian
6 : Japanese
Enter the number corresponding to the language of your choice: 0

Your wallet will have been created. Below is the console output.

Generated new wallet: 48LQ1ohLKvvfNv2Kesy1gEe4jm2TfUexM2yS2hGjqLanHt9xbAKZ
Bsj8cyvRiHFmUPFpQwCP9jFm3BXsVAEHBEAQFT6u2cT
View key: 42f04a74bdb49c157fc40b36ea79b1766c2a6c1951b9fe8fa6e9a0fb57ee4809
**********************************************************************
Your wallet has been generated!
To start synchronizing with the daemon, use "refresh" command.
Use "help" command to see the list of available commands.
Always use "exit" command when closing monero-wallet-cli to save your
current session's state. Otherwise, you might need to synchronize
your wallet again (your wallet keys are NOT at risk in any case).

PLEASE NOTE: the following 25 words can be used to recover access to your wallet
. Please write them down and store them somewhere safe and secure. Please do not
 store them in your email or on file storage services outside of your immediate
control.

fictional aplomb ripped habitat onion zesty foggy tell
dilute nearby ditch autumn ornament muppet sneeze spout
sawmill zinger firm puddle sickness pliers offend oxidant ditch
**********************************************************************
Error: wallet failed to connect to daemon: http://localhost:18081. Daemon either
 is not started or wrong port was passed. Please make sure daemon is running or
restart the wallet with the correct daemon address.
Error: wallet failed to connect to daemon: http://localhost:18081. Daemon either
 is not started or wrong port was passed. Please make sure daemon is running or
restart the wallet with the correct daemon address.
Background refresh thread started
[wallet 48LQ1o]:

You will be presented with your mnemonic seed written below the green text. In our example it's fictional aplomb ripped habitat onion zesty foggy tell dilute nearby ditch autumn ornament muppet sneeze spout sawmill zinger firm puddle sickness pliers offend oxidant ditch.
Write yours down and store safely. Make backups. Unless you choose to save the wallet file, THIS IS THE ONLY THING THAT WILL LET YOU ACCESS YOUR FUNDS. IF YOU LOSE IT - YOUR FUNDS WILL BE GONE FOREVER. It goes without saying that if someone finds it, he could steal your funds and probably get away with it, too.
When in wallet, run the command save_watch_only. You will be prompted for a password. Use a good, strong password. Even if the watch-only wallet can't be used for spending, it will still contain some data which is better kept private.

[wallet 48LQ1o]: save_watch_only
Password for the new watch-only wallet: ****
Enter new password again: ****
[wallet 48LQ1o]:

Type exit to exit the wallet. You will be returned to the command prompt.

[wallet 48LQ1o]: exit

D:\_tools\monero.win.x64.v0-10-1-0>

Result: you will have created 4 files. To see them, command dir.

D:\_tools\monero.win.x64.v0-10-1-0>dir
 Volume in drive D is WINPE
 Volume Serial Number is DEB2-6BBC

 Directory of D:\_tools\monero.win.x64.v0-10-1-0

12/20/2016  06:52 PM              .
12/20/2016  06:52 PM              ..
12/13/2016  06:36 PM        13,497,944 monero-blockchain-export.exe
12/13/2016  06:36 PM        13,561,678 monero-blockchain-import.exe
12/13/2016  06:36 PM         6,785,009 monero-utils-deserialize.exe
12/13/2016  06:37 PM        15,977,627 monero-wallet-cli.exe
12/20/2016  08:29 PM            17,043 monero-wallet-cli.log
12/13/2016  06:37 PM        16,757,062 monero-wallet-rpc.exe
12/13/2016  06:38 PM        57,430,407 monerod.exe
12/20/2016  08:23 PM               702 myWallet.keys
12/20/2016  08:23 PM                95 myWallet.address.txt
12/20/2016  08:28 PM               841 myWallet.keys-watchonly
12/20/2016  08:29 PM               353 myWallet
              11 File(s)    124,028,761 bytes
               2 Dir(s)  31,252,447,232 bytes free

D:\_tools\monero.win.x64.v0-10-1-0>

Delete all the wallet files except the myWallet.keys-watchonly file. The command is del followed by a list of filenames to delete.

D:\_tools\monero.win.x64.v0-10-1-0>del myWallet myWallet.address.txt myWallet.keys

D:\_tools\monero.win.x64.v0-10-1-0>

Command dir to check that they're gone.

D:\_tools\monero.win.x64.v0-10-1-0>dir
 Volume in drive D is WINPE
 Volume Serial Number is DEB2-6BBC

 Directory of D:\_tools\monero.win.x64.v0-10-1-0

12/20/2016  06:52 PM              .
12/20/2016  06:52 PM              ..
12/13/2016  06:36 PM        13,497,944 monero-blockchain-export.exe
12/13/2016  06:36 PM        13,561,678 monero-blockchain-import.exe
12/13/2016  06:36 PM         6,785,009 monero-utils-deserialize.exe
12/13/2016  06:37 PM        15,977,627 monero-wallet-cli.exe
12/20/2016  08:29 PM            17,043 monero-wallet-cli.log
12/13/2016  06:37 PM        16,757,062 monero-wallet-rpc.exe
12/13/2016  06:38 PM        57,430,407 monerod.exe
12/20/2016  08:28 PM               841 myWallet.keys-watchonly
               8 File(s)    124,027,611 bytes
               2 Dir(s)  31,252,496,384 bytes free

D:\_tools\monero.win.x64.v0-10-1-0>

Command rename to rename the generated watch-only keys file to a standard .keys filename.

D:\_tools\monero.win.x64.v0-10-1-0>rename myWallet.keys-watchonly myWallet-watchonly.keys

D:\_tools\monero.win.x64.v0-10-1-0>

Open the watch-only wallet to check that all is ok.

D:\_tools\monero.win.x64.v0-10-1-0>monero-wallet-cli --wallet-file myWallet-watchonly
Monero 'Wolfram Warptangent' (v0.10.1.0-release)
Logging at log level 0 to D:\_tools\monero.win.x64.v0-10-1-0\monero-wallet-cli.log
Password: ****
Opened watch-only wallet: 48LQ1ohLKvvfNv2Kesy1gEe4jm2TfUexM2yS2hGjqLanHt9xbAKZ
Bsj8cyvRiHFmUPFpQwCP9jFm3BXsVAEHBEAQFT6u2cT
**********************************************************************
Use "help" command to see the list of available commands.
**********************************************************************
Error: wallet failed to connect to daemon: http://localhost:18081. Daemon either
 is not started or wrong port was passed. Please make sure daemon is running or
restart the wallet with the correct daemon address.
Error: wallet failed to connect to daemon: http://localhost:18081. Daemon either
 is not started or wrong port was passed. Please make sure daemon is running or
restart the wallet with the correct daemon address.
Background refresh thread started
[wallet 48LQ1o]:

Voila, you should now have:

The watch-only .keys file
The watch-only cache file
Paper back-up of your seed mnemonic. THIS IS THE ONLY THING THAT WILL LET YOU ACCESS YOUR FUNDS, IF YOU LOSE IT - YOUR FUNDS WILL BE GONE FOREVER.

Time to test. This is important. I trust you've written down the mnemonic correctly, but better be sure you didn't make some error. We will test that the restored address will match your watch-only wallet's address. Start the wallet with the command monero-wallet-cli.exe --restore-deterministic-wallet. You will be prompted for a filename, confirmation, seed mnemonic, height and password (again, use some long random gibberish).

D:\_tools\monero.win.x64.v0-10-1-0>monero-wallet-cli.exe --restore-deterministic-wallet
Monero 'Wolfram Warptangent' (v0.10.1.0-release)
Logging at log level 0 to D:\_tools\monero.win.x64.v0-10-1-0\monero-wallet-cli.log
Specify a new wallet file name for your restored wallet (e.g., MyWallet).
Wallet file name (or Ctrl-C to quit): test
Confirm wallet name: test
(Y/Yes/N/No): Y
Generating new wallet...
Specify Electrum seed: fictional aplomb ripped habitat onion zesty foggy tell di
lute nearby ditch autumn ornament muppet sneeze spout sawmill zinger firm puddle
 sickness pliers offend oxidant ditch
Restore from specific blockchain height (optional, default 0): 0
Enter a password for your new wallet: ****
Confirm Password: ****
Generated new wallet: 48LQ1ohLKvvfNv2Kesy1gEe4jm2TfUexM2yS2hGjqLanHt9xbAKZBsj8cy
vRiHFmUPFpQwCP9jFm3BXsVAEHBEAQFT6u2cT
View key: 42f04a74bdb49c157fc40b36ea79b1766c2a6c1951b9fe8fa6e9a0fb57ee4809
**********************************************************************
Your wallet has been generated!
...

Check that the address is the same, exit the wallet and again delete the generated files.

...
D:\_tools\monero.win.x64.v0-10-1-0>del test test.address.txt test.keys

D:\_tools\monero.win.x64.v0-10-1-0>dir
 Volume in drive D is WINPE
 Volume Serial Number is DEB2-6BBC

 Directory of D:\_tools\monero.win.x64.v0-10-1-0

12/20/2016  06:52 PM              .
12/20/2016  06:52 PM              ..
12/13/2016  06:36 PM        13,497,944 monero-blockchain-export.exe
12/13/2016  06:36 PM        13,561,678 monero-blockchain-import.exe
12/13/2016  06:36 PM         6,785,009 monero-utils-deserialize.exe
12/13/2016  06:37 PM        15,977,627 monero-wallet-cli.exe
12/20/2016  09:01 PM            21,006 monero-wallet-cli.log
12/13/2016  06:37 PM        16,757,062 monero-wallet-rpc.exe
12/13/2016  06:38 PM        57,430,407 monerod.exe
12/20/2016  08:47 PM               868 myWallet-watchonly.keys
12/20/2016  08:49 PM               353 myWallet-watchonly
               9 File(s)    124,031,954 bytes
               2 Dir(s)  31,252,480,000 bytes free

D:\_tools\monero.win.x64.v0-10-1-0>

You can copy the resulting myWallet-watchonly.keys file to your online PC. If you opted to use the USB drive as cold storage, you will need another one to avoid plugging the drive with your full wallet into your online PC.

This concludes the 1st part of the guide. Second part will cover transferring first funds to your wallet and monitoring your balance.


Who created the Monero ASICs during 2019-Jan to 2019-Mar? Do we know who exactly created these ASICs during the big hash run up during 2019-Jan to 2019-Mar?

And why would they create these ASICs when they know for a fact that the Monero community would easily fork the algorithm to brick all of their ASICs?

It just doesn't seem to make sense why they would spend so much money to make these ASICs and have them bricked.

Do we know who exactly created these asics during the big hash run up
  during 2019-Jan to 2019-Mar?

It's hard to say, but the names are the usual known.

  And why would they create these asics, when they know for a fact that
  the monero community would easily fork the algo to brick all of their
  asics. It just doesn't make sense why they would spend so much money
  to make these ASICS and have them bricked.

Because in the time of a few months they pay back their expenses and earn enough money. Furthermore, it is very likely that this time is about FPGA rather than ASIC. In this case, they will be reprogrammed after the fork to run the new algorithm and to be operative again.


Where can I find Monero public RPC nodes I can connect to? Is there a public list of public monero RPC nodes I can use for testing purposes?

Since Monero 0.15.0.0, you can use the public_nodes command in monero-wallet-cli. It will query your daemon, as the list is now shared over the P2P network. This can be used in tandem with the bootstrap daemon mode, so you can use RPC services before your node has finished syncing.

Similarly, the print_pl daemon command now accepts a publicrpc parameter to filter nodes by whether they offer publicly accessible RPC.

Yes, you do need a daemon in order to use those, and this is intended. If you really cannot spare the space for a blockchain (currently around 25 GB if pruned), then you can use the daemon on no-sync bootstrap mode, with the --no-sync daemon parameter. This will avoid syncing the blockchain while still allowing you access to the P2P public RPC nodes list without having to go through a central repository.


Looking for an easy explanation about kovri I still don't get what kovri actually is.

Can anyone provide an easy explanation?

I looked at YouTube for videos, but couldn't find any. Also other links didn't help.

Does anyone know a picture which explains it easily?

I don't know if I want to donate to this project because I really don't understand the benefit.

From the project's FAQ:

  What is Kovri?

  Kovri is a secure, private, untraceable C++ router implementation of
  the I2P anonymous network. What was once a fork
  of i2pd, Kovri has become a unique, actively-developed,
  community-driven C++ I2P implementation with many improvements,
  security enhancements, and new features over its predecessor.

Frequently Asked Questions (and answers)


Correlation of number of full nodes to network hash rate Is there any historical data tracking the number of full nodes over time?

If such data exists is there any where I can find it plotted against the network hash rate over time?

I am interested in learning how closely related the number of full nodes and network hash rate are related.

No one can know the number of full nodes at any given time, because not all nodes connect to each other, and there is no way of knowing about nodes that you are not directly connected to. Node information is not obtainable from the blockchain.


What options are available for directly buying Monero with fiat currency? What are options available to convert fiat currencies into Monero directly, without having to go through a Bitcoin transit hoop first? I am not looking for a recommendation for a particular service, but a list of available options and supported currency types. I am looking for a list of both peer to peer and centralized exchanges that support fiat to Monero conversions.

For direct purchase of Monero with fiat currencies there are now multiple options:

Livecoin - Online Exchange supporting Wire transfer (SWIFT) and other options
Coincut - Online Exchange allowing purchase by GBP Bank transfer
 Bitfinex - US dollar USD wire transfer disabled
LiteBit - Online Exchange supporting multiple fiat purchase options including SEPA bankwire, GiroPay and SOFORT
Orillia - Purchase with SEPA
AnycoinDirect - Purchase with SEPA, Sofort, Trustpay, MyBank, IDEAL, Giropay, EPS or Bancontact/Mistercash
MoneroForCash - Purchase with fiat locally P2P
EasyMonero - Purchase with fiat locally P2P
Kraken - Euro and US dollar
LocalMonero.co - Any payment method that the community wishes to use, fiat or crypto, online or locally, a centralized P2P platform modeled after LocalBitcoins.com
Poloniex - Online Exchange with Credit card support and Wire Transfer for deposits and withdrawals

The options above meet your criteria for avoiding the Bitcoin transit hoop. Security, privacy and ease of use will vary.

Bisq is a P2P decentralized exchange not mentioned above because it currently requires the use of Bitcoin as an intermediary currency when purchasing with fiat. There is hope that multisig support for Monero now in development will eventually enable direct fiat purchases.


how come my Monero wallet's unlocked balance is zero? The wallet is used for send out XMR to our customers, it had been working well for quite some time, all of a sudden, its unlocked-balance became zero, also with its num_unspent_outputs, but its balance is more than 1000. it had been like this for several hours, I don't think it was because pending incomming or outgoing transactions.can someone help me out here, thanks. btw the node monerod the wallet connects to is synced to the latest block.

Consider this:

The wallet receives one single transaction A of 1000 XMR.
You send out 0.2 XMR to a customer, creating transaction B.

What is the unlocked balance of the wallet now?

The answer is: 0 XMR. Why?

Transaction A had one output, which became the only input of transaction B. Inputs are spent entirely, which means that transaction B takes the only input with all of your balance and creates 2 outputs (a simplification disregarding fees):

0.2 XMR that goes to your customer,
999.8 XMR that goes back to your wallet as change output

Before B receives 10 confirmations, all the outputs, including change, are locked.

So, if you received your funds in a low number of incoming transactions, it's easy to get locked out. Basically, you may send as many instant transactions as many incoming ones have filled your wallet (another simplification). Then you'll have to wait.

Frequently used wallets with multiple small payments are more liquid due to fragmentation and high number of unspent outputs.


How do I build Monero for Windows from source? Are there detailed build instructions for building Monero for Windows?

Does the version of Windows we are building for (7,8, 10) (x86 vs x64) require different dependencies?

edit: Can we compile Windows binaries in Linux? Or must we compile Monero using MinGW?

Detailed instructions about how to compile Monero on Windows can be found here.
If you are encountering problems compiling the x86 version try this walkthrough.

The x86 version requires specialized x86 dependencies (on Windows).


Number of Monero block explorers and their unique features How many Monero block explorers are currently known to exist?

What unique features separate one block explorer from another? What differences do they have in terms of privacy and security vulnerabilities for those who use and rely upon them?

An incomplete list of explorers with unique features would include Moneroblocks, ChainRadar, and The Onion Monero Blockchain Explorer, of which the clearnet version can be found here.

Moneroblocks is the most popular explorer (and one of the first if you include its previous .eu domain). It tracks a number of useful statistics, such as mixin usage and transactions per block. It also offers an API and a rich list, which can be used as a useful introduction of Monero's privacy features to new users.
ChainRadar makes it easy to locate the blockchains of numerous CryptoNote coins in one place.
The Onion Monero Blockchain Explorer is the newest block explorer and very focused on the security and privacy of its users. It uses no javascript, no web analytics trackers, no images, and is open sourced. There are currently two known hosts of the code, an onion (Tor) version and a clearnet version with plans for an I2P route coming soon.

There are (an unknown number of) other block explorers, but with less unique feature support as those mentioned above.

Note that when looking at the BCN CryptoNote chain on ChainRadar or Minergate, there is strong evidence that transaction volume is artificially created by the same insiders who faked the BCN inception date. Because MinerGate seems to be controlled by the same people who control BCN (plus CoinTelegraph, Changelly, and more) its blockexplorer should never be relied upon as your only source of data.


Is it possible to prove that two outgoing transactions were sent to the same person? Using Monero instead of Bitcoin, is it possible to trace the transaction and check whether two outgoing transactions were sent to the same person? Does it matter whether transactions are public or not?

Unless the sender included such information in the transaction (ie, an unencrypted payment id that is identical in both transactions, or very specific amounts sent), it is not possible to determine that two transactions where to the same standard address.

In Cryptonote, all outputs go to a separate one time address. Those one time addresses are generated in such a way that the recipient is able to derive the private key to them using their own private key, but an observer without those private keys is unable to. Thus, the observer sees that those two transactions send N1 and N2 outputs to a set of one time addresses, but can't correlate them. Indeed, the observer cannot tell which of the outputs in a transaction go to the recipient, and which are change.

Once RingCT takes effect, even trying to spot very specific amounts will cease to be a possible avenue since amounts will be encrypted (and only the recipient of an output will be able to decrypt it).


How to mining on Ubuntu 18.04 with AMD cards The new Ubuntu system is about to be released, how could you set it to mining Monero with AMD cards? AMD new drivers on the horizon?

With the latest Radeon AMD driver, and programs like xmr-stak or cast_xmr, is easy to mine Monero with AMD GPU cards under Ubuntu 18.04.

References:

AMD Radeon Linux driver - https://www.amd.com/en/support

XMR-stak - https://github.com/xmr-stak

Cast_XMR - https://github.com/glph3k/cast_xmr


How open Monero wallet and sweep_all with one command in CLI? I want run only one string in command line.
And that after executing this command, the wallet opens, syncs, and funds are sent.

monero-wallet-cli --wallet-file MyWallet --password MyPass sweep_all address


monero was not received into my MyMonero wallet I have sent monero from Cryptopia to MyMonero.com, but after 24 hours, the monero was not received into my MyMonero wallet. At Cryptopia, it notes the transaction is completed, so I can't cancel the transaction from there. I ended up losing the money. Does anyone have idea to recover?

Actually many people are having the same problem at Cryptopia while trying to withdraw their XMR, and there are people actuallly waiting for 9 days! Just keep away from them until the exchange resolves the issue.


Miner publishes a block to the network with a lag I just noticed that a pool has "retained" a new block for quite a long time. See snapshot below where the block was found 3 minutes ago but still not pushed to the network (my own node was not seeing it either).

Is it something that they are doing on purpose to get a head start on mining the next block? Or is it due to how the protocol works?

When a block is found by a single party it is not added to the blockchain immediately as it is only accepted as a true block by one party, more confirmations are needed by other miners first before the hash found is considered to be an accepted block on the chain.

Thus, more confirmations are needed before everyone can see the newly found block on their nodes.


Monero wallet not working with Ledger on Mac High Sierra (was working previously) I've run into a really frustrating issue with my Ledger Nano S and the Monero wallet, and can't seem to get it to work again. The wallet was working previously and now no longer detects my Ledger anymore. I have already run through all the incredibly tedious steps of creating the wallet:

Booting into recovery mode
Disabling SIP
Rebooting
Adding the necessary smart card ID keys to the Info.plist file
Booting into recovery mode
Renabling SIP
Restart

This allowed me to create the wallet using the GUI and I synced it and sent funds to my wallet and I could see them in the wallet and the wallet was working well.

About a week later I tried to access the wallet again and I am now getting the same error I was getting before I installed the wallet:

  Couldn't open wallet: Fail SCard API : (-2146435069) Invalid handle. Device=0, hCard=0, hContext=1

I've done the following to try rectify this but to no avail:

Checked the USB cable and verified it's working and is the same one I used when creating the wallet and received the funds.
I've opened the Info.plist file and verified that those keys still exist and are the same as when the wallet was working
Restarted numerous times
Booted into recovery mode and disabled SIP again
Tried all USB ports on my MAC
Gone through pretty much every Ledger / Monero related issue on this forum

But still I haven't been able to get it working again. I was using a USB hub when I first installed it and I'm wondering if that was maybe the problem? Surely if it detects the device on one USB port then any port should work thereafter? At this stage I'm really grasping at straws as I have no idea how to get it working again and no longer have access to my funds - very frustrating.

I know a new version of the GUI is coming out mid-way through October to solve all these issues with Macs but would like to access my funds before then if possible!

Any help would be great (ಥ﹏ಥ)

Thanks in advance

The predominant reason for a properly working Ledger & Monero setup to stop working is that the USB cable is either broken or slightly damaged (and therefore unable to function properly). Fortunately, this particular issue is easily resolved by buying a new USB cable. Alternatively, it could be that the USB port is not functioning properly anymore. You can easily check whether this is the culprit of your issue by using a different USB port.


How is the number of key images for a transaction selected? I see that there are a few transactions that have many key images for each of the 11 ring members. But there are also a few with a lesser number of key images. How does this happen?

[Though this wasn't always the case, due to a bug that was discovered and patched prior to any exploit] there is a single key image that can be derived for each output on the blockchain.  The output's recipient is the only one who can create that key image using their secret spend key.  When you spend your Monero, your transaction must attach the key image and sign the transaction (another use of the secret spend key) in order to create a valid transaction.

Any key images you're seeing on a block explorer represent the proof that a particular output is able to be spent, plus it prevents that output from being spent again because the key image remains in the key image list.


Hash rate required to effectively mine an average of 1 block a day? What is the hash rate required to solo mine an average of 1 Monero Block per day using the current network stats?

Currently the network hashrate is approximately 22.9 MH/s. There are about 30 blocks per hour and 720 blocks per day.

On average to find one block per day you would need 1/720 of the current network hashrate or approximately (22.9 MH/s)/(720) = 31.8 kH/s today. The relationship between MH and kH is found here


monero wallet and RingCT When will the monero wallet and ringct be completed for monero users and will the wallet be compatible with other cryptocurrencies like BTC ETH etc?

The monero wallet with optional RingCT transactions will be available in January (RingCT transactions are available on TestNet on the current wallet). RingCT will be mandatory in the next hard fork after that.

You might mean the official GUI wallet. This will be released when it is done and there is no timeline.

Monero is quite a bit different from other cryptocurrencies so no, the wallet is most certainly not compatible with other currencies. You may be thinking of some multicurrency wallets which may soon include monero; we have no information when these will be available either.


How do I figure out how much a share is worth in the PPLNS world? I'm trying to figure out how much accepted shares are worth, however small, in a mining pool, situation, specifically of a PPLNS scheme.  What is the formula to figure how what a specific share is worth?  I thought block reward might come into play, but since PPLNS isn't bounded by found blocks, I'm somewhat confused about how to start calculating.  I'm mining in this pool -- https://mixpools.org/xmr/ but use whatever pool as an example.

Shares are not equal. One persons "share" may have X difficulty and anthers has Y difficulty. Each share is associated the difficulty of an accepted hash. PPLNS favors miners that stay on one pool (as opposed to pool hopping) because the percentage of a found block payout is not just splitting on the hashes submitted for that particular block.

A good explanation of a specific implementation of PPLNS can be found here.


How to determine the software version of an RPC node? If I connect to a remote RPC node, is there a request to determine what release of Monero it is running?

For example, I might prefer an RPC node running v15.0.0 including the recent side channel mitigation.

I have already looked at https://web.getmonero.org/resources/developer-guides/ but I cant seem to find a request that gives me this information.

So long as the node is not running with the restricted RPC (i.e. --restricted-rpc),
 you can check its version by calling get_info. E.g.

curl http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}'

The result object has a version field like: "version": "0.15.0.1-release"


Monero daemon sees deposit but doesnt record it Coding a wallet for my website.  I built a testnet and stagenet wallet.  Both versions same issue so I think it's me.  Utilizing xmr.to for test coins and the node address.
I start the wallet RPC like:
/home/testuser/monero-x86_64-linux-gnu-v0.16.0.3/monero-wallet-rpc --daemon-address 18.133.59.45:28081 --trusted-daemon
--rpc-bind-port 12388 --disable-rpc-login --log-level 2 --wallet-file /home/testuser/testwallet --prompt-for-password --testnet

This is up and running with no issues and getting new blocks received.  I also tried using monero-x86_64-linux-gnu-v0.15.0.1 as I thought that could be the problem.  I send coins from xmr.to, see the payment ID on xmrchain and confirmations. The wallet, started above, sees it almost instantly:
2020-08-29 18:23:39.557 D Decrypted payment ID: <...>
2020-08-29 18:23:39.557 D Payment found in pool: <...> / <d939...7182> / 1000000000000

It shows that it got an incoming transaction but only that one time, never again.
The problem is the coins on both testnet and stagenet never show in my wallet.  This is after 10 transactions and 2 days of trying.
My wallet shows the response:
Refresh done, blocks received: 0, balance (all accounts): 0.000000000000, unlocked: 0.000000000000

My script to check incoming deposits:
def checkincomming(lastchecked):
"""
Get rpc incomming deposts
:param lastchecked:
:return:
"""

rpc_input = {
    "method": "get_bulk_payments",
    "params": {"payment_ids": False,
               "min_block_height": lastchecked}
}

# add standard rpc values
rpc_input.update({"jsonrpc": "2.0", "id": "0"})

# execute the rpc request
response = requests.post(
    url,
    data=json.dumps(rpc_input),
    headers=headers,
    auth=HTTPDigestAuth(rpcusername, rpcpassword))
print(response)
response_json = response.json()

return response_json

x = checkincomming(lastchecked=1540301)
print(x)

What am I doing wrong?

I was able to solve this with dEBRUYNE's help on reddit here.
Basically the wallet created block was too high and by lowering it I could scan for new transactions in the lower block heights.
I used the command:
monero-wallet-cli --testnet set refresh-from-blockheight <blocknumber>

where blocknumber is lower than current block height (I put 10% lower).
The downside is past transactions I sent are not recorded still, but new ones are. I'm unsure why yet.


An academic "hello world" on Monero I'm a graduate student looking to improve my skills in real-world applications of cryptography and online anonymity. Reviewing all of the new blockchain and alt-coin variants, I believe that Monero is the most interesting development in this respect.

I'm skilled in software development, microcontroller DSP, and GP-GPU high-performance computing, relating to academic research in number theory.

What recommendations would you have on how I can best (and most rapidly) familiarize myself with the Monero development community?

I'm considering starting an open-source project for mining on Android devices (even with the inherent computational inefficiencies) as a proof-of-skill mechanism. I know of the ARMv7 code on the main branch, but is there any other relevant projects?

Thanks!

What recommendations would you have on how I can best (and most rapidly) familiarize myself with the Monero development community?

From a dev perspective, the best places to start are probably the IRC channels #monero-dev and #monero-research-lab, both of which have regular meetings and discussion. There are also open the issues and pull requests on GitHub for seeing things actively being proposed, fixed or worked on.

  I'm considering starting an open-source project for mining on Android devices (even with the inherent computational inefficiencies) as a proof-of-skill mechanism. I know of the ARMv7 code on the main branch, but is there any other relevant projects?

Monero certainly builds and runs on Android fine; there are instructions for compilation (inc. armv6, armv7 & armv8) in the main project page. It's difficult to answer your question w.r.t. other relevant projects without knowing more specifics, but there are certainly others adding Monero mining capabilities to phones, such as an recent news about HTC launching a phone that will be shipped with a Monero miner [src].


How do I get the account_index parameter for the wallet RPC? I am using the Monero wallet RPC method get_balance to get my wallet balance.
One of the inputs is account_index, which is described as:

  account_index - unsigned int; Return balance for this account.

What is account_index and how do I get it?

Every wallet has a main account at index 0. If you created other accounts in the wallet, they also have an index, as shown in the wallet. Using get_balance, you can even omit the field account_index as it will default to the main account (index 0).


How to get network hashrate from monero daemon via RPC? When the Monero daemon is running, the monerod status command prints the network hashrate .., net hash 287.52 MH/s,... I couldn't find any mentions of network hashrate in the Monero daemon RPC documentation.

Is it possible to somehow get this information through RPC or is executing the monerod status command and parsing its text output the only way?

You can call the getinfo RPC, which contains the two values you want: difficulty (the threshold a hash must meet to be a valid block) and target (the number of seconds the monero network attempts to keep between blocks, on average). Divide the former by the latter to get the estimated network hash rate.

Example using curl:

curl -v -X POST http://127.0.0.1:18081/getinfo -d '{}' -H 'Content-Type: application/json'


Possible to mine on nvidia Pascal (10xx) GPUs? I haven't found a miner that works yet on 1070s. Does anyone know if this is possible? If so, could you share how you've done it?

My EVGA 1070 Founders Edition maxes at 470 h/s with Tsiv's CCMiner pool software, though its possible I'm missing some settings that could help it hash higher. Pretty stinky scores. This is worse than many older cards. Basically, there is not yet good public mining software for the newer cards.

Source code found here: https://github.com/tsiv/ccminer-cryptonight/
Compiled Windows binaries are under "releases".

Instructions for compiling on Ubuntu 16.04 here: https://steemit.com/monero/@mobidick/how-to-mine-monero-on-ubuntu-16-04-using-ccminer-cryptonight


LINUX - GUI v0.12 does not connect to local or remote node (std::bad_cast error) As the title states, I am using Linux and the v0.12 GUI does not connect to a local or remote node. In addition, I am seeing this particular error in monero-wallet-gui.log:

ERROR  default src/wallet/api/utils.cpp:46 error: std::bad_cast

This particular issue is resolved in GUI v0.13.

 This bad_cast issue is currently being investigated. In the meantime, there are two (temporary) workarounds, namely (i) using CLI v0.12 and (ii) using GUI v0.11 (with monerod v0.12 if you're using a local node).

Local node

Workaround 1:

Exit the GUI.
Browse to the directory your wallet files are located (~/Monero/<wallet-name>)
Copy the wallet files to the same directory as v0.12 CLI (monero-wallet-cli).
Open a new terminal from the same directory as v0.12 CLI.
If you specified a custom data directory (or, in other words, if you specified a Blockchain location in the GUI), skip this step and proceed to step 5. If you did not specify a custom data directory, type:

./monerod
If you specified a custom data directory, we have to add the --data-dir flag. That is:

./monerod --data-dir path/to/data/directory

For instance, if you used Monero as data directory on an external drive, your command would be:

./monerod  --data-dir /Volumes/externaldrive/Monero

Note that the --data-dir flag has to be applied every time you start the daemon (monerod).

Open another terminal from the same directory as v0.12 CLI.
Type -> ./monero-wallet-cli
Enter your wallet name.
Enter your password.
The wallet should now open in the CLI and perform a refresh.
Once it's fully refreshed, you can transact. I'd advise to use this guide for assistance:

https://getmonero.org/resources/user-guides/monero-wallet-cli.html

Workaround 2:

Exit GUI v0.12.
Replace monerod in the v0.11 directory with the v0.12 monerod
Browse to the directory your wallet files are located (~/Monero/<wallet-name>)
Rename <wallet-name> (the file without extension) to <wallet-name>-old
Open GUI v0.11. It should now work properly with monerod v0.12.

There is, unfortunately, one salient caveat with this workaround. That is, input sorting is required for v7 and GUI v0.11 is not able to sort inputs. As a result, creating a 2 input 2 output transaction will, on average, fail 50% of the time. Similarly, creating a 3 input 2 output transaction will, on average, fail 33% of the time. Creating a 1 input 2 output transaction, however, should not fail.

Remote node

Workaround 1:

Exit the GUI.
Browse to the directory your wallet files are located (~/Monero/<wallet-name>)
Copy the wallet files to the same directory as v0.12 CLI (monero-wallet-cli).
Open a new terminal from the same directory as v0.12 CLI.
Type -> ./monero-wallet-cli --daemon-address <remote-node-address>:<remote-node-port>
For instance, if you used node.moneroworld.com with port 18089 as remote node, the command would be -> ./monero-wallet-cli --daemon-address node.moneroworld.com:18089
Enter your wallet name.
Enter your password.
The wallet should now open in the CLI and perform a refresh.
Once it's fully refreshed, you can transact. I'd advise to use this guide for assistance:

https://getmonero.org/resources/user-guides/monero-wallet-cli.html

Workaround 2:

Exit GUI v0.12.
Browse to the directory your wallet files are located (~/Monero/<wallet-name>)
Rename <wallet-name> (the file without extension) to <wallet-name>-old
Open GUI v0.11. It should now work properly.

There is, unfortunately, one salient caveat with this workaround. That is, input sorting is required for v7 and GUI v0.11 is not able to sort inputs. As a result, creating a 2 input 2 output transaction will, on average, fail 50% of the time. Similarly, creating a 3 input 2 output transaction will, on average, fail 33% of the time. Creating a 1 input 2 output transaction, however, should not fail.


Bitfinex asks for 64 character payment ID to withdraw, but the wallet generates shorter ones When withdrawing Monero from Bitfinex, they ask for a 64 character payment ID.

The payment IDs generated by the official wallet are much too short.

Should I be using the integrated address, with no payment ID?

A payment ID is optional, and determined by whoever you're sending to. If you're sending to yourself, then you do not need a payment ID (or you can make one up as you see fit).

The payment ID is arbitrary data which the recipient can use to associate with a sender: for instance, if you were to sent to Poloniex (instead of your on wallet), then Poloniex would give you a payment ID to use so they can tell an incoming transfer is intended for your Poloniex account, and not anyone else's.

In this case, you can leave the payment ID empty.

Whether you can use an integrated address, I do not know. This depends on whether Bitfinex supports these. It seems likely, but you would have to try (and, if it fails, possibly ask support to recredit your Monero in case this is not automatic).

Long style payment IDs are obsolescent, but most exchanges still use those instead of shorter ones, which are baked directly in a Monero integrated address.