It is an important milestone in our project. Initially we couldn't take that name because it was already filled by some other projects
Now, after years there is only one bitcart: ours. In fact, it was used as bitcart in code before, and now the UI naming will catch up too
It is more consistent. Also from the community polls it is easier and many people used Bitcart instead of BitcartCC even before.
Together with a new name, we've got a new professional-made logo redesign
This release has breaking changes in docker deployment mostly due to changing of some files.
In order to do the update, run:
./update.sh
./setup.sh
contrib/upgrades/upgrade-to-0800.sh
The env vars are now stored in /etc/profile.d/bitcart-env.sh, and systemd file is also named bitcart.service now.
All plugins have been updated with new naming and logos
With the new electrums and other daemons update, it fixed a rare but possible bug when BTC or LTC wallets got stuck forever. More robustness, more performance!
If your RPC supports debug_traceTransaction method, then bitcart will also automatically detect internal transactions to your wallet! Unfortunately for now the default RPC doesn't support it, but bitcart is ready
Now Bitcart docker image is published to dockerhub, ghcr.io and nirvati registries for better reliability!
get_updates
method now no longer crashes in eth-based daemonsnew_transaction
event in eth-based coinsgetnonce
method in eth-based coinsPublished by MrNaif2018 over 1 year ago
Fix an issue with new store POS checkout for tor onedomain mode
Allow to disable POS calculator screen
Published by MrNaif2018 over 1 year ago
Because of recent issues of coingecko, as well of lack of some local currencies and other issues, our rate engine has been improved.
The exchange rates functionality have been moved from the daemon one layer up, to the Merchants API. If you use exchange_rate
or list_fiat
functions from daemons RPC protocol, please either use Merchants API directly (some usecases of SDK can completely be replaced by the Merchants API), or fetch exchange rates manually. This already gives you more control over how to do the fetching.
For the rest of the users, no breaking changes are made. In fact, the system is more reliable. It is now possible to add custom rate rules in store settings.
If your local currency is not supported, you can do something like
X_MYCUR = X_USD * fiat(USD_MYCUR)
You can use a variety of exchanges. Most of them are added via coingecko exchanges API, but kraken
and fiat
are added natively. fiat refers to currency API hosted by github pages, updated daily list of USD to other fiat currencies rates.
You can also use functions like mean
or median
to gather rate off multiple exchanges. In case one fails, others will be still counted in.
We continue to optimize the performance and memory usage of the daemons. An issue with infinitely growing list of events for polling has been fixed, it's now capped by 100 events per wallet max. Polling is not used by merchants API, so it was a useless use of memory and performance.
The store POS has received numerous improvements in this release.
An initial prototype of a keypad UI is now accessible. It is useful for in-person checkouts for example.
Also, store POS now uses admin panel's checkout page, which means there is now only one reference universal checkout page.
Published by MrNaif2018 over 1 year ago
Admin panel has got a revamped UI - the datatables now display 10 items at a time in full screen mode. Also you will see horizontal scrollbars in less cases.
Navigation is now performed via a toolbar at the left. This allows us to expand the dashboard in future releases with new graphs and statistics
Zero-amount invoices have better formatting now
In case your server is a public instance with many users, update is recommended. In short: in some cases template rendering could allow executing commands inside the worker containers
It is now possible to batch payouts in one transaction to save on costs, for btc-based coins only for now
Lightning network now displays sent amount correctly, and payment hash is filled in transaction hashes value
After a large investigation, we've found the issues of the leak to be located in malloc()
linux function. To resolve this complex issue, all our python docker images now include and use jemalloc memory allocator for better performance and to avoid memory fragmentation.
Published by MrNaif2018 over 1 year ago
Fix excessive memory usage of Lightning gossip and CLI not working
Make order id endpoint return invoice with any status other than expired. If it's expired, a new invoice is created
Published by MrNaif2018 over 1 year ago
Fix incorrect use of distinct()
when calculating some functions in database
Published by MrNaif2018 over 1 year ago
Fix /manage/policies
endpoint for non-superusers
Published by MrNaif2018 over 1 year ago
This releases a ton of improvements and fixes in many different aspects of BitcartCC
We are back to being at MIT license, possible to be used in any environments!
Yes, it is now possible to protect your account with additional layer (or layers) of security.
After entering password, you will be able to login via either Time-Based One-time Passwords (TOTP) via apps like Google Authenticator or via FIDO2 (hardware devices, i.e. Ledger, YubiKey). Enjoy!
If the server owner has configured server's email server, it will be possible to ask users to verify their emails
It might sound weird, but before this moment it was not possible for a user to change their own password without asking server admin. This is now fixed, with additional abilities like "Log out all devices".
It is possible to use your instance as a small file upload center. One of it's main application is to supply in e.g. Store Theme CSS URL setting or similar, but you can use it however you like
In case you don't want to find an xpub or similar for your wallet, just click on the "+" icon, and generate either watch-only or a hot wallet right from BitcartCC UI in a secure way! Note: don't forget to write down your seed phrase of course!
The long-requested feature, you can now trigger refunds on any invoices with payments sent to them. You will be presented with a variety of options how much to refund, and BitcartCC can even send an email to your customer about the refund automatically.
When customer enters their address for refund, you will be notified via your configured notification providers. Two new templates were added to configure message sent to customer, and message sent to merchant
On some blockchains, network fees are extremely big. To avoid spending money on them, you can include it's cost in invoice amount automatically. We might built up improved methods of payment detection for ETH based on this setting
Our API docs are autogenerated, and we fixed a number of issues preventing correct generation. Now you can see a clear description of when auth is needed or not, and when it is optional, as well as other fixes.
With new plugins schema, plugin authors can add new metadata, like plugin website, source code URL, docs URL and license. It will be displayed in the UI
Plugins author can now easily bootstrap their plugins via bitcart-cli plugin init
, validate them via bitcart-cli plugin validate
and package via bitcart-cli plugin package
BitcartCC CLI has been moved to https://github.com/bitcartcc/bitcart-cli, all further releases will be here
This means that if you select eth as your wallets currency, it won't tell you to enter confusing "Xpub", but instead it will ask you for an address
The plugins API has been extended to allow plugins to register custom payment methods. Take a look at our Lightning network + plugin
Published by MrNaif2018 over 1 year ago
Added a new command:
bitcart-cli package <path>
- creates a bitcartcc plugin from directory and strips unnecessary files
Also fixed packaging for docker plugins
Published by MrNaif2018 over 1 year ago
Adds new commands for plugins management:
bitcart-cli plugin validate <path>
- validates that a plugin is correct (correct metadata and some component-specific checks)
bitcart-cli plugin init <path>
- an interactive and easy-to-use wizard which will create everything needed for plugins, as well as setup development environment
Published by MrNaif2018 almost 2 years ago
This release packs a lot of small, but quality of life improvements and fixes
BTC payments processing was not working in some cases since 0.6.15.0 release. This is now fixed.
Now for each invoice you will be able to see sent amount - how much exactly the customer sent, and exception status: none if customer sent the exact required sum, paid_partial
if customer underpaid, paid_over
if customer overpaid.
In case a partial payment is sent, checkout UI now updates and notifies the user that they didn't pay in full yet
It is now possible to create zero amount invoices: such invoices will get complete upon any payment. They are useful for top-up operations in some services.
Finally possible! If server owner has configured email server in server policies, it will be possible to reset password by a link to email.
The store POS has gained basic quantity management: when a product is bought, it's quantity reduces. Unlimited quantity can be specified by setting -1
as product quantity.
It is now possible to easily run without a domain, just set BITCART_HOST
to server ip address and it will just work!
In case you want to test a new feature, you can enable new setting in store policies, then update button will build docker images directly from master branch, allowing to test fixes without a release
The configurator now checks if BITCART_HOST
specified actually has any DNS records configured. If it doesn't, it warns the user that the installation will likely fail
The old lunanode configurator deprecated long time ago is now shut down. https://launch.bitcartcc.com now redirects to the configurator.
A new endpoint POST /invoices/order_id/{order_id}
was added. It gets a pending invoice by order id, or if it doesn't exist, creates one with params specified. This is useful for our plugin integrations and it will be used to avoid duplicate invoices created on i.e. page refresh.
COIN_DEBUG
BITCART_VERSION
in docker deploymentPublished by MrNaif2018 almost 2 years ago
Fixes in plugin API: metadata is now json-encodable, fixed calling product creation hooks, better UI slots in store
Published by MrNaif2018 almost 2 years ago
It's finally here! Starting from this new major release series, BitcartCC is now fully extendable!
Anything is now possible
Server admins can now install plugins from the UI.
Just upload a plugin archive (.bitcartcc
extension), and it will automatically re-build everything!
It is possible to customize backend (by adding new pages, database tables or adding metadata, hooks and filters), UI (new pages, extend in special UI slots, add new data), and docker deployment (new auto-loaded components and rules).
The opportunities are limitless!
See example here: https://github.com/bitcartcc/bitcart-plugin
The plugins support will get extended over time.
We encourage all plugin authors to start working on their first plugins, we will issue follow-up releases polishing the API
Anything that has ever been requested before which didn't fit well in BitcartCC core can be extracted to a plugin!
Published by MrNaif2018 almost 2 years ago
Fix important issue in processing XMR mempool
Make underpaid_percentage
work the expected way again
Fix normalization of destination address in payouts and payouts on tron mainnet
Our fee prediction algorithm for tron should now account for 100% of cases.
Add sent_amount
to internal invoices in the daemon everywhere
Fix payouts for BCH
Fix tx_hashes
not working for multiple transactions in ETH
Published by MrNaif2018 almost 2 years ago
Fix payouts in Tron mainnet
Fix long-standing issue where backend logs where not transferred to log server. The server logs section will be way more detailed now.
Clarify why customer address is needed in eth-based methods
Published by MrNaif2018 almost 2 years ago
Fix XRG daemon
Published by MrNaif2018 almost 2 years ago
A commonly requested feature, now you can view (and even instantly view in block explorer) tx hashes of paid invoices.
While our current ETH support is great and previous method (unique amounts) seemed to be the most optimal one with zero costs to the merchant, it actually incurred some costs: costs for customer support to handle cases with users sending not exact amounts. This is not greatly automated.
That's why, we came up with a new way: ask customer for the address they will be sending from.
This allowed us to process payments in the same way as in other currencies, it even allows invoice to be paid in parts. If user over-pays, there is no issue anymore.
Checkout UI for eth-based currencies was reworked to present user with 3 choices: enter address manually, or pay via metamask or walletconnect (address gets pre-filled).
Published by MrNaif2018 almost 2 years ago
This release includes the long-awaited monero support!
This means that now BitcartCC supports all major coins and no other solutions are needed to accept payments
For now, payouts support and balance fetching is disabled for monero because it is not yet clear how to do that in a light-weight environment.
For it to work, just enter your secret viewkey and address, and enjoy!
We use integrated addresses to detect payments.
Before it was not obvious that you can switch between currencies in admin panel's checkout UI. By adding a special icon, it is now way clearer
Published by MrNaif2018 almost 2 years ago
Monero support
Added new argument --address
to specify monero wallet's address
Published by MrNaif2018 almost 2 years ago
Due to the cutting-edge optimizations, invoice creation, balance fetching and other operations are up to 10x faster
You can now protect login pages with hcaptcha. It is configurable in server policies. Login and registration pages will be protected and less spam will be possible
ETH daemon implementation is applying proper retry logic in more places, allowing for no blocks skipped due to temporary network errors
Fixed some crashes when processing a lot of wallets
COIN_TX_SPEED
to configure default gas price being used in transactions