You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
moneroexamples aea44097dd
readme updated
7 years ago
ext sql database file updated 8 years ago
html examples of ringct appi added 7 years ago
screenshot screenshot added 7 years ago
sql rct_outpk, rct_mask and rct_amount added to Outputs table 7 years ago
src fix: spend outputs incorrectly collected in get_account_txs 7 years ago
.gitignore gitignore updated 8 years ago
CMakeLists.txt updated to newest monero codebase - sort of. 7 years ago
README.md readme updated 7 years ago
main.cpp deamon-url added as program option 7 years ago

README.md

JSON REST service for Monero

Example of using restbed to provide Monero related JSON REST service. For this purpose, a service called Open Monero was developed.

Open Monero

Open Monero is an open source implementation of backend of https://mymonero.com/. The frontend, which includes html, css, JavaScript were adapted from (and originally developed by) https://mymonero.com/.

Unlike MyMonero, Open Monero's backend is open sourced, free to use, host and modify. Additionally, the following features were added/changed:

  • google analytics, cloudflare, images and flash were removed.
  • transaction fees were set to zero.
  • the wallets generated use 25 word mnemonics, fully compatible with official monero wallets (13 word mnemonics generated by MyMonero work as usual though).
  • import wallet fee was reduced.
  • support of testnet network and wallets was added.

Status

Still under development as its not finished.

Host it yourself

The Open Monero consists of four components that need to be setup for it to work:

  • MySql/Mariadb database - it stores user address (viewkey is not stored!), associated transactions, outputs, inputs and transaction import payments information.
  • Frontend - it is virtually same as that of MyMonero, except before mentioned differences. It consists of HTML, CSS, and JavaScript.
  • Monero daemon - daemon must be running and fully sync at all, as this is what where all transaction data is fetched from and used. Daemon also commits txs from the Open Monero into Monero network.
  • Backend - fully written in C++. It uses restbed to serve JSON REST to the frontend and mysql++ to interface the database. It also accesses Monero blockchain and "talks" with Monero deamon.

Screenshot

Open Monero

Scrap notes

Generate your own ssl certificate

Setting up https and ssl certificates in restbed

Based on the link above:

# Create Certificate
cd /tmp
openssl genrsa -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
openssl dhparam -out dh2048.pem 2048

Enable it in Firefox or Chrome

Firefox and chrome will not work with that certificate as they cant verify it. To overcome this for development purposes on localhost, just open new tab in the browser used and go to any link from the service, e.g., https://localhost:1984/login. Once you do this, you should get warring about unsecured or un verified certificate. Then you just add it manually as exception.

Also Open Monero generates uses 25 word seeds, which are fully comptabilite with monero-wallet-cli and monero-core.

Test connection using curl

Example of curl https request to the service

curl -k -X POST -d '{"withCredentials":true,"address":"41pJD13rU5r3KZsxzS65tL9zLMpZZCer8aWSi7wj8Xm99BAgXthcj2wgazxdTX9auFAmp3czfJUGH2S3UJfLwDWXUxc3ooC","view_key":"06d1f0f0fd766c75b52b9c597592d06f4bca5cd6dcd3e9bf1859bc78d0d5f80e","create_account":true}' https://localhost:1984/login

Compile mysql c++ connector

git clone https://github.com/mysql/mysql-connector-cpp.git
cd mysql-connector-cpp && mkdir build && cd build 
cmake .. -DBUILD_STATIC=1
make

Other examples

Other examples can be found on github. Please know that some of the examples/repositories are not finished and may not work as intended.

How can you help?

Constructive criticism, code and website edits are always good. They can be made through github.

Some Monero are also welcome:

48daf1rG3hE1Txapcsxh6WXNe9MLNKtu7W7tKTivtSoVLHErYzvdcpea2nSTgGkz66RFP4GKVAsTV14v6G3oddBTHfxP6tU