Bitcoin Forum
May 02, 2024, 06:07:04 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Cashier-BTC: Process Bitcoin payments on your end, paying zero commissions  (Read 546 times)
overtorment2 (OP)
Jr. Member
*
Offline Offline

Activity: 30
Merit: 75


View Profile
November 27, 2017, 09:56:09 PM
Merited by ABCbits (11)
 #1

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
1714673224
Hero Member
*
Offline Offline

Posts: 1714673224

View Profile Personal Message (Offline)

Ignore
1714673224
Reply with quote  #2

1714673224
Report to moderator
Transactions must be included in a block to be properly completed. When you send a transaction, it is broadcast to miners. Miners can then optionally include it in their next blocks. Miners will be more inclined to include your transaction if it has a higher transaction fee.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714673224
Hero Member
*
Offline Offline

Posts: 1714673224

View Profile Personal Message (Offline)

Ignore
1714673224
Reply with quote  #2

1714673224
Report to moderator
overtorment2 (OP)
Jr. Member
*
Offline Offline

Activity: 30
Merit: 75


View Profile
December 03, 2017, 10:39:46 PM
 #2

up
btc_enigma
Hero Member
*****
Offline Offline

Activity: 688
Merit: 565


View Profile
December 06, 2017, 10:10:51 AM
 #3

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 !

overtorment2 (OP)
Jr. Member
*
Offline Offline

Activity: 30
Merit: 75


View Profile
March 11, 2018, 03:31:55 PM
 #4

Added TESTNET support
ketominer
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
May 23, 2018, 09:17:05 AM
 #5

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
overtorment2 (OP)
Jr. Member
*
Offline Offline

Activity: 30
Merit: 75


View Profile
May 23, 2018, 10:47:14 AM
 #6

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.


ketominer
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
May 23, 2018, 11:34:22 AM
 #7



    • 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.<anonymous> (/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
    ketominer
    Newbie
    *
    Offline Offline

    Activity: 4
    Merit: 0


    View Profile
    May 23, 2018, 01:41:06 PM
     #8

    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?
    overtorment2 (OP)
    Jr. Member
    *
    Offline Offline

    Activity: 30
    Merit: 75


    View Profile
    May 23, 2018, 04:00:09 PM
     #9

    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.

    ketominer
    Newbie
    *
    Offline Offline

    Activity: 4
    Merit: 0


    View Profile
    May 23, 2018, 04:49:40 PM
     #10

    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
    rjpminer
    Newbie
    *
    Offline Offline

    Activity: 9
    Merit: 0


    View Profile
    January 03, 2020, 09:13:47 PM
     #11

    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?


    Alex73100
    Newbie
    *
    Offline Offline

    Activity: 2
    Merit: 0


    View Profile
    September 25, 2022, 01:09:58 AM
     #12

    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
    xyue
    Newbie
    *
    Offline Offline

    Activity: 22
    Merit: 0


    View Profile
    October 28, 2022, 06:53:24 AM
     #13

    increase lightning
    Pages: [1]
      Print  
     
    Jump to:  

    Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!