Skip to main content
Share Your Experience: Take the 2024 Developer Survey
21 votes
Accepted

How can someone verify that the source downloaded from github is genuine?

Signed git commits allow a user to verify the source was signed by one of the contributors. In order for this to work, however, several steps have to be taken: The user must have git and GPG ...
user36303's user avatar
  • 34.8k
9 votes
Accepted

What type of security audits has Monero received?

As well as the informal review of CryptoNote provided to the Monero team by SURAE NOETHER here, the source code is available on monero-project's github here. These slides also review the protocol. A ...
bekah's user avatar
  • 455
8 votes
Accepted

How much of the Monero code has been changed since the Bytecoin fork?

This is of course a coarse method, but we can do the following: Get git to work out who authored a given line for all the lines in src: $ find src/ -name \*.cpp -o -name \*.c -o -name \*.inl -o -...
user36303's user avatar
  • 34.8k
7 votes
Accepted

A SHA-1 collision has been found. Does that mean the Monero repositories on Github can be compromised?

It'd need to wait for git to implement stronger collision resistance. Work is underway for this: http://www.metzdowd.com/pipermail/cryptography/2017-February/031606.html However, Linus (original ...
user36303's user avatar
  • 34.8k
7 votes

What type of security audits has Monero received?

As far as I'm aware, there were no "formal" reviews, as in an outside third party is hired for the purpose, and publishes a review document. The Cryptonote whitepaper was reviewed by a cryptographer, ...
user36303's user avatar
  • 34.8k
6 votes
Accepted

Why is sc_reduce32 needed?

The paper is incorrect; it's actually mod l, not q. l is the curve order of ed25519. The primary reason AFAIK is that the code doesn't work correctly with scalars above a certain multiple of l. The ...
Luigi's user avatar
  • 2,462
6 votes
Accepted

How many lines of source code does Monero have?

I do not know the exact number of lines of Monero source code, but there are a few methods to calculate it, which are described here. Monero is not based on the Bitcoin code base and is rather ...
Smart Kid's user avatar
  • 6,563
5 votes
Accepted

How do I build Monero for Windows from source?

It is much harder to compile software for Windows than it is for GNU/Linux or MacOSX. Instructions do exist in one of Ilya Kitaev's GitHub forks, but they haven't been merged yet at time of writing. ...
wizzwizz4's user avatar
  • 166
4 votes
Accepted

Source code history "immutability"

If history is rewritten, you will not be able to pull over an existing tree (it's a bit more complicated, but in the general case where you're only ever on master, it holds). This is the "fast forward"...
user36303's user avatar
  • 34.8k
4 votes
Accepted

How can I test fluffyblocks?

Good that you ask. Actually, a coordinated test is ongoing and you could join in: https://www.reddit.com/r/Monero/comments/6eef96/fluffynet_update_please_move_some_to_tier_3_4_and/ And yes, you can ...
JollyMort's user avatar
  • 19.9k
4 votes
Accepted

What are field elements and group elements used for?

The ref10 folder contains code for operations on curve25519. This code comes from NaCL, and is not specific to monero. Reading material on ECC will be more helpful in understanding this code than the ...
Lee Clagett's user avatar
4 votes
Accepted

ed25519 point structs

They are all group elements (hence the ge_ prefix) and are different representations. From some ed25519 source: ge means group element. Here the group is the set of pairs (x,y) of field elements (...
jtgrassie's user avatar
  • 19.1k
4 votes
Accepted

Problem with compile part of monero sources to create python bindings

This is not specific to Monero, rather a C/C++ linking question, nevertheless... The order you add the libraries matters. In your example: ... /usr/bin/c++ _build/pymonero.cpp.o -o pymonero \ -L$...
jtgrassie's user avatar
  • 19.1k
3 votes
Accepted

If I compile from source, how can I change default wallet and daemon 10-block lock time?

All that's required is to change one line of code in the cryptonote_config.h: #define CRYPTONOTE_DEFAULT_TX_SPENDABLE_AGE 10 and build with the new value.
JollyMort's user avatar
  • 19.9k
3 votes
Accepted

What is the meaning of wallet2::transfer_details::m_global_output_index?

In the CryptoNote protocol, outputs are organized into groups according to their amounts, and m_global_output_index represents the index of a given output in its corresponding group. This reduces the ...
kenshi84's user avatar
  • 2,475
3 votes

How many lines of source code does Monero have?

Using David A. Wheeler's SLOCcount (http://www.dwheeler.com/sloccount), the canonical tool for counting such things, Monero appears to be about 65k lines of C++ code and 5k lines of C code (src and ...
user36303's user avatar
  • 34.8k
3 votes
Accepted

What is src/blocks/checkpoints.dat and why is it not plaintext in the source code?

It is the set of block hashes from the genesis block to a fairly recent block, and is used to speed sync up for historical blocks. It is typically updated shortly before a new release. Those hashes ...
user36303's user avatar
  • 34.8k
3 votes

How do I fix build error about fPIC?

I did this to recompile libgtest-dev with -fPIC and it worked for me. sudo apt-get install libgtest-dev cd /usr/src/gtest/ sudo cmake -DCMAKE_CXX_FLAGS="-fPIC" sudo make sudo mv libg* /usr/lib/
rupee's user avatar
  • 31
3 votes
Accepted

How is building the GUI from source different from building monerod/CLI?

The monero GUI source code and installation guide (including Ubuntu 16) can be found here https://github.com/monero-project/monero-core To answer your questions by referring the guide. It installs ...
Gundamlancer's user avatar
  • 1,026
3 votes

Alternative Monero implementations

An old experiment of alternative implementation of Monero can be https://github.com/monero-project/mininero It's not an alternative for Monero but an alternative for RingCT transactions.
SerHack's user avatar
  • 540
3 votes
Accepted

Why does the SHA512 code include numbers ending in ULL?

Found the answer by googling in order to formulate a somewhat intelligent question: ULL means Unsigned Long Long integer.
ProkhorZ's user avatar
  • 543
3 votes
Accepted

Updating my monero master

Sure, assuming you have not made any branches, and that doesn't sound likely, follow these steps: if you have made any changes to the repo: git stash git pull --rebase if you have made any changes to ...
user36303's user avatar
  • 34.8k
3 votes

Helper functions for ECC operations in Monero

https://github.com/monero-project/monero/blob/master/src/crypto/crypto-ops-data.c There are 2 places these ops are found, firstly https://github.com/monero-project/monero/blob/master/src/crypto/crypto-...
jtgrassie's user avatar
  • 19.1k
3 votes
Accepted

What takes the most computing time in a monero wallet?

The two main operations in terms of CPU usage are determining if an output is sent to you (is_out_to_acc_precomp, defined in src/cryptonote_basic/cryptonote_format_utils.cpp) and generating the key ...
user36303's user avatar
  • 34.8k
3 votes
Accepted

How does the code for scalar reduction work?

The magic numbers are best explained here: /** * Lots of magic numbers :) * To understand what's going on below, note that * * (1) q = 2^252 + q0 where q0 = 27742317777372353535851937790883648493....
jtgrassie's user avatar
  • 19.1k
3 votes
Accepted

Problem building release-v0.16

You either need to upgrade boost or use this PR: https://github.com/monero-project/monero/pull/6612 An earlier PR got merged that broke boost compatibility.
jtgrassie's user avatar
  • 19.1k
2 votes
Accepted

What is the purpose of the Monero GitHub Meta repository?

What type of issues is this GitHub meant to address? From the dev meeting: fluffypony:: pigeons: do you want to tell people about the new repo we're using for issues? pigeons: github.com/monero-...
dEBRUYNE's user avatar
  • 15.2k
2 votes

Computing the hash of a string using Monero's codebase

For SHA-3, you have cn_fast_hash, with this prototype: void cn_fast_hash(const void *data, std::size_t length, crypto::hash &hash); crypto::hash is a 256 bit value.
user36303's user avatar
  • 34.8k

Only top scored, non community-wiki answers of a minimum length are eligible