Author

Topic: [XMR] Monero - A secure, private, untraceable cryptocurrency - page 974. (Read 4670673 times)

sr. member
Activity: 252
Merit: 251

I never want to see this happen.  Living in NSA America is bad enough.  Liberty and Privacy first.

If one is using propriety DRM infected, locked down, systems it will happen. if one is not then it will not happen. The biggest threat to freedom coming out of the USA is not the NSA, it is the MPAA and any organization that uses DRM to "protect" its "premium" content. Understanding the real threat is the first step to dealing with it.

A very good of thumb. If your device supports DRM at the operating system level in any way then any and all information on said device is accessible to the NSA. 

i wouldnt say DRM in general is bad. DRM is bad when you don't own all the keys (up to the root of course).
imho (in theory) i'd prefer a locked down pc (tpm and drm) where i own all keys because i control what software is able to run: no more viruses, no more spyware....

atm it seems any pc/smartphone is insecure anyway - even without tpm/drm.
legendary
Activity: 2282
Merit: 1050
Monero Core Team

I never want to see this happen.  Living in NSA America is bad enough.  Liberty and Privacy first.

If one is using propriety DRM infected, locked down, systems it will happen. if one is not then it will not happen. The biggest threat to freedom coming out of the USA is not the NSA, it is the MPAA and any organization that uses DRM to "protect" its "premium" content. Understanding the real threat is the first step to dealing with it.

A very good of thumb. If your device supports DRM at the operating system level in any way then any and all information on said device is accessible to the NSA.  

Edit: Android is a perfect example. If one roots the device, a must to protect one's Liberty and Privacy, then the DRM on the device no longer "protects" the content providers. One simply cannot expect a computer or device to have two masters. The choice is DRM or Liberty and Privacy but not both.
sr. member
Activity: 306
Merit: 251

I never want to see this happen.  Living in NSA America is bad enough.  Liberty and Privacy first.
legendary
Activity: 2282
Merit: 1050
Monero Core Team

I did not find the article scary. The crucial part is
Quote
How do we force people to use key escrow?

Leaving aside the technical questions, the real question is: how do you force anyone to do this stuff? Escrow requires breaking changes to most encryption protocols; it's costly as hell; and it introduces many new security concerns. Moreover, laws outlawing end-to-end encryption software seem destined to run afoul of the First Amendment.

I'm not a lawyer, so don't take my speculation too seriously -- but it seems intuitive to me that any potential legislation will be targeted at service providers, not software vendors or OSS developers. Thus the real leverage for mandating key escrow will apply to the Facebooks and Apples of the world. Your third-party PGP and OTR clients will be left alone, for the tiny percentage of the population who uses these tools.

Unfortunately, even small app developers are increasingly running their own back-end servers these days (e.g., Whisper Systems and Silent Circle) so this is less reassuring than it sounds.

If source code is protected speech under the US First Amendment then using Free LIbre Open Source Software solutions, and staying well away from propriety software from companies like Microsoft and Apple is the answer. For server based products use only zero knowledge solutions. Furthermore one avoids using a "provider"  large or small, that has propriety systems that can be compromised. I fail to see the problem.
legendary
Activity: 3836
Merit: 4969
Doomed to see the future and unable to prevent it
legendary
Activity: 3836
Merit: 4969
Doomed to see the future and unable to prevent it
So once the database is released for all to enjoy (which is so soon its about to fall off the branch - fruit/github pun!!!) what're we going to start clamoring for / working on next? ...


Do to the dependencies what we need is a hierarchy branch structure of the development schedule. This would make the Teams goals much easier to understand for the layman. Visual representation is so much easier to point out than reiterating lists.

Something like a flowchart with arrows would be great for this in my opinion.

EDIT: The flowchart could also be updated with people who are working on it, that would make communicating a lot easier and the work will probably go a lot faster.

Really a simple Block diagram should be fine. this link might have the right template
http://www.breezetree.com/articles/flowchart-templates.htm
Flowcharting is designed to handle decision making.

yeah, i found a couple tools. I've used flow charts as block diagrams, but if someone actually reads flow charts language, it could get confusing.

https://www.gliffy.com/
https://drive.draw.io/
https://www.lucidchart.com/

I think a couple of them have options for collaborative work, though I don't know how they handle version control or "pull requests".

But I agree with the hierarchy comment - it would help both newcomer developers and the noncoders (thats me!!). For instance, there was a newcomer developer that popped into #monero and #monero-dev, all gung-ho to develop. He/she was pointed in proper directions, but I don't know what happened to him/her.

But to embrace the decentralized nature of things, anyone should be able to stumble into the github via getmonero.org, see a fertile field that needs planting, and go a'forking without popping into IRC to see whats up. But I could have no idea what I'm talking about because, yah know, noob and noncoder. So I'll just go do the dishes Smiley

Your doing great, wish I had the energy to get more involved but I can't even get up the drive to accomplish shit in my own life so I'll just sit here and cheer lead you guys on. Smiley
legendary
Activity: 1260
Merit: 1008
So once the database is released for all to enjoy (which is so soon its about to fall off the branch - fruit/github pun!!!) what're we going to start clamoring for / working on next? ...


Do to the dependencies what we need is a hierarchy branch structure of the development schedule. This would make the Teams goals much easier to understand for the layman. Visual representation is so much easier to point out than reiterating lists.

Something like a flowchart with arrows would be great for this in my opinion.

EDIT: The flowchart could also be updated with people who are working on it, that would make communicating a lot easier and the work will probably go a lot faster.

Really a simple Block diagram should be fine. this link might have the right template
http://www.breezetree.com/articles/flowchart-templates.htm
Flowcharting is designed to handle decision making.

yeah, i found a couple tools. I've used flow charts as block diagrams, but if someone actually reads flow charts language, it could get confusing.

https://www.gliffy.com/
https://drive.draw.io/
https://www.lucidchart.com/

I think a couple of them have options for collaborative work, though I don't know how they handle version control or "pull requests".

But I agree with the hierarchy comment - it would help both newcomer developers and the noncoders (thats me!!). For instance, there was a newcomer developer that popped into #monero and #monero-dev, all gung-ho to develop. He/she was pointed in proper directions, but I don't know what happened to him/her.

But to embrace the decentralized nature of things, anyone should be able to stumble into the github via getmonero.org, see a fertile field that needs planting, and go a'forking without popping into IRC to see whats up. But I could have no idea what I'm talking about because, yah know, noob and noncoder. So I'll just go do the dishes Smiley
legendary
Activity: 3836
Merit: 4969
Doomed to see the future and unable to prevent it
So once the database is released for all to enjoy (which is so soon its about to fall off the branch - fruit/github pun!!!) what're we going to start clamoring for / working on next? ...


Do to the dependencies what we need is a hierarchy branch structure of the development schedule. This would make the Teams goals much easier to understand for the layman. Visual representation is so much easier to point out than reiterating lists.

Something like a flowchart with arrows would be great for this in my opinion.

EDIT: The flowchart could also be updated with people who are working on it, that would make communicating a lot easier and the work will probably go a lot faster.

Really a simple Block diagram should be fine. this link might have the right template
http://www.breezetree.com/articles/flowchart-templates.htm
Flowcharting is designed to handle decision making.
legendary
Activity: 2268
Merit: 1141
So once the database is released for all to enjoy (which is so soon its about to fall off the branch - fruit/github pun!!!) what're we going to start clamoring for / working on next? ...


Do to the dependencies what we need is a hierarchy branch structure of the development schedule. This would make the Teams goals much easier to understand for the layman. Visual representation is so much easier to point out than reiterating lists.

Something like a flowchart with arrows would be great for this in my opinion.

EDIT: The flowchart could also be updated with people who are working on it, that would make communicating a lot easier and the work will probably go a lot faster.
donator
Activity: 1722
Merit: 1036
Updated: https://forum.getmonero.org/14/events/237/monero-meetup-berlin-germany-may-24th-2015

This is confirmed for Sunday, May 24th, 2015. We have the venue from 4pm - 7pm, and we will start promptly at 5pm.

A venue has been kindly provided for us by Thoughtworks at Werkstatt Berlin -

Mülhauser Str. 6. Hofgebäude 1. OG
10405 Berlin
Germany

Afterwards we will move to the Metzer Eck (an old-school Berliner pub) for fresh beer and good conversation.

Berlin is close enough that the royal retinue might be seen there.
legendary
Activity: 3836
Merit: 4969
Doomed to see the future and unable to prevent it
So once the database is released for all to enjoy (which is so soon its about to fall off the branch - fruit/github pun!!!) what're we going to start clamoring for / working on next? ...


Do to the dependencies what we need is a hierarchy branch structure of the development schedule. This would make the Teams goals much easier to understand for the layman. Visual representation is so much easier to point out than reiterating lists.
donator
Activity: 1274
Merit: 1060
GetMonero.org / MyMonero.com
Updated: https://forum.getmonero.org/14/events/237/monero-meetup-berlin-germany-may-24th-2015

This is confirmed for Sunday, May 24th, 2015. We have the venue from 4pm - 7pm, and we will start promptly at 5pm.

A venue has been kindly provided for us by Thoughtworks at Werkstatt Berlin -

Mülhauser Str. 6. Hofgebäude 1. OG
10405 Berlin
Germany

Afterwards we will move to the Metzer Eck (an old-school Berliner pub) for fresh beer and good conversation.
legendary
Activity: 2968
Merit: 1198
So monero cannot ultimately be stored as integer if we intend to preserve all the decimals. We could reduce the decimals to 8 like bitcoin. That will take care of it. But there is one unexplored alternative I’d like to present first: decimals and arbitrary precision math.

Monero can be stored in a 64 bit unsigned integer. The total money supply has to fit in a 64 bit unsigned integer currently (as required by the base reward formula). This will be true until some time after the tail reward kicks in (roughly eight years). Even then, the amount allowed for any single transaction will still be constrained by a 64 bit unsigned integer.

Some languages don't natively support unsigned integers. It is possible to use signed integers as unsigned, but error prone. Operations such as addition work fine, but I/O, division, comparisons (and a few other operations) require some extra processing.

There is certainly nothing wrong with using string-based numbers for accounting though. That probably the most reliable approach, and suitable for nearly all cases where performance and a possible space penalty don't matter.

Very nice work on the integration utility. Congratulations on the release!
hero member
Activity: 649
Merit: 500
XMR Integration / DEMO

Finally done with this script. Grin The idea is to make it easier for people to setup their own monero accepting website. A working demo can help with that!

This is a complete PHP integration of monero. Once setup you will have a working membership site with:


Great job. Thanks.

So many goodies lately, I feel like we're getting spoiled.
legendary
Activity: 1552
Merit: 1047
Some may wonder why the integration is using bcmath, my explaination below:

Float, Decimal, Integer ? Mathematics in PHP & MySQL

Floating point numbers are not accurate and should never be used for financial transactions.

A few examples of this:

Code:
$a = '35';
$b = '-34.99';
echo ($a + $b);

Results in 0.009999999999998 instead of 0.01

Code:
echo floor((0.1+0.7)*10);

Results in 7 instead of the expected answer 8

So we’re not able to use PHPs native operators for math calculations with decimals since those are treated as floats.

Then we have integer. A much more suited choice for financial transactions. One thing to keep in mind if choosing integer is the php limits. Those are for 32-bit build of PHP limited to integers in the range of -2147483648 to 2147483647 while 64-bit -9 223 372 036 854 775 808 to 9 223 372 036 854 775 807

Imagine you have 100k XMR. Since monero has up to 12 decimals, to store 1 monero we need a number like this: 10^12 = 1 000 000 000 000

That’s more than a 32-bit build can handle right there.

To store 100k XMR we would store:100000 * (10^12) = 100 000 000 000 000 000

Let’s compare:
Code:
9 223 372 036 854 775 807 (64-bit limit)
  100 000 000 000 000 000 (100k XMR)

Well, it’s still within the range, but if we increase it to 10 million XMR not even 64-bit can handle it.

Satoshi Nakamoto was pretty smart, he knew this. That’s probably why the limit is 21 million BTC. 1 Satoshi is the lowest unit of bitcoin, and 1 BTC = 100 000 000 Satoshi. Not only did he get it within the maximum integer value that can be stored. He also got it within the limit of floating point numbers, useful for languages like javascript, but that’s another story (you can read more here)

21 000 000 * 100,000,000 = 2100000000000000

Comparing again:
Code:
9223372036854775807 (64-bit limit)
         2147483647 (32-bit limit)
   2100000000000000 (Max BTC)

As we can see, bitcoin fit’s within these ranges.

We want our application to be scalable, there is always a good chance we’re going to want to add another currency with it’s own unique rules at one point.

So monero cannot ultimately be stored as integer if we intend to preserve all the decimals. We could reduce the decimals to 8 like bitcoin. That will take care of it. But there is one unexplored alternative I’d like to present first: decimals and arbitrary precision math.

If you enable an extension for PHP called “bcmath” you will be able to go beyond the limits of your system. With arbitrary precision mathematics you’ll have a binary calculator which supports numbers of any size and precision represented as strings.

By using BCMath, we can do calculations and know with certainty that the numbers are 100% correct at all times, with every single satoshi accounted for.

Not only that, but we get to store numbers like they are supposed to be stored in database. Just like they look. By using MySQL DECIMAL, we can store the smallest unit of monero as:

0.000000000001.

Let us repeat the examples we did for float with bcmath:

Code:
$a = '35';
$b = '-34.99';
echo bcadd($a,$b);

Results in 0.01

Code:
echo bc::floor(bcmul(bcadd('0.1','0.7'),'10'));

Results in 8

Large numbers is no problem at all, let us multiply the 64-bit max limit by itself:

Code:
echo bcmul('9223372036854775807','9223372036854775807');

Results in 85070591730234615847396907784232501249

Check for yourself (if you can even find a calculator doing that! hint: Wolfram Alpha)

Similarly small amounts:
Code:
echo bcmul('0.000000000001','0.000000000001');

0.000000000000000000000001

But before you do that, make sure to set bcscale() to something high enough.

The script comes with a wrapper class for bc math, this will make it a tad easier to work with.

As for downsides to using bcmath:

  • You need to have the bcmath extension (very easy to install, WHM/cPanel servers has it as a tick box)
  • Not as fancy using functions to do operations as using + - * /, e.g bcadd(1,2) instead of 1+2
  • Some functions available for php that is not integrated in bcmath, example is the php function “floor”, however there are re-implementations for this (I have included some in the wrapper)
  • A bit slower…  (But no big deal!)

So all calculations in the script are done using bcmath, the numbers are treated like strings and stored as decimals in the database. Only when we transfer money out do we convert to integer, and we do that outside of php as well (in json, with parameter JSON_NUMERIC_CHECK)

newbie
Activity: 28
Merit: 0
XMR Integration / DEMO

Finally done with this script. Grin The idea is to make it easier for people to setup their own monero accepting website. A working demo can help with that!

This is a complete PHP integration of monero. Once setup you will have a working membership site with:


This is very important step! Thank you!

Is this suitable to create a Monero-accepting shop?
There is no purchase item feature, only account funding. But the principle of processing payments works the same way, so it shouldn't be very hard to implement if you want that.

I don't plan to sell anything right now. I assume that the store - the most important use case.
sr. member
Activity: 264
Merit: 250
XMR Integration / DEMO

Finally done with this script. Grin The idea is to make it easier for people to setup their own monero accepting website. A working demo can help with that!

This is a complete PHP integration of monero. Once setup you will have a working membership site with:

  • Login/Registration
  • Generation of payment id
  • Deposit of funds (automatically added to account after X confirmations)
  • Withdraw of funds (added to processing queue and processed automatically)
  • Admin Panel displaying current balances and other useful info (e.g status of daemon and wallet)
  • With some minor changes, you can add multiple cryptonote types of currencies/assets
  • The script comes with cron.php, which is the processing script. It can be setup to run forever in the background, or even as a cron job. Read the comment in cron.php for more info.

For install instructions simply open install.php

Download here: https://github.com/TheKoziTwo/xmr-integration

Step by step install (install.php):


Login/Registration:


Account area:


Admin area:


There is no guide for how to setup daemon and simplewallet in "server mode". I have been working on a guide as well, but it's not posted anywhere yet, so I'll put some quick guidelines below:
Quote
Introduction

With bitcoin, transactions are identified with a unique address. Monero uses payment id instead to identify transactions. This means that your XMR receiving address will be the same for all users, but payment_id will be unique. Users transferring money to your site need to specify both address and payment id

Setting up server

Bitcoin has both wallet and daemon in one and the same software. Monero has split these into two separate applications. You have bitmonerod which is the daemon and simplewallet which is the wallet. This requires us to connect to two different services.

Daemon (localhost:18081/rpc/)

You need to launch daemon in server mode, to do so run it with:
Code:
./bitmonerod --rpc-bind-ip 127.0.0.1 --rpc-bind-port 18081

Thats all. Once you have a daemon running, you can connect to it from one or even multiple wallets.

Wallet (localhost:18082/rpc/)
First of all create a wallet as usual (if you have not already done so):

Code:
simplewallet --generate-new-wallet mywallet.dat

Enter a password (demo123), you don’t need to write down the seed, but you may.

exit the wallet.

In order to perform operations usings the API, the wallet must run in rpc server mode, to do so, run it with the following param (make sure the daemon is already running first):

Code:
./simplewallet --wallet-file mywallet.dat --password demo123 --rpc-bind-port 18082

Another example, if you have bound the daemon to an IP/PORT and also wants to bind the simplewallet, this example below shows how:
Code:
./simplewallet --daemon-host 192.168.10.54 --daemon-port 18081 --wallet-file mywallet.dat --rpc-bind-ip 192.168.10.54 --rpc-bind-port 18082 --password demo123

Now you should be able to access the wallet outside of your localhost also.

IMPORTANT: When wallet is running in RPC mode it’s technically possible for hackers to empty your wallet if your port is open. You don’t want that, so make sure 18082 is closed.


Incredible news! Hopefully I'll be able to seek through your TX date retrieval mechanism, thus, I'd be able to implement that functionality into Monero API .NET, and then MoneroX.
legendary
Activity: 1552
Merit: 1047
XMR Integration / DEMO

Finally done with this script. Grin The idea is to make it easier for people to setup their own monero accepting website. A working demo can help with that!

This is a complete PHP integration of monero. Once setup you will have a working membership site with:


This is very important step! Thank you!

Is this suitable to create a Monero-accepting shop?
There is no purchase item feature, only account funding. But the principle of processing payments works the same way, so it shouldn't be very hard to implement if you want that.
newbie
Activity: 28
Merit: 0
XMR Integration / DEMO

Finally done with this script. Grin The idea is to make it easier for people to setup their own monero accepting website. A working demo can help with that!

This is a complete PHP integration of monero. Once setup you will have a working membership site with:


This is very important step! Thank you!
Worthy of dedicated topic.

Is this suitable to create a Monero-accepting shop?
legendary
Activity: 1552
Merit: 1047
XMR Integration / DEMO

Finally done with this script. Grin The idea is to make it easier for people to setup their own monero accepting website. A working demo can help with that!

This is a complete PHP integration of monero. Once setup you will have a working membership site with:

  • Login/Registration
  • Generation of payment id
  • Deposit of funds (automatically added to account after X confirmations)
  • Withdraw of funds (added to processing queue and processed automatically)
  • Admin Panel displaying current balances and other useful info (e.g status of daemon and wallet)
  • With some minor changes, you can add multiple cryptonote types of currencies/assets
  • The script comes with cron.php, which is the processing script. It can be setup to run forever in the background, or even as a cron job. Read the comment in cron.php for more info.

For install instructions simply open install.php

Download here: https://github.com/TheKoziTwo/xmr-integration

Step by step install (install.php):


Login/Registration:


Account area:


Admin area:


There is no guide for how to setup daemon and simplewallet in "server mode". I have been working on a guide as well, but it's not posted anywhere yet, so I'll put some quick guidelines below:
Quote
Introduction

With bitcoin, transactions are identified with a unique address. Monero uses payment id instead to identify transactions. This means that your XMR receiving address will be the same for all users, but payment_id will be unique. Users transferring money to your site need to specify both address and payment id

Setting up server

Bitcoin has both wallet and daemon in one and the same software. Monero has split these into two separate applications. You have bitmonerod which is the daemon and simplewallet which is the wallet. This requires us to connect to two different services.

Daemon (localhost:18081/rpc/)

You need to launch daemon in server mode, to do so run it with:
Code:
./bitmonerod --rpc-bind-ip 127.0.0.1 --rpc-bind-port 18081

Thats all. Once you have a daemon running, you can connect to it from one or even multiple wallets.

Wallet (localhost:18082/rpc/)
First of all create a wallet as usual (if you have not already done so):

Code:
simplewallet --generate-new-wallet mywallet.dat

Enter a password (demo123), you don’t need to write down the seed, but you may.

exit the wallet.

In order to perform operations usings the API, the wallet must run in rpc server mode, to do so, run it with the following param (make sure the daemon is already running first):

Code:
./simplewallet --wallet-file mywallet.dat --password demo123 --rpc-bind-port 18082

Another example, if you have bound the daemon to an IP/PORT and also wants to bind the simplewallet, this example below shows how:
Code:
./simplewallet --daemon-host 192.168.10.54 --daemon-port 18081 --wallet-file mywallet.dat --rpc-bind-ip 192.168.10.54 --rpc-bind-port 18082 --password demo123

Now you should be able to access the wallet outside of your localhost also.

IMPORTANT: When wallet is running in RPC mode it’s technically possible for hackers to empty your wallet if your port is open. You don’t want that, so make sure 18082 is closed.
Jump to: