Running Bitcoind – BitcoinWiki

Samourai Wallet connects to your node using the standard Bitcoin Remote Procedure Call (RPC) interface.

Samourai Wallet connects to your node using the standard Bitcoin Remote Procedure Call (RPC) interface. submitted by a56fg4bjgm345 to ledgerwallet [link] [comments]

Developing secure web apps that interface with bitcoin JSON RPC

Hi-ho,
I'm exploring the Bitcoin software and have just enabled the RPC service on my local install. I'm keen now to learn more on best practises in terms of developing a multi user web application. Specifically how one could securely serve multiple users from a single bitcoind implementation.
If anyone can point me to the relevant docs, if they exist, I'd appreciate the input. Thanks
submitted by po00on to Bitcoin [link] [comments]

Developing secure web apps that interface with bitcoin JSON RPC /r/Bitcoin

Developing secure web apps that interface with bitcoin JSON RPC /Bitcoin submitted by BitcoinAllBot to BitcoinAll [link] [comments]

Question re RPC interface /r/Bitcoin

Question re RPC interface /Bitcoin submitted by BitcoinAllBot to BitcoinAll [link] [comments]

libbitcoin update - Python bindings and custom RPC middleware for interfacing with Bitcoin node.

libbitcoin update - Python bindings and custom RPC middleware for interfacing with Bitcoin node. submitted by genjix to Bitcoin [link] [comments]

Chain Query [Alpha] - A web based interface to the Bitcoin API JSON-RPC

Originally planned on holding off on releasing this until all the API commands were integrated, but with the recent large increase in transaction volume, an Alpha release with what is ready seemed appropriate.
In particular estimatefee and getmempoolinfo are now publicly available through your browser, along with 25 other API commands.
Built for the average Joe to explore Bitcoin's core API and to serve as the foundation for PHP web applications to easily communicate with bitcoin core.
When all the Bitcoin Core 0.10.2 commands are complete the whole thing will be released on GitHub as open source.
So without further ado, http://ChainQuery.com/bitcoin-api
A couple quick explanations:
To see the size and # of unconfirmed transactions in the node's bitcoin mempool:
http://chainquery.com/bitcoin-api/getmempoolinfo
To estimate the fee required to have a transaction confirm within the next "X" blocks enter the number of blocks here:
http://chainquery.com/bitcoin-api/estimatefee
To see if your transaction is in the nodes current memory pool enter the transaction ID here (for a readable result select "decoded"):
http://chainquery.com/bitcoin-api/getrawtransaction
Currently supported commands (27):
I hope you like it so far, any questions or feedback are welcome and appreciated.
submitted by CoinCadence to Bitcoin [link] [comments]

Linux Cli with Web Front End?

Is there such a client?
The usage idea would be to have it running in a Docker container on my Linux server and access the web front end on local machines.
I'm currently running a Docker container that enables a remote connection to a desktop with Bitcoin Core loaded. Not a great solution security-wise.
submitted by rafaelagp to Bitcoin [link] [comments]

Wasabi Wallet v1.1.11

https://github.com/zkSNACKs/WalletWasabi/releases
Summary
This major release is the culmination of several efforts that have been a work in progress for a long time.
submitted by yahiheb to Bitcoin [link] [comments]

Wasabi Wallet v1.1.11

https://github.com/zkSNACKs/WalletWasabi/releases

Summary

This major release is the culmination of several efforts that have been a work in progress for a long time.
submitted by yahiheb to WasabiWallet [link] [comments]

Megacoin MΣC 1.9.9.x - Release Notes - Short Overview

Megacoin MΣC 1.9.9.x - Release Notes - Short Overview

https://preview.redd.it/3ex64pfi6k251.jpg?width=1452&format=pjpg&auto=webp&s=c029b11966e1215b4bb95be70756923830c150a6

Masternodes
Megacoin MΣC 1.9.9.x brings along a masternode system for Bitcore. The collateral for one masternode is 4,200 MΣC . This allows up to 10,000 masternodes to support the network. The masternodes receive half of all generated bitcores. It is possible to setup a masternode with the minimum version 1.9.9.x or higher. A government system is included in the new core
Datacarriersize

https://preview.redd.it/jyf7ka176k251.jpg?width=1288&format=pjpg&auto=webp&s=cd6f881532ffb0b26f02bc19ca73ecb52882748a
Megacoin MΣC 1.9.9.x increase the default datacarriersize up to 220 bytes. More infos con you find here | here no 2. | here no 3.
Command fork system
Different forks can be activated remotely in the future. This way we can ensure that all critical updates are only activated once all important network participants are ready.
Wallet changes
Megacoin MΣC 1.9.9.x introduces full support for segwit in the wallet and user interfaces. A new `-addresstype` argument has been added, which supports `legacy`, `p2sh-segwit` (default), and `bech32` addresses. It controls what kind of addresses are produced by `getnewaddress`, `getaccountaddress`, and `createmultisigaddress`. A `-changetype` argument has also been added, with the same options, and by default equal to `-addresstype`, to control which kind of change is used.
A new `address_type` parameter has been added to the `getnewaddress` and `addmultisigaddress` RPCs to specify which type of address to generate.
A `change_type` argument has been added to the `fundrawtransaction` RPC to override the `-changetype` argument for specific transactions.
All segwit addresses created through `getnewaddress` or `*multisig` RPCs explicitly get their redeemscripts added to the wallet file. This means that downgrading after creating a segwit address will work, as long as the wallet file is up to date.
All segwit keys in the wallet get an implicit redeemscript added, without it being written to the file. This means recovery of an old backup will work, as long as you use new software.
All keypool keys that are seen used in transactions explicitly get their redeemscripts added to the wallet files. This means that downgrading after recovering from a backup that includes a segwit address will work
Note that some RPCs do not yet support segwit addresses. Notably, `signmessage`/`verifymessage` doesn't support segwit addresses, nor does `importmulti` at this time. Support for segwit in those RPCs will continue to be added in future versions.
P2WPKH change outputs are now used by default if any destination in the transaction is a P2WPKH or P2WSH output. This is done to ensure the change output is as indistinguishable from the other outputs as possible in either case.
BIP173 (Bech32) Address support ("mec.." addresses)

https://preview.redd.it/kzg55cg36k251.jpg?width=1288&format=pjpg&auto=webp&s=288ac36af63f4f5040ca2d20c9d8f07b78d99a5a

Full support for native segwit addresses (BIP173 / Bech32) has now been added.
This includes the ability to send to BIP173 addresses (including non-v0 ones), and generating these addresses (including as default new addresses, see above).
A checkbox has been added to the GUI to select whether a Bech32 address or P2SH-wrapped address should be generated when using segwit addresses. When launched with `-addresstype=bech32` it is checked by default. When launched with `-addresstype=legacy` it is unchecked and disabled.
HD-wallets by default
Due to a backward-incompatible change in the wallet database, wallets created with version 0.15.2 will be rejected by previous versions. Also, version 0.15.2 will only create hierarchical deterministic (HD) wallets. Note that this only applies to new wallets; wallets made with previous versions will not be upgraded to be HD.
Replace-By-Fee by default in GUI
The send screen now uses BIP125 RBF by default, regardless of `-walletrbf`.There is a checkbox to mark the transaction as final.
The RPC default remains unchanged: to use RBF, launch with `-walletrbf=1` oruse the `replaceable` argument for individual transactions.
Wallets directory configuration (`-walletdir`)
Megacoin MΣC 1.9.9.x now has more flexibility in where the wallets directory can belocated. Previously wallet database files were stored at the top level of thebitcoin data directory. The behavior is now:
For new installations (where the data directory doesn't already exist), wallets will now be stored in a new `wallets/` subdirectory inside the data directory by default.
For existing nodes (where the data directory already exists), wallets will be stored in the data directory root by default. If a `wallets/` subdirectory already exists in the data directory root, then wallets will be stored in the `wallets/` subdirectory by default.- The location of the wallets directory can be overridden by specifying a
`-walletdir=` option where `` can be an absolute path to a directory or directory symlink.
Care should be taken when choosing the wallets directory location, as if itbecomes unavailable during operation, funds may be lost.
Support for signalling pruned nodes (BIP159)


Pruned nodes can now signal BIP159's NODE_NETWORK_LIMITED using service bits, in preparation forfull BIP159 support in later versions. This would allow pruned nodes to serve the most recent blocks. However, the current change does not yet include support for connecting to these pruned peers.
GUI changes
We have added a new Walletdesign. The option to reuse a previous address has now been removed. This was justified by the need to "resend" an invoice, but now that we have the request history, that need should be gone.- Support for searching by TXID has been added, rather than just address and label.- A "Use available balance" option has been added to the send coins dialog, to add the remaining available wallet balance to a transaction output.- A toggle for unblinding the password fields on the password dialog has been added
Security
We change the coinbase maturity via command fork from 100 to 576 blocks. Also we have pumb the default the protoversion to 70006. It is possible later to disconnect the old version via command fork.
Hashalgorythm
Megacoin MΣC 1.9.9.x supports a completely new hashalgo "Mega_MEC".
Sources
Bitcoin Core, Dash Core, FXTC Core, LTC Core, PIVX Core, Bitcoin Cash Core, Bitcore BTX Odarhom
submitted by limxdev to megacoinmec [link] [comments]

2020.5.18 - 2020.5.29 Bi-Weekly Report Updated

2020.5.18 - 2020.5.29 Bi-Weekly Report Updated
https://preview.redd.it/hnsjgxkz1o151.png?width=1250&format=png&auto=webp&s=ac891e2fe3ba853cbd4f3714fdefb641c8236463

Keywords in this issue:
Technology: privacy function, mainnet 4.0, blockchain explorer
Business: No update in these two weeks
Operations: 520 Day activity, Mainnet 4.0 technical document, Bitcoin Pizza Day, BSN

R&D Progress

Current progress
Continuous technical perfection of INT main chain
  • Regarding test of WASM standard, finding and fixing bugs is ongoing(72%)
  • Optimize the RPC interface of two consensus data queries (100%)
  • Development work of privacy function (mainnet 4.0) is ongoing (70%)
  • Optimize the mainnet block data synchronization, greatly improving the stability and efficiency of data synchronization (100%)
Perfection of INT wallet and Explorer
  • Continue to improve the mainnet Web wallet and revise the part of interface
  • Continue to improve the blockchain explorer and revise the part of interface
  • Continue to optimize the Mobile wallet and optimize the function of Red Packet
  • Continue to optimize testnet explorer of the mainnet 4.0
  • Continue to optimize web wallet of the mainnet 4.0 testnet.

Activity operation

Current progress
  • INT Chain Mainnet 4.0 Technical Documents Released
INT Chain mainnet 4.0 technical documents released on May 15. The technical documentation makes it easy for users to access the new mainnet and participate in testing. You can check here: https://titansdocs.intchain.io/
https://preview.redd.it/uiqoznb12o151.png?width=554&format=png&auto=webp&s=76be5f8a5e08426de41bde36eb26a1f9b5a7ccae

  • An article Details INT Chain Became a Qualified BSN Developer
INT Chain became a qualified BSN developer On May 9. To let more people know it, INT Chain gives the details about what BSN is, what services BSN provides, and what is the meaning of INT Chain as a qualified BSN developer. More details are shown here https://link.medium.com/3GKRv2O7I6
https://preview.redd.it/mb09yic32o151.png?width=296&format=png&auto=webp&s=4d970404936b927fc3f902670ce2b88600ae5d0f

  • 520 Day Activity Launched
Since the pronunciation of number 520 sounds similar to “I love you” in Chinese, May 20 has become another occasion for local people to convey their love to their significant others. So INT Chain released an activity, which encourages community members to convey love to their loved ones in Weibo.4 lucky people will get an INT custom T-shirt and token reward.
https://preview.redd.it/e2e1u4v42o151.png?width=235&format=png&auto=webp&s=194d87389076f096a31fbf2241133270dc3601e9

  • Bitcoin Pizza Day 10th Anniversary Activity Launched
On May 22, 2010, when bitcoin was a little over a year old, a developer named Laszlo Hanyecz bought two pizzas for 10,000 BTC. He is known as the first person to use bitcoin in a commercial transaction. The day is now known as "Bitcoin Pizza Day." To memory this event, INT Chain launched the "Bitcoin Pizza Day 10th Anniversary Activity", all users who share the poster in their WeChat moments have the chance to win a pizza.
https://preview.redd.it/hjqwq6962o151.png?width=209&format=png&auto=webp&s=d5717117639623ff31450011564e31aa31ff352a
submitted by INTCHAIN to INT_Chain [link] [comments]

Bitcoin Price Prediction 2020

Bitcoin Price Prediction 2020
Bitcoin is a digital and fully decentralized currency. Decentralization of the network is the main goal of the Bitcoin. The fundamental achievement of bitcoin is its genuine peer-to-peer payment system; no person or even institution was “in charge” of bitcoin.
by StealthEX
Three main ideas were embedded in the Bitcoin code:
• Bitcoin should not be regulated by anyone.
• Its emission should not be infinite.
• The cost of a coin depends on its demand.
The maximum number of bitcoins – 21 million, and the possibility of their extraction were laid in the bitcoin algorithm.
Bitcoin “halving” occurred on 11 May 2020. This means that its miners’ remuneration was halved.

Bitcoin statistics

Source: CoinMarketCap, Data was taken on 19 May 2020.
Current Price $9,672.54
ROI since launch 7,048.96%
Market Cap $177,790,148,642
Market Rank #1
Circulating Supply 18,380,918 BTC
Total Supply 18,380,918 BTC

Bitcoin achievements and future plans

Bitcoin in 2019:

Bitcoin Core released:
• Improved Partially Signed Bitcoin Transaction (PSBT) support and added support for output script descriptors. This allowed it to be used with the first released version of the Hardware Wallet Interface (HWI).
• Implemented the new CPFP carve-out mempool policy, added initial support for BIP158-style compact block filters (currently RPC only), improved security by disabling protocols such as BIP37 bloom filters and BIP70 payment requests by default. It also switches GUI users to bech32 addresses by default.
LND released:
• Support for Static Channel Backups (SCBs) that help users recover any funds settled in their LN channels even if they’ve lost their recent channel state.
• Improved autopilot to help users open new channels, plus built-in compatibility with Lightning Loop for moving funds onchain without closing a channel or using a custodian.
• Added support for using a watchtower to guard your channels when you’re offline.
• Added support for a more extensible onion format, improved backup safety, and improved the watchtower support.
Other:
• Its price has more than doubled.
• For the first time in history Bitcoin was assigned a rating of “A”.
• British court recognized Bitcoin as property.
• The second largest in Germany and ninth in Europe, the Stuttgart Stock Exchange launched Bitcoin spot trading.
• In Russia, for the first time, Bitcoin was added to the authorized capital of a company.
• Bitcoin Named the Best Asset of the Decade by Bank of America Merrill Lynch.

Bitcoin in 2020:

• Focus on the Lightning Network. The continuation of work on c-lightning (Blockstream), Eclair (ACINQ), LND (Lightning Labs) and Rust Lightning to develop the protocol.
• Expectation of the SchnorTaproot softfork in 2020 or 2021 that is improvement in fungibility, privacy, scalability and functionality.
Bitcoin “halving” occurred on 11 May 2020.
• Amid the general crisis caused by coronavirus pandemic (COVID-19) and the depreciation of money, the Bitcoin value is growing.

Bitcoin Technical Analysis

Source: TradingView, Data was taken on 19 May 2020.

Bitcoin Price Prediction 2020

TradingBeasts BTC price prediction

The Bitcoin price is forecasted to reach $8,681 (-10.25%) by the beginning of June 2020. At the end of 2020 BTC price will be $8,345 (-13.72%).

Wallet investor Bitcoin price prediction

Bitcoin price prediction: maximum price by the end of December 2020 $13,559 (+40.19%), a minimum price $7,886 (-18.47%).

DigitalCoinPrice Bitcoin forecast

There will be a positive trend in the future and the BTC might be good for investing. BTC price will be equal to $22,501 at the end of 2020 (+132.63%).

Crypto-Rating BTC price forecast

Based on historical data Bitcoin price will be at $12,272 (+26.87%) in 1 week and $13,338 (+37.90%) in 1 month. Analysis of the cryptocurrency market shows that Bitcoin price may reach $18,679 (+93.11%) by the 1st of January 2021 driven by the potential interest from large institutional investors and more regulation expected in the field of digital currencies.

Buy Bitcoin at StealthEX

Bitcoin (BTC) is available for exchange on StealthEX with a low fee. Follow these easy steps:
✔ Choose the pair and the amount for your exchange. For example ETH to BTC.
✔ Press the “Start exchange” button.
✔ Provide the recipient address to which the coins will be transferred.
✔ Move your cryptocurrency for the exchange.
✔ Receive your coins.
The views and opinions expressed here are solely those of the author. Every investment and trading move involves risk. You should conduct your own research when making a decision.
Original article was posted on https://stealthex.io/blog/2020/05/19/bitcoin-price-prediction-2020/
submitted by Stealthex_io to u/Stealthex_io [link] [comments]

Odarhom - Release Notes - Short Overview - First Draft

Odarhom - Release Notes - Short Overview - First Draft

Odarhom
Masternodes
Odarhom brings along a masternode system for Bitcore. The collateral for one masternode is 2,100 BTX. This allows up to 10,000 masternodes to support the network. The masternodes receive half of all generated bitcores. It is possible to setup a masternode with the minimum version 0.90.8.x or higher. A government system is included in the new core and can be activated later, if necessary.
Datacarriersize

https://preview.redd.it/csrmknzl58q41.jpg?width=1267&format=pjpg&auto=webp&s=85c59b3e5753009f397505c3000e6d70892188b7
Odarhom increase the default datacarriersize up to 220 bytes. More infos con you find here | here no 2. | here no 3.
Command fork system
Different forks can be activated remotely in the future. This way we can ensure that all critical updates are only activated once all important network participants are ready.
Wallet changes
Odarhom introduces full support for segwit in the wallet and user interfaces. A new `-addresstype` argument has been added, which supports `legacy`, `p2sh-segwit` (default), and `bech32` addresses. It controls what kind of addresses are produced by `getnewaddress`, `getaccountaddress`, and `createmultisigaddress`. A `-changetype` argument has also been added, with the same options, and by default equal to `-addresstype`, to control which kind of change is used.
A new `address_type` parameter has been added to the `getnewaddress` and `addmultisigaddress` RPCs to specify which type of address to generate.
A `change_type` argument has been added to the `fundrawtransaction` RPC to override the `-changetype` argument for specific transactions.
All segwit addresses created through `getnewaddress` or `*multisig` RPCs explicitly get their redeemscripts added to the wallet file. This means that downgrading after creating a segwit address will work, as long as the wallet file is up to date.
All segwit keys in the wallet get an implicit redeemscript added, without it being written to the file. This means recovery of an old backup will work, as long as you use new software.
All keypool keys that are seen used in transactions explicitly get their redeemscripts added to the wallet files. This means that downgrading after recovering from a backup that includes a segwit address will work
Note that some RPCs do not yet support segwit addresses. Notably, `signmessage`/`verifymessage` doesn't support segwit addresses, nor does `importmulti` at this time. Support for segwit in those RPCs will continue to be added in future versions.
P2WPKH change outputs are now used by default if any destination in the transaction is a P2WPKH or P2WSH output. This is done to ensure the change output is as indistinguishable from the other outputs as possible in either case.
BIP173 (Bech32) Address support ("btx..." addresses)

https://preview.redd.it/q0c26p3fx7q41.jpg?width=1278&format=pjpg&auto=webp&s=bd2b8c5d583dca703caae940aa44e01a365f080c
Full support for native segwit addresses (BIP173 / Bech32) has now been added.
This includes the ability to send to BIP173 addresses (including non-v0 ones), and generating these addresses (including as default new addresses, see above).
A checkbox has been added to the GUI to select whether a Bech32 address or P2SH-wrapped address should be generated when using segwit addresses. When launched with `-addresstype=bech32` it is checked by default. When launched with `-addresstype=legacy` it is unchecked and disabled.
HD-wallets by default
Due to a backward-incompatible change in the wallet database, wallets created with version 0.15.2 will be rejected by previous versions. Also, version 0.15.2 will only create hierarchical deterministic (HD) wallets. Note that this only applies to new wallets; wallets made with previous versions will not be upgraded to be HD.
Replace-By-Fee by default in GUI
The send screen now uses BIP125 RBF by default, regardless of `-walletrbf`.There is a checkbox to mark the transaction as final.
The RPC default remains unchanged: to use RBF, launch with `-walletrbf=1` oruse the `replaceable` argument for individual transactions.
Wallets directory configuration (`-walletdir`)
Odarhom now has more flexibility in where the wallets directory can belocated. Previously wallet database files were stored at the top level of thebitcoin data directory. The behavior is now:
For new installations (where the data directory doesn't already exist), wallets will now be stored in a new `wallets/` subdirectory inside the data directory by default.
For existing nodes (where the data directory already exists), wallets will be stored in the data directory root by default. If a `wallets/` subdirectory already exists in the data directory root, then wallets will be stored in the `wallets/` subdirectory by default.- The location of the wallets directory can be overridden by specifying a
`-walletdir=` option where `` can be an absolute path to a directory or directory symlink.
Care should be taken when choosing the wallets directory location, as if itbecomes unavailable during operation, funds may be lost.
Support for signalling pruned nodes (BIP159)

https://preview.redd.it/fctdedmwx7q41.jpg?width=1283&format=pjpg&auto=webp&s=20dafb6385f46a072f68d49fd0e9a294341be684
Pruned nodes can now signal BIP159's NODE_NETWORK_LIMITED using service bits, in preparation forfull BIP159 support in later versions. This would allow pruned nodes to serve the most recent blocks. However, the current change does not yet include support for connecting to these pruned peers.
GUI changes
We have added a new Walletdesign. The option to reuse a previous address has now been removed. This was justified by the need to "resend" an invoice, but now that we have the request history, that need should be gone.- Support for searching by TXID has been added, rather than just address and label.- A "Use available balance" option has been added to the send coins dialog, to add the remaining available wallet balance to a transaction output.- A toggle for unblinding the password fields on the password dialog has been added
Security
We change the coinbase maturity via command fork from 100 to 576 blocks. Also we have pumb the default the protoversion to 80004. It is possible later to disconnect the old version via command fork.
Hashalgorythm
Odarhom supports already lots of Hashalgorythms so can we later with an update new Hashalgorythms for mining. A final decision will be agreed with the community. Odarhom can work with timetravel10, scrypt, nist5, lyra2z, x11, x16r.
Sources
Bitcoin Core, Dash Core, FXTC Core, LTC Core, PIVX Core, Bitcoin Cash Core
submitted by limxdev to bitcore_btx [link] [comments]

Monthly Nano News: December 2019 + Year Recap Special

This is what NANO has been up to lately. I don't think I lie if I say it has been quite an amazing year!
See you soon and happy new year! Something nice is coming soon that I have been working on for a while, stay tuned..

December 2019

November 2019

October 2019

September 2019

August 2019

July 2019

June 2019

May 2019

Apr 2019

Mar 2019

Feb 2019

Jan 2019


More news here: https://nanolinks.info/news

https://preview.redd.it/9sw5nkoxlt741.png?width=749&format=png&auto=webp&s=3426d4eafb9430c0304a6d161596102536df4318
submitted by Joohansson to nanocurrency [link] [comments]

Groestlcoin 6th Anniversary Release

Introduction

Dear Groestlers, it goes without saying that 2020 has been a difficult time for millions of people worldwide. The groestlcoin team would like to take this opportunity to wish everyone our best to everyone coping with the direct and indirect effects of COVID-19. Let it bring out the best in us all and show that collectively, we can conquer anything.
The centralised banks and our national governments are facing unprecedented times with interest rates worldwide dropping to record lows in places. Rest assured that this can only strengthen the fundamentals of all decentralised cryptocurrencies and the vision that was seeded with Satoshi's Bitcoin whitepaper over 10 years ago. Despite everything that has been thrown at us this year, the show must go on and the team will still progress and advance to continue the momentum that we have developed over the past 6 years.
In addition to this, we'd like to remind you all that this is Groestlcoin's 6th Birthday release! In terms of price there have been some crazy highs and lows over the years (with highs of around $2.60 and lows of $0.000077!), but in terms of value– Groestlcoin just keeps getting more valuable! In these uncertain times, one thing remains clear – Groestlcoin will keep going and keep innovating regardless. On with what has been worked on and completed over the past few months.

UPDATED - Groestlcoin Core 2.18.2

This is a major release of Groestlcoin Core with many protocol level improvements and code optimizations, featuring the technical equivalent of Bitcoin v0.18.2 but with Groestlcoin-specific patches. On a general level, most of what is new is a new 'Groestlcoin-wallet' tool which is now distributed alongside Groestlcoin Core's other executables.
NOTE: The 'Account' API has been removed from this version which was typically used in some tip bots. Please ensure you check the release notes from 2.17.2 for details on replacing this functionality.