Author

Topic: Cashier-BTC: Process Bitcoin payments on your end, paying zero commissions (Read 576 times)

newbie
Activity: 22
Merit: 0
increase lightning
newbie
Activity: 2
Merit: 0
Hi all!
A couple of years ago I was really unhappy with Bitpay, so I coded a universal solution to accept Bitcoin on any website: https://github.com/Overtorment/Cashier-BTC

It is opensource and being used in several companies around the world now (no big names here, afaik). Recently I got tired of high fees and low Segwit adoption and rewrote it completely to support Segwit (P2SH addresses for now, bech32-ready; will be pushed to production, Im waiting for the spec to be formally approved and stripped of 'draft' status). Also, it relies on the one and only Bitcoin Core, so it is completely independent from 3rd parties (and using it helps strengthen the network!)

It does require basic web-development and linux skills to install and use this, but overall it is simple.

If you're unhappy with Bitpay (or any other bitcoin processor), want to enjoy Segwit and low fees, don't want to pay any cut to middlemen - I encourage you to try Cashier-BTC. It's opensource and free.

I also provide free support if you are having any issues, just let me know, would be happy to help. Spreading the word would also help increase merchant adoption!


https://github.com/Overtorment/Cashier-BTC









Hello I just came across your project I am young dev node js Smiley so it's perfect for me by any chance would you have a tutorial video? or an online user tutorial? thank you in advance
newbie
Activity: 9
Merit: 0
Was wondering if anyone could give a linux newbie some advice on how to install this.

I'm getting errors about variables being outside of scope when running 'npm test'

Looks to me like nodejs version is not correct but I'm running the latest.

Thoughts?


newbie
Activity: 4
Merit: 0
OK another stupid question, because I'm not sure I totally get what's in the README...

After creating a seller, if I remove his WIF and replace the pubkey with a cold storage address, it will never be overwritten?

Happy to help!

Absolutely, once the database record for seller exists - it is never overwritten.



Cool! Thanks a lot
jr. member
Activity: 30
Merit: 75
OK another stupid question, because I'm not sure I totally get what's in the README...

After creating a seller, if I remove his WIF and replace the pubkey with a cold storage address, it will never be overwritten?

Happy to help!

Absolutely, once the database record for seller exists - it is never overwritten.

newbie
Activity: 4
Merit: 0
OK another stupid question, because I'm not sure I totally get what's in the README...

After creating a seller, if I remove his WIF and replace the pubkey with a cold storage address, it will never be overwritten?
newbie
Activity: 4
Merit: 0


    • I don't know if it's a consequence of the items above, but I created new payment requests which were paid and arrived in the sub-addresses (I can see them in bitcoin-cli listaddressgroupings) but they are not transferred to the seller account, no trace of them in cashier-btc-out.log

    Don't hesitate to ask me for more info Smiley


    The third question I didn't quite understand.
    Probably the payment requests are old enough (>24h) to be ignored by worker.
    You can always check out whats wrong with the payment request right in the database.


    Thank you for your reply! I'll look into the first two items right now.

    About the third one, I have 2 payments of 0.0004 which are received (this morning) :
    [/list]
    Code:
     [
        [
          "XXY",
          0.00040000,
          "XXY"
        ]
      ],
      [
        [
          "XXX",
          0.00040000,
          "XXX"
        ]
      ]

    and confirmed (more than 20 confirmations now) but they are not getting transferred to the seller account.

    In the database, the paid_on, processed and so on fields are missing. I also don't see those transactions in the worker.js logs.

    After looking closer, I found this:
    Code:
    (node:4415) UnhandledPromiseRejectionWarning: Error: {"result":null,"error":{"code":-4,"message":"Address not found in wallet"},"id":"4faa6833-856e-48b0-afa9-42fe75e8675a"}

        at IncomingMessage. (/home/cashier/Cashier-BTC/node_modules/jayson/lib/client/http.js:74:21)
        at emitNone (events.js:111:20)
        at IncomingMessage.emit (events.js:208:7)
        at endReadableNT (_stream_readable.js:1064:12)
        at _combinedTickCallback (internal/process/next_tick.js:138:11)
        at process._tickCallback (internal/process/next_tick.js:180:9)
    (node:4415) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)

    I guess I have some address in the database which wasn't created in the bitcoind itself?

    EDIT : found the issue, I had some left over data from "npm test" in my database Smiley
    jr. member
    Activity: 30
    Merit: 75
    Hi,

    First of all, thank you for your excellent work. I was looking for a full-node based self-hosted payment solution for several of my companies and it fits perfectly.

    I'm testing it since yesterday but I'm running into a few minor issues :

    • I made small payments to test (0.0001 BTC) which seem to be equal to the fee to transfer to the merchant account, so I'm getting stuck in a loop of
    Code:
    worker2.js address: XXX expect: 0.0001 confirmed: 0.0001 unconfirmed: 0.0001
    worker2.js transferring 0.0001 BTC (minus fee) from XXX to seller XXX ( XXX )
    worker2.js broadcasting XXX

    • Is there a way to cleanup old payment requests ? I have a few of those looping in the logs of worker.js
    Code:
    worker.js address: XXX expect: 0.001 confirmed: 0 unconfirmed: 0
    worker.js address: XXY expect: 0.001 confirmed: 0 unconfirmed: 0
    worker.js address: XXZ expect: 0.001 confirmed: 0 unconfirmed: 0
    worker.js address: XXW expect: 0.001 confirmed: 0 unconfirmed: 0
    • I don't know if it's a consequence of the items above, but I created new payment requests which were paid and arrived in the sub-addresses (I can see them in bitcoin-cli listaddressgroupings) but they are not transferred to the seller account, no trace of them in cashier-btc-out.log

    Don't hesitate to ask me for more info Smiley



    Hey!
    Super small payments are kind of an issue. The fee to aggregate payments is hardcoded here
    https://github.com/Overtorment/Cashier-BTC/blob/f0fb18c8186f87373c267b1a7e7b42daedb6449d/worker2.js#L54
    I suggest you change it to a smaller amount (it's currently 0.0001) or deal with such payments manually (the WIF for the hot address is in the database).


    Old requests are being re-checked for 24 hours. That's configurable in config https://github.com/Overtorment/Cashier-BTC/blob/master/config.js.dev
    You can lower that to your taste, but everything works okay with the way it is.
    If you really want to cleanup old requests, you need to write a small script for that, but that's not a very good idea. Occasionally clients
    might be paying to some old addresses.

    The third question I didn't quite understand.
    Probably the payment requests are old enough (>24h) to be ignored by worker.
    You can always check out whats wrong with the payment request right in the database.


    newbie
    Activity: 4
    Merit: 0
    Hi,

    First of all, thank you for your excellent work. I was looking for a full-node based self-hosted payment solution for several of my companies and it fits perfectly.

    I'm testing it since yesterday but I'm running into a few minor issues :

    • I made small payments to test (0.0001 BTC) which seem to be equal to the fee to transfer to the merchant account, so I'm getting stuck in a loop of
    Code:
    worker2.js address: XXX expect: 0.0001 confirmed: 0.0001 unconfirmed: 0.0001
    worker2.js transferring 0.0001 BTC (minus fee) from XXX to seller XXX ( XXX )
    worker2.js broadcasting XXX

    • Is there a way to cleanup old payment requests ? I have a few of those looping in the logs of worker.js
    Code:
    worker.js address: XXX expect: 0.001 confirmed: 0 unconfirmed: 0
    worker.js address: XXY expect: 0.001 confirmed: 0 unconfirmed: 0
    worker.js address: XXZ expect: 0.001 confirmed: 0 unconfirmed: 0
    worker.js address: XXW expect: 0.001 confirmed: 0 unconfirmed: 0
    • I don't know if it's a consequence of the items above, but I created new payment requests which were paid and arrived in the sub-addresses (I can see them in bitcoin-cli listaddressgroupings) but they are not transferred to the seller account, no trace of them in cashier-btc-out.log

    Don't hesitate to ask me for more info Smiley
    jr. member
    Activity: 30
    Merit: 75
    hero member
    Activity: 691
    Merit: 569
    Very good job. I am tweeting this out ! Feel to checkout blockonomics  (we have plugins for various platform). Payments go directly to wallet and full segwit support !
    jr. member
    Activity: 30
    Merit: 75
    jr. member
    Activity: 30
    Merit: 75
    Hi all!
    A couple of years ago I was really unhappy with Bitpay, so I coded a universal solution to accept Bitcoin on any website: https://github.com/Overtorment/Cashier-BTC

    It is opensource and being used in several companies around the world now (no big names here, afaik). Recently I got tired of high fees and low Segwit adoption and rewrote it completely to support Segwit (P2SH addresses for now, bech32-ready; will be pushed to production, Im waiting for the spec to be formally approved and stripped of 'draft' status). Also, it relies on the one and only Bitcoin Core, so it is completely independent from 3rd parties (and using it helps strengthen the network!)

    It does require basic web-development and linux skills to install and use this, but overall it is simple.

    If you're unhappy with Bitpay (or any other bitcoin processor), want to enjoy Segwit and low fees, don't want to pay any cut to middlemen - I encourage you to try Cashier-BTC. It's opensource and free.

    I also provide free support if you are having any issues, just let me know, would be happy to help. Spreading the word would also help increase merchant adoption!


    https://github.com/Overtorment/Cashier-BTC
    Jump to: