Giter VIP home page Giter VIP logo

opentrade's Introduction

OpenTrade is the best opensource cryptocurrency exchange!

Live version: https://trade.multicoins.org/

Alternative User Interface: [email protected]

Step-by-step install instructions:

  1. Register on the VPS hosting like this https://m.do.co/c/1ece5d76d5cd
  2. Create "Droplet" Ubuntu 16 x64 / 1GB / 1vCPU / 25 GB SSD
  3. Log in to Droplet over SSH (You will receive a email with IP, username and password) 4
[sudo] apt-get update
[sudo] apt-get install build-essential libssl-dev curl -y
curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh
bash install_nvm.sh
[sudo] reboot

nvm install 12.6.0

git clone --recurse-submodules https://github.com/3s3s/opentrade.git
cd opentrade/accountsserver
git checkout master
cd ..

[sudo] npm install 
[sudo] npm install -g forever

Here is an example of the file ~/opentrade/server/modules/private_constants.js Edit with your configs.

'use strict';

exports.recaptcha_priv_key = 'YOUR_GOOGLE_RECAPTCHA_PRIVATE_KEY';
exports.password_private_suffix = 'LONG_RANDOM_STRING1';
exports.SSL_KEY = '../ssl_certificates/privkey.pem'; //change to your ssl certificates private key
exports.SSL_CERT = '../ssl_certificates/fullchain.pem'; //change to your ssl certificates fullchain

exports.walletspassphrase = {
    'MC' : 'LONG_RANDOM_STRING2',
    'BTC' : 'LONG_RANDOM_STRING3',
    'DOGE' : 'LONG_RANDOM_STRING4'
};

You MUST change default value exports.password_private_suffix !

After, you can run exchange

cd ~/opentrade/databaseServer
[sudo] forever start main.js
cd ~/opentrade/accountsserver
git checkout master
[sudo] forever start main.js
cd  ~/opentrade/server
[sudo] forever start main.js

In your browser address bar, type https://127.0.0.1 You will see OpenTrade.

The first registered user will be exchange administrator.

Add trade pairs

For each coin you should create ~/.coin/coin.conf file

This is common example for ~/.marycoin/marycoin.conf

rpcuser=long_random_string_one
rpcpassword=long_random_string_two
rpcport=12345
rpcclienttimeout=10
rpcallowip=127.0.0.1
server=1
daemon=1
upnp=0
rpcworkqueue=1000
enableaccounts=1
litemode=1
staking=0
addnode=1.2.3.4
addnode=5.6.7.8

Also, you must encrypt your cryptocurrency wallet with this command.

./marycoin-cli encryptwallet random_long_string_SAME_AS_IN_FILE_private_constants.js

If coin have no "coin-cli" file then try something like "coind" instead

If coin is not supported by encryption (like ZerroCash and it forks) the coin can not be added to OpenTrade.

Add your coin details to OpenTrade

  1. Register on exchange. The first registered user will be exchange administrator.
  2. Go to "Admin Area" -> "Coins" -> "Add coin"
  3. Fill up all fields and click "Confirm"
  4. Fill "Minimal confirmations count" and "Minimal balance" and uncheck and check "Coin visible" button
  5. Click "Save"
  6. Check RPC command for the coin. If it worked then coin was added to the exchange!

All visible coins should be appear in the Wallet. You should create default coin pairs now.

File ~/opentrade/server/constants.js have settings that you can change

https://github.com/3s3s/opentrade/blob/master/server/constants.js

exports.NOREPLY_EMAIL = '[email protected]'; //change no-reply email
exports.SUPPORT_EMAIL = '[email protected]'; //change to your valid email for support requests
const DOMAIN = 'localhost'; //Change to your domain name

exports.TRADE_MAIN_COIN = "Marycoin"; //change Marycoin to your main coin pair
exports.TRADE_DEFAULT_PAIR = "Litecoin"; //change Litecoin to your default coin pair
exports.share.TRADE_COMISSION = 0.001; //change trade comission percent
exports.share.DUST_VOLUME = 0.000001; //change minimal order volume

exports.recaptcha_pub_key = "6LeX5SQUAAAAAKTieM68Sz4MECO6kJXsSR7_sGP1"; //change to your recaptcha public key

File ~/opentrade/static_pages/chart.html

const PORT_SSL = 40443; //change to your ssl port (usualy 443)
const MAIN_COIN = 'Marycoin'; //change Marycoin to your main coin pair same as in constants.js
const DEFAULT_PAIR = 'Litecoin'; //change Litecoin to your default coin pair same as in constants.js
      
const TRADE_COMISSION = 0.001;

After that, you coins should appear on the main page.

Donate If you find this script is useful then consider donate please

Bitcoin 36WA1WESULub6Q434bQcnmpnk62oLD7vuQ

Marycoin M9dKNcBYgrbbE2f4tz3ud32KLKj1i9FrmN

Dogecoin DCJRhs9Pjr2FBrrUbKvFeWcYC6ZaF2GTAx

Litecoin LTbDdTijroJEyXt27apQSnuMY4RoXyjdq2

License

OpenTrade is released under the terms of the MIT license. See LICENSE for more information or see https://opensource.org/licenses/MIT.

opentrade's People

Contributors

3s3s avatar benfavre avatar crackfoo avatar cryptorclub avatar daygle avatar jonn4y avatar knkrth avatar marshall-hallenbeck avatar smoe avatar tr0j4n9 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opentrade's Issues

bitcoin rpc

rpc bitcoin error:
rpcPostJSON {"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [] }
Timeout occurs
problem with request: socket hang up
rpcPostJSON: result:false (message: problem with request: socket hang up )

App log are not displaying on terminal

After the recent bug fix when I run sudo node main.js It displays nothing but the app works perfectly.

kartx@ubuntu:~/Download/opentrade/server$ sudo node main.js 
▮

I have to use sudo NODE_DEBUG=cluster,net,http,fs,tls,module,timers node main.js to get the output log from the server.

Sell order - total amount limit

Hi,

I'm trying to set the minimum total amount for sell orders but I'm getting duplicate declare of fullAmount, as I can see there is only limit on buy orders where total amount can't be under 0.00001 but sell orders can be way under this limit which takes away fees from the exchange.
How to add limit for sell orders?

NGINX configuration

Hi all, there is nginx configurations to run this exchange on production server?
because i had try to install, but wss can read the data. auu

Compiling on localhost

Please how can run and compile this code using my localhost (windows system) without using digital ocean. Thanks

Request

Add URL for separate coins with their ticker like,

https://yobit.net/en/trade/ETH/BTC
https://yobit.net/en/trade/BCC/BTC
https://yobit.net/en/trade/LTC/DOGE

ticker_url

So that its easy to share & add on other sites.

Confirm page not Android Friendly

Hello Dev,

The whole platform OpenTrade is friendly to cell phone users. I used android and can place buy and sell trades easily. I can view page easily under android. However, I found one issue under cell phone android
browser (Chrom): the confirmation page pop up is usally very small window, half cut off, I could not see
the full content of confirmation page, the price etc are gone. I was able to click confirm but not seeing
the full confirmation pop up page content in Android is an issue. Hopefully Dev can fix this cell phone
issue so that this will be awesome Android platform trading exchange!

Withdraw fees not enforced at OpenTrade

I hesitated to open issue here. I msg kzv in discord, got no response yet. This matter is very important for financial health of the exchange, potentially could be a target from hackers.

It appears that Marycoin withdraw fees were not enforced in openTrade. I was able to withdraw two times from exchange paying no fees. My exchange account at OpenTrade showed a negative balance after full amount withdraw.

This bugs need to be fixed, Fees should be deducted so that members should receive only post-fee coins in their wallet.

Chart Buttons not Showing Correct Data

Is anyone else finding when pressing the 6M button on the chart it doesn't display the correct data/filter? Additionally for the 24H button it seems to show more than 24 hours.

node_sqlite fails to install

2621 verbose stack Error: [email protected] install: `node-pre-gyp install --fallback-to-build`

2621 verbose stack Exit status 126

2621 verbose stack     at EventEmitter.<anonymous> (/root/.nvm/versions/node/v6.0.0/lib/node_modules/npm/lib/utils/lifecycle.js:239:16)

2621 verbose stack     at emitTwo (events.js:106:13)

2621 verbose stack     at EventEmitter.emit (events.js:191:7)

2621 verbose stack     at ChildProcess.<anonymous> (/root/.nvm/versions/node/v6.0.0/lib/node_modules/npm/lib/utils/spawn.js:24:14)

2621 verbose stack     at emitTwo (events.js:106:13)

2621 verbose stack     at ChildProcess.emit (events.js:191:7)

2621 verbose stack     at maybeClose (internal/child_process.js:850:16)

2621 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)

2625 error argv "/root/.nvm/versions/node/v6.0.0/bin/node" "/root/.nvm/versions/node/v6.0.0/bin/npm" "install"

2626 error node v6.0.0

2627 error npm  v3.8.6

2628 error code ELIFECYCLE

2629 error [email protected] install: `node-pre-gyp install --fallback-to-build`

2629 error Exit status 126

2630 error Failed at the [email protected] install script 'node-pre-gyp install --fallback-to-build'.

Any reason why we're using node 6.0.0?

email confirmation link

how to change correctly or how to setup this confirmation link to show domain,not ip?
when i change manual from password.js, the page show invalid link
example =
Someone requested that the password for your 127.0.0.1:40443 account be reset
Click here to reset your password (the link is https://127.0.0.1:40443/confirmpasswordreset/1lrWMY54HuztsonUVPYb43izcl5V7pi2HVqv9lkS6WU%3D)
If you didn't request this, you can ignore this e-mail or let......................

and what I want is =
Someone requested that the password for your domain.com account be reset
Click here to reset your password (the link is https://domain.com/confirmpasswordreset/1lrWMY54HuztsonUVPYb43izcl5V7pi2HVqv9lkS6WU%3D)
If you didn't request this, you can ignore this e-mail or let......................

Thanks

Incorrect fee Comission rate when fee scheduled changed?

Dear OpenTrade Dev,,

I have modified my clone of OpenTrade to double the fee from 0.1% to 0.2%.
I have modifed two part of code:

server/constants.js modified
-exports.TRADE_COMISSION = 0.001;
+exports.TRADE_COMISSION = 0.002;

server/views/pages/fees.ejs modified:

Trading Commission

  •            <p class="card-text">All trades have a 0.1% commission.</p>
    
  •            <p class="card-text">All trades have a 0.2% commission.</p>
               <hr>
    

However, even if above change, the fees on order seems to stay same as 0.1%. I rebooted the machine, reinstalled npm did not help the issue.

Here is error order page under my clone server with 0.2% commission rate:

Buy Marycoin
Your balance:
Dogecoin
Highest Ask:
Dogecoin
Amount:

100
MC
Price:

1.6
DOGE
Comission:

0.16
DOGE
Total:

160.16
DOGE

--- comission above is automatically calculated by the system--
The 0.2% fee would be 160.32 total, obviously above still shows the original 0.1% comission fees.
What is going on?

Withdraw Fee not applied to withdraws

Hi @3s3s

If i have 170 of a coin and set the hold fee to 1 and go to withdraw

screen shot 2018-08-05 at 17 01 54

It tells me i have 169 available which is correct after the fee is used

screen shot 2018-08-05 at 17 02 04

but after i confirm the withdraw via email i still have the 1 coin left in my wallet as its not taking the fee for the transaction

screen shot 2018-08-05 at 17 02 44

Checking the code:

MoveBalance(g_constants.ExchangeBalanceAccountID, userID, coin, (amount*1+(rows[0].info.hold || 0.002)).toFixed(7)*1, ret => {
i can see it checks the coin hold fee but then in the code i cannot see it actually take this fee from the user.

Is this intentional or is something missing?

Trading Problem

Hi.

I can submit a new Trade, but after i can't see it on sale / buy orders or your active orders.

how to resolve this ?

thank's

sendmail not work

can't signup because sendmail not work
Error on connectMx for: { exchange: 'alt4.aspmx.l.google.com', priority: 10 } { Error:
EDOUT 64.233.176.27:25
at Object.exports._errnoException (util.js:896:11)
at exports._exceptionWithHostPort (util.js:919:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1073:14)
code: 'ETIMEDOUT',
errno: 'ETIMEDOUT',
syscall: 'connect',
address: '64.233.176.27',
port: 25 }

Add API to get exchange summery

How easy would it be to create an API that outputted exchange statistics for use on websites like CMC etc.

something like 'onGetExchangeSummery'
that would output something like this:

{
"success" : true,
"message" : "",
"result" : [{
"TotalMarkets" : "22",
"24v" : 0.01350000
}
]
}

Where the 24v would be all the markets 24hr volume converted into the base currency (MC or BTC) then outputted as one total 24 hour volume for the exchange as a whole.

Thanks

error npm install

i get this erro

root@vultr:~/bolsotrade# npm install
npm WARN deprecated [email protected]: This project is unmaintained
npm WARN deprecated [email protected]: This project is unmaintained

[email protected] install /root/bolsotrade/node_modules/sqlite3
node-pre-gyp install --fallback-to-build

[sqlite3] Success: "/root/bolsotrade/node_modules/sqlite3/lib/binding/node-v48-linux-x64/node_sqlite3.node" is installed via remote
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] No license field.

added 141 packages from 96 contributors in 8.859s
npm ERR! Object.entries is not a function

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-06-13T21_25_00_010Z-debug.log
root@vultr:~/bolsotrade#

and log i get this

3596 verbose argv "/root/.nvm/versions/node/v6.0.0/bin/node" "/root/.nvm/versions/node/v6.0.0/bin/npm" "install"
3597 verbose node v6.0.0
3598 verbose npm v6.0.0
3599 error Object.entries is not a function
3600 verbose exit [ 1, true ]

Unable To Conform E-Mail Verfication

Hi, After the new update I'm unable to verify my account on signup. It keeps saying,

Something wrong ((
Please try Sign up again.

I'm the only one having this issue or not?

Volume stated in btc

Any chance to help put btc as volume.
I know fromSellerToBuyer is volume but where to change it to fromBuyerToSeller

Also market sorting by volume would be nice

Readme

We could include some documentation, some tutorial teaching how to start building your own exchange and how to modify the coins, maybe we could do something in the repository Wiki, what do you think? because as my knowledge is low in this area I do not know where to start. thank you.

Signup Failure for HotMail (possible for other Microsoft email)

I posted this issue at forum:
Very confusing, hotmail failed, yahoo worked
https://forum.marycoin.org/showthread.php?741-Very-confusing-hotmail-failed-yahoo-worked

Using digital ocean droplet, I tested out that gmail yahoo all worked. hotmail failed, possibly all
Microsoft email such as live.com etc will fail. Microsoft is major email provider, this will turn off many new users.

Short term solution: in the warning, specially say this issue and ask user to sign up with another email such as Yahoo or gmail.

Longer term solution: it would better to find workaround to work with hotmail. I think this is hard to do. For now we may have to change the code on warning msg side only.

Deposit not work ?

It's fine overall except the deposit function, it seems like it's not working. I tried to deposit and fought the deposit history in account's wallet, but can't plus money and the pending money didn't display.
I found in balance table, inserted some information and it looks like the balance was added. But i don't understand what are 2 columns of history and info in balance table mean? Please help.
Thank you.

Package.json Missing

Why there is no package.json file? It will be easier to install the models & we don't need to install the packages globally.

Error: Cannot find module 'heapdump'

deploy@vmi176246:~/opentrade/server$ sudo node main.js
module.js:549
throw err;
^

Error: Cannot find module 'heapdump'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object. (/home/deploy/opentrade/server/main.js:94:16)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
deploy@vmi176246:~/opentrade/server$


deploy@vmi176246:~/opentrade$ sudo npm install heapdump

[email protected] install /home/deploy/opentrade/node_modules/heapdump
node-gyp rebuild

gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/home/deploy/opentrade/node_modules/heapdump/build'
gyp ERR! System Linux 4.4.0-119-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/deploy/opentrade/node_modules/heapdump
gyp ERR! node -v v8.11.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN opentrade No repository field.
npm WARN opentrade No license field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /home/deploy/.npm/_logs/2018-04-13T12_56_10_582Z-debug.log
deploy@vmi176246:~/opentrade$

Certificate Inssues

I am having a small problem, I set the exchange using the certificate provided in the Readme, but today I generated a certificate for my domain, but when I open the exchange I have this error, I deleted the folder and installed again from scratch but without success, What command should I use to resolve? thank you.

Error: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

This site can’t be reached

Hi, Everything works fine. When I run sudo node main.js Its shows,

kartx:~/opentrade/server (test) $ sudo node main.js
SSL Proxy listening on port 40443

That's it when I open https://127.0.0.1:40443/ its says This site can’t be reached I even change the SSL port to 443 & 3000 nothing works.

Does anyone know what's the problem?

Trade Pairs

Hi

This is missing from set up/install and would be great to be able to add them without custom coding it. Thanks

Chat Not Working After Update

Hi,

Just letting you know chat isn't working after recent update.

Steps to replicate:-

  1. Delete a single chat message with the X button.
  2. After this my chat went blank, and now fails to load.

Balance update after deposit.

Hi, my
Balance only
Update, after I made an order or trade. In wallet History i could see incoming deposit
IN awaiting it shows nothing, only if somebody makes a trade, balance updateted
Could anybody help?

Implement 2FA

Hi!
Is planned to implement 2FA?
If not I can try to implement it.
Thanks!

Add Coin Ticker

Hi, Can you add the coin ticker on the trade section like yobit so that there won't be any confusion.
snapshot_2018-06-05_195807_yobit net

CHART not showing

Fresh installation work perfectly but chart not showing should i create an order first to make the chart showing?

and how i can add balance without deposit to test the sell/buy order .

problem in recaptcha

Hello .i have problem in recaptcha i added the private key of recaptcha to private_contacts.js but whenever i run the board and try to log in it shows that there's an error in recaptcha
I tried many keys but non of them worked . any solution for this?

Chat header & TRADE_MAIN_COIN (not an issue)

Hello
this is not an issue,
just want to make some change in the script,
is it possible to show chat header only on admin page?
and is it possible to make more than one TRADE_MAIN_COIN ?
thanks
Online: 1234 (Registered: 12345)

Typo in fees page

This was a feedback from my ShorelineCrypto user.

daniba - Today at 6:25 PM
There is your typo under "Withdraw Commission": The sentence "To ensure withdraw we are freeze the minimum balance" should be rephrased. Maybe "To ensure the withdrawal, we will freeze the minimum balance" Or smth like that 😉

Resolve withdrawal error

Hi i get this
Withdraw error (2): Error: running with an unencrypted wallet, but walletpassphrase was called.

And on those coins who have encryption i get:
"Withdraw error (2): walletpassphrase Stores the wallet decryption key in memory for seconds."

How to resolve these issues? thanks in advance

Local version issue

Hello,

My local version is not displaying data, only the design is loaded.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.