https://bitcart.ai
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 coinsFix an issue with new store POS checkout for tor onedomain mode
Allow to disable POS calculator screen
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.
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.
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
Fix incorrect use of distinct()
when calculating some functions in database
Fix /manage/policies
endpoint for non-superusers
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
Added a new command:
bitcart-cli package <path>
- creates a bitcartcc plugin from directory and strips unnecessary files
Also fixed packaging for docker plugins
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