Bitcoin Forum

Alternate cryptocurrencies => Altcoin Discussion => Topic started by: monero-extended on July 16, 2014, 03:41:10 AM



Title: Monero Development and Engineering
Post by: monero-extended on July 16, 2014, 03:41:10 AM
http://i59.tinypic.com/59u1yg.png
››› Development and Engineering ‹‹‹
Monero ANN (https://bitcointalk.org/index.php?topic=583449) • Monero Support (https://bitcointalk.org/index.php?topic=652305) • Monero Mining (https://bitcointalk.org/index.php?topic=653467) • Monero Speculation (https://bitcointalk.org/index.php?topic=622708) • Monero Economy (https://bitcointalk.org/index.php?topic=597878.0)
#monero • #monero-dev • #monero-otc


https://i.imgur.com/tTuHTy5.png (https://twitter.com/monerocurrency) https://i.imgur.com/nPqus60.png (http://www.reddit.com/r/monero) https://i.imgur.com/KUepI24.png (https://www.facebook.com/monerocurrency) https://i.imgur.com/YSTpt3e.png (https://plus.google.com/101861896996947433029/posts)




The usage for this thread will encompass questions and discussion on topics that are more technical than can be found in the Monero Support thread. It will focus on development discussion, engineering-related topics such as the API usage, pool developer support as well as information to be found on the upcoming Monero Wikia.

This thread is self-moderated. Off-topic questions will either be deleted or possibly re-posted in their appropriate Monero thread depending on the discretion of the OP. Rude, offensive and completely off-topic discussions are not encouraged and will have to be removed to keep a high quality thread. Aside from that posts may be deleted for whatever reason. Deletion does not necessarily mean that the post was offensive. It may also have been too long to quote (in which case either the original, or the reply may be pruned), repetition of yours or somebody else's point, or anything else.

Here are useful links (Links will be added as necessary):

Links to available software:
Github member tree: https://github.com/tewinget/bitmonero/network/members
CryptoNote Pool Source: https://github.com/zone117x/node-cryptonote-pool
Tsiv's Nvidia Miner Source: https://github.com/tsiv/ccminer-cryptonight
Jojatekok's Windows wallet source: https://github.com/Jojatekok/monero-client-net
tewinget's repo: https://github.com/tewinget/bitmonero/commits/master
Wolf0's CPU Miner source: https://github.com/wolf9466/cpuminer-multi
Monero Improvement Protocols: https://github.com/monero-developers/mips
I2PD Source: https://github.com/orignal/i2pd

Links to other information sources:
Main Website: http://www.monero.cc/
Community FAQ Thread: https://bitcointalk.org/index.php?topic=686086.msg7784707#msg7784707
Community Recognition Thread: https://bitcointalk.org/index.php?topic=694762.msg7845979
White Paper: https://cryptonote.org/whitepaper.pdf
White Paper Review: http://monero.cc/downloads/whitepaper_review.pdf


-updated by kbm

Sorry in advance for being a tyrant. I know that im deleting a bunch of well meaning posts from well meaning people but they simply aren’t topical. This isn't a thread for discussion about the virtues of or problems with moderation. I still love you guys. Please don't be mad. This is my job. We have other threads with looser standards. This thread is for development related discussion, NOTHING ELSE.


Title: Re: Monero Development and Engineering
Post by: kbm on July 16, 2014, 04:25:57 AM
I will not participate in a self-moderated thread because I've already seen a desire for censorship (https://bitcointalk.org/index.php?topic=583449.msg7813428#msg7813428) which impact engineering considerations (https://bitcointalk.org/index.php?topic=583449.msg7868611#msg7868611). My posts will continue in the unmoderated thread.

I edited the post to explain that technical considerations were impacted by the topic you wanted to censor.

You know as well as I do that this isn't really about a self-moderated thread, and I'm not going to start off with having the first thing on the thread done by deleting all the posts inside of it. I'm just not. Make of that what you will. If it (edit: aimless conversation - not you personally) gets to the point where it's driving people insane, that's a different story.

I posted on your self-moderated thread as 4 different profiles and not even once did I care if I was censored. Your keen insights won't be censored just because you're worried someone won't know you made an awesome technical point. If you can bear it, please stay around. If not and everyone else follows suit, then this will be a lonely thread where I will toss any information I can find into it about anything related to the topics.

It's a self-moderated thread, therefore by extension the discussion has simply been about self-moderation itself. I'd consider that a part of the implicit nature of the thread.

Can we move on from that or will this be an endless tantrum? You literally just said to aminorex "your IQ is higher than that" ... well ...!

Back on topic.

Current development discussion topics:

I2P C++ Integration
Code descriptions/labeling/annotations
GUI wallet: https://github.com/Neozaru/bitmonero-qt
Website progress
Pool updates

- what kinda of commits are people seeing on github?






Title: Re: Monero Development and Engineering
Post by: smooth on July 16, 2014, 04:30:36 AM
Database


Title: Re: Monero Development and Engineering
Post by: kbm on July 16, 2014, 06:50:22 AM
Database

That's a pretty good topic. What kind of database is being worked on? How does it differ from bitcoin?

I'm going to try to take same descriptions from the bitcoin wiki/wikipedia here:

https://en.bitcoin.it/wiki/Main_Page
http://en.wikipedia.org/wiki/Bitcoin

And try to retype some of them to describe Monero right in this thread when I get the chance, so that the information can be copied/pasted in the future. If someone working on the wikia reads this before I get a chance to contact you, please post here or pm me topics you'd like to see written up.

The FAQ that was started is good but some of it can be an entire topic for sure, and some of it can stay as a FAQ.


Other topics I can think of:

Transaction Auto Splitting
Deterministic Wallets

White Paper Citations:


1. http://bitcoin.org (http://bitcoin.org)

2. https://en.bitcoin.it/wiki/Category:MixingServices (https://en.bitcoin.it/wiki/Category:MixingServices) - dead link

3. http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ (http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/)

4. https://bitcointalk.org/index.php?topic=279249.0 (https://bitcointalk.org/index.php?topic=279249.0)

5. http://msrvideo.vo.msecnd.net/rmcvideos/192058/dl/192058.pdf (http://msrvideo.vo.msecnd.net/rmcvideos/192058/dl/192058.pdf)

6. https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki#Speci%0Ccation. (https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki#Speci%0Ccation.)

7. https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki#BackwardsCompatibility (https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki#BackwardsCompatibility)

8. https://en.bitcoin.it/wiki/Mininghardwarecomparison (https://en.bitcoin.it/wiki/Mininghardwarecomparison) - dead link

9. https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki (https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki)

10. http://luke.dashjr.org/programs/bitcoin/%0Cles/charts/branches.html (http://luke.dashjr.org/programs/bitcoin/%0Cles/charts/branches.html) - dead link

11. https://bitcointalk.org/index.php?topic=196259.0 (https://bitcointalk.org/index.php?topic=196259.0)

12. https://en.bitcoin.it/wiki/Contracts (https://en.bitcoin.it/wiki/Contracts)

13. https://en.bitcoin.it/wiki/Script (https://en.bitcoin.it/wiki/Script)

14. http://litecoin.org (http://litecoin.org)

15. Moderately hard, memory-bound functions (http://research.microsoft.com/pubs/54395/memory-longer-acm.pdf)   

16. Ad-hoc-group signatures from hi-jacked keypairs (http://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypairs.pdf)
   
17. Short linkable ring signatures revisited (http://f3.tiera.ru/2/Cs_Computer%20science/CsLn_Lecture%20notes%20%20/P/Public%20Key%20Infrastructure,%203%20conf...%20Theory%20and%20Practice,%20EuroPKI%202006%28LNCS4043,%20Springer,%202006%29%28ISBN%203540351515%29%28269s%29.pdf#page=110)

18. High-speed high-security signatures (http://ed25519.cr.yp.to/ed25519-20110705.pdf)
   
19. Group signatures (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.86.7757&rep=rep1&type=pdf)
   
20. Exponential memory-bound functions for proof of work protocols (http://www.cri.ensmp.fr/classement/doc/A-370-v2.pdf)
   
21. Proofs of partial knowledge and simpli ed design of witness hiding protocols (http://www.win.tue.nl/~berry/papers/crypto94.pdf)
   
22. On memory-bound functions for fighting spam (http://research.microsoft.com/pubs/65154/crypto03.pdf) - another nice one
   
23. Sub-linear size traceable ring signatures without random oracles (http://www.researchgate.net/publication/226082986_Sub-linear_Size_Traceable_Ring_Signatures_without_Random_Oracles)

24. Traceable ring signature (http://eprint.iacr.org/2006/389.pdf)
   
25. Peer review of "quantitative analysis of the full bitcoin transaction graph" (https://gist.github.com/jgarzik/3901921)
   
26. Linkable spontaneous anonymous group signature for ad hoc groups (http://eprint.iacr.org/2004/027.pdf)
   
27. Linkable ring signatures: Security models and new schemes (https://anonfiles.com/file/1ade51fc9396705bed12079ab17b41ba) (Link courtesy of binaryFate)

28. Zerocoin: Anonymous distributed e-cash from bitcoin (http://spar.isi.jhu.edu/~mgreen/ZerocoinOakland.pdf)
   
29.  Structure and anonymity of the bitcoin transaction graph (http://www.mdpi.com/1999-5903/5/2/237)
   
30. Universal electronic cash (http://pdf.aminer.org/000/120/358/universal_electronic_cash.pdf)
   
31. The bitcoin transaction graph | anonymity (http://openaccess.uoc.edu/webapps/o2/bitstream/10609/23562/9/msantamariaoTFM0613memoria.pdf)
   
32. Stronger key derivation via sequential memory-hard functions (https://www.tarsnap.com/scrypt/scrypt.pdf)
   
33. An analysis of anonymity in the bitcoin system (http://arxiv.org/pdf/1107.4524.pdf?origin=publication_detail)
   
34. How to leak a secret (http://people.csail.mit.edu/rivest/pubs/RST01.pdf)
   
35. Quantitative analysis of the full bitcoin transaction graph (http://fc13.ifca.ai/proc/1-1.pdf)
   
36. Analysis of hashrate-based double-spending (http://arxiv.org/pdf/1402.2009v1.pdf)
   
37. Rational points on certain hyperelliptic curves over finite fields (http://wenku.baidu.com/view/fc809ed7360cba1aa811daf1.html)
   
38. Ad hoc group signatures (https://anonfiles.com/file/5aae7a1f02c40d82aa76e255f0549ec1) (Link courtesy of binaryFate)


Title: Re: Monero Development and Engineering
Post by: smooth on July 16, 2014, 08:21:11 AM
Database

That's a pretty good topic. What kind of database is being worked on? How does it differ from bitcoin?

It was mentioned in the latest Missives #6: https://bitcointalk.org/index.php?topic=583449.msg7847156#msg7847156

What I gather from browsing the commits is that the work is focusing on refactoring to support a clean database interface, and then one or more databases will be supported.



Title: Re: Monero Development and Engineering
Post by: fluffypony on July 16, 2014, 08:49:12 AM
Database

That's a pretty good topic. What kind of database is being worked on? How does it differ from bitcoin?

It was mentioned in the latest Missives #6: https://bitcointalk.org/index.php?topic=583449.msg7847156#msg7847156

What I gather from browsing the commits is that the work is focusing on refactoring to support a clean database interface, and then one or more databases will be supported.

Spot on - first we refactor in order to support arbitrary key-value stores, and then we test a bunch of them for our specific workloads before deciding on one. Initial candidates that we liked out the box were hamsterdb and rocksdb. There's been some contention as there is a slightly faster version of hamsterdb available for purchase (you get the source, but can't distribute it), and some people feel its very availability would compromise the integrity of Monero. On the other hand, rocksdb (a leveldb fork by Facebook) breaks leveldb's Windows compatibility.

So everything is staying as loose and generic as possible, and then we'll plug into as many embedded databases as we can get our hands on, and publish the results. I'm also terribly keen on having a full node pushing the blockchain on to Tahoe-LAFS and having a bunch of independent nodes "verify" that the correct blockchain is being pushed, partly for fun, but also because I can envision some interesting use-cases where applications can be built accessing the blockchain on Tahoe-LAFS instead of locally (lightweight clients, for instance).


Title: Re: Monero Development and Engineering
Post by: nexern on July 18, 2014, 10:16:43 PM
for databases, i like to mentioned two additional candidates to test.

1. kyoto cabinet | c++ [ http://fallabs.com/kyotocabinet/ ]
2. Sophia | c [ http://sphia.org/benchmarks.html ]

kyoto has a very rich feature set and includes also kyoto tycoon (server part), mapreduce and lua scripting,
which could be very usefull for bc related services later (if any planed). i have tested and using kyoto under
heavy read/write conditions up to 0.5 tb files without any problems so far.
it's a lean, fast and very well written kv core with many usefull extensions to mimik relational workload if needed.
i didn't test sophia under real world conditions until now and sophia is more generic from it's handling but from the
performance view it looks promising. a test could make sense (just in case you are not already settled with hamsterdb).


Title: Re: Monero Development and Engineering
Post by: smooth on July 18, 2014, 10:30:10 PM
for databases, i like to mentioned two additional candidates to test.

1. kyoto cabinet | c++ [ http://fallabs.com/kyotocabinet/ ]
2. Sophia | c [ http://sphia.org/benchmarks.html ]

kyoto has a very rich feature set and includes also kyoto tycoon (server part), mapreduce and lua scripting,
which could be very usefull for bc related services later (if any planed). i have tested and using kyoto under
heavy read/write conditions up to 0.5 tb files without any problems so far.
it's a lean, fast and very well written kv core with many usefull extensions to mimik relational workload if needed.
i didn't test sophia under real world conditions until now and sophia is more generic from it's handling but from the
performance view it looks promising. a test could make sense (just in case you are not already settled with hamsterdb).

What is great about the approach being taken is that databases will be pluggable and it will be easy for others in the community to test their favorite databases and report. There is no reason to think the official build might not eventually use a database identified by the community as the best one, or that there will be different builds for different applications (pool node, high volume non-mining node, end user wallet, etc.)

 


Title: Re: Monero Development and Engineering
Post by: rdnkjdi on September 24, 2014, 10:06:39 PM
Quote
What is great about the approach being taken is that databases will be pluggable and it will be easy for others in the community to test their favorite databases and report. There is no reason to think the official build might not eventually use a database identified by the community as the best one, or that there will be different builds for different applications (pool node, high volume non-mining node, end user wallet, etc.)

I'll just throw my opinion in for what it's worth.  I used to work for a company that mostly used SQL Server (for end user applications).  Later on they picked up web developers who used MySQL for the websites (except for one & on that one they used SQL Server).  A little later on, they used postresql for a new project.

There was some resistance to using different backends and by the time it was all said and done having one solution seemed like it would've been a better idea.  Because the company experience was duplicated across all projects.  For something like this it seems like one database solution for all wallets would be a better idea as all troubleshooting & optimization would be focused on one solution rather than several.

I know we are talking about completely different types of databases - but I think the substance of the issue is applicable. 

My (uneducated) .02



Title: Re: Monero Development and Engineering
Post by: smooth on September 24, 2014, 10:13:17 PM
Quote
What is great about the approach being taken is that databases will be pluggable and it will be easy for others in the community to test their favorite databases and report. There is no reason to think the official build might not eventually use a database identified by the community as the best one, or that there will be different builds for different applications (pool node, high volume non-mining node, end user wallet, etc.)

I'll just throw my opinion in for what it's worth.  I used to work for a company that mostly used SQL Server (for end user applications).  Later on they picked up web developers who used MySQL for the websites (except for one & on that one they used SQL Server).  A little later on, they used postresql for a new project.

There was some resistance to using different backends and by the time it was all said and done having one solution seemed like it would've been a better idea.  Because the company experience was duplicated across all projects.  For something like this it seems like one database solution for all wallets would be a better idea as all troubleshooting & optimization would be focused on one solution rather than several.

I know we are talking about completely different types of databases - but I think the substance of the issue is applicable. 

Maybe you misunderstand (I'm not sure).

We will likely ship and support just one database, or maybe a database and a flat file version.

Other people (for example a payment processing service, exchange, etc.) who want to make their own customized deployment might do something else, but we wouldn't be supporting that, they would.



Title: Re: Monero Development and Engineering
Post by: rdnkjdi on September 24, 2014, 10:17:09 PM
Quote
Maybe you misunderstand (I'm not sure).

We will likely ship and support just one database, or maybe a database and a flat file version.

Other people (for example a payment processing service, exchange, etc.) who want to make their own customized deployment might do something else, but we wouldn't be supporting that, they would.

ah.  got it.  my understanding was the devteam having a payment processing download, exchange download, etc.

bad reading comprehension.


Title: Re: Monero Cmake Test Suite
Post by: craig-st on March 11, 2015, 02:33:21 AM
I did a 'git clone' followed by 'make test-release' to run the Monero project's built-in test suite.  Two of the twelve tests fail: coretests and unit_tests.  I'm on Linux (Ubuntu).  Anybody else have this problem?  I have the same problem with both the latest release ('git checkout tags/v0.8.8.6') and the most recent updates (v0.8.8.6-46-g6e5797d).  Coretests takes a really long time before it fails.  Like half an hour.


Title: Re: Monero Development and Engineering
Post by: lijingang on June 17, 2023, 05:22:03 PM
Is The APEPEPOW Project a meme coin in the Monroe community? Whether the APEPEPOW project developer is your Monero developer?
https://github.com/APEPEPOW