Friday, May 8, 2015

11.2 - Dash Release

This is the first Dash release and it’s huge!


The team has been hard at work for over 2 months on improving various parts of the core client. The client should overall be much faster to use, require less bandwidth, will require a level-of-service from masternodes, perform Darksend transactions faster and has a new beautiful look and feel.


All users must update!


This includes protocol changes, so all users must update. Enforcement will be turned off briefly while the network updates, then turned on when we hit 80% in a day or two. Older version masternodes will cease to be paid immediately due to the incompatibility of the protocol!


Another special thanks to UdjinM6 for writing a really nice masternode management system. You can check it out here: https://github.com/darkcoin/darkcoin/blob/v0.11.2.x/src/masternodeman.cpp


This module makes it much faster to restart a node, because it won’t have to request the masternode list every time. It also keeps a record of the DS variables, which will make the network much more harder to trick.


Configurations Have Been Moved!


Configurations have been moved from .darkcoin to .dash! You’ll need to do the following when updating your client. First close Darkcoin and backup your data directory.


Windows: %APPDATA%\Darkcoin\

Mac OS: ~/Library/Application Support/Darkcoin/

Unix/Linux: ~/.darkcoin/


After that rename it to Dash for Windows/Mac, or .dash for linux. Next go open the directory and locate the darkcoin.conf file, rename this to dash.conf.


Next, simply update to the newest Dash client and restart.


Other new things in this release:


Proof-of-service (PoSe), all masternodes MUST have their port opened correctly, otherwise they will be removed. This also checks to make sure masternodes are responding to work requests such as InstantX. This basically will ensure that all nodes are on the same fork and their network functionality is working properly. This was implemented so that the part of the masternode network checks another part of the network, so it’s 100% decentralized.

New command “masternode list pose”, shows all of the masternodes PoSe scores, good for debugging if your masternode is getting punished for not providing proper service.

New DarkSend caching, which improves the experience of using DarkSend vastly

Masternode Blinding is NOT part of this release, while it’s in the code, it’s currently disabled. It’ll take a bit more work to complete and we were running out of time before the March 25th deadline, so it’s being moved to the next release.

Thanks to PoSe, InstantX should work nearly all of the time now.

New masternode voting system for new Dash initiates, each masternode gets one vote. See the new commands “masternode list votes” and “masternode vote yea|nay”. First vote, what color is this dress : http://imgur.com/QjqfntR ? Blue and Black (yea) or White and Gold (nay)

Full release notes: https://github.com/darkcoin/darkcoin/blob/master/doc/release-notes/release-notes-0.11.2.md


v0.11.2.22 – Downloads


https://www.dashpay.io/downloads/


Thanks for helping with this release:


-UdjinM6

-Crowning

-Snogcel

-Propulsion, for maintaining our great forums we tested on

-Flare for setting up Transifex again

-All of those who helped translate the new version


Our awesome testers this release:


AjM,Moli, Tante, Lariondos, xxxsexygirls, Sub-Ether, Moocowmoo, AlexMomo

Bridgewater, elbereth, HowlingMad, JPCrypto, the-baker, Lukas_Jackson

coingun, darkred, MangledBlue, yikadee



source: https://dashtalk.org/threads/11-2-dash-release.4515/



11.2 - Dash Release

Saturday, May 2, 2015

Feathercoin API

feathercoin API





Value of FTC in specific fiat (FTC/Fiat)



Calls

?output=aud (Australia)
?output=eur (Euro)
?output=gbp (Great Britian)
?output=nzd (New Zealand)
?output=usd (United States)

Options

&amount=1 (Specify amount to convert, optional, defaults to 1)
&json=1 (Toggle JSON output with 0 or 1, optional, defauls to 1)

Example



Value of specific fiat in FTC (Fiat/FTC)



Calls

?output=ftcaud (Australia)
?output=ftceur (Euro)
?output=ftcgbp (Great Britian)
?output=ftcnzd (New Zealand)
?output=ftcusd (United States)

Options

&amount=1 (Specify amount to convert, optional, defaults to 1)
&json=1 (Toggle JSON output with 0 or 1, optional, defauls to 1)

Example



Value of Feathercoin in all currencies (FTC/Fiat)



Calls

?output=currencies

Options

&amount=1 (Specify amount to convert, optional, defaults to 1)

Example

Value of 1 FTC in all supported currencies
http://api.feathercoin.com/?output=currencies&amount=1


Value of all currencies in Feathercoin (Fiat/FTC)



Calls

?output=ftccurrencies

Options

&amount=1 (Specify amount to convert, optional, defaults to 1)

Example

Value of 1 of all supported currencies in Feathercoin
http://api.feathercoin.com/?output=ftccurrencies&amount=1


Get Feathercoin difficulty



Calls

?output=difficulty

Options

&json=1 (Toggle JSON output with 0 or 1, optional, defauls to 1)

Example



Get Feathercoin address confirms



Calls

?output=getconflasttx

Options

&address= (Feathercoin address, mandatory)
&json=1 (Toggle JSON output with 0 or 1, optional, defauls to 1)

Example



Get Feathercoin address balance



Calls

?output=balance

Options

&address= (Feathercoin address, mandatory)
&json=1 (Toggle JSON output with 0 or 1, optional, defauls to 1)

Example



Generate QR code



Calls

?output=qrcode

Options

&address= (Feathercoin address that the QR code will use, mandatory)
&amount= (Specify amount to convert, optional, defaults to 0)
&label= (Specify a label for the address, optional)

Example



Get Feathercoin stats



Calls

?output=stats

Returns

Returns the following in JSON

currblk – Current block number

khs – Current Hashrate in Kh/s

retblk – Next retarget block number

blkstoret – Blocks to next retarget

exptimeperblk – Expected time per block

nowdiff – Current difficulty

nextdiff – Expected next difficulty

timetoret – Time to retarget in second

days – Days till next retarget

hours – Hours till retarget after removing days

min – Minutes till retarget after removing hours and days

sec – Seconds till retarget after removing hours, days and minutes

totcm – Total number of Feathercoins

Example




source: https://www.feathercoin.com/feathercoin-api/



Feathercoin API

Bitcoin Core version 0.10.0

This is a new major version release, bringing both new features and bug fixes.


How to Upgrade


If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).


Downgrading warning


Because release 0.10.0 makes use of headers-first synchronization and parallel block download (see further), the block files and databases are not backwards-compatible with older versions of Bitcoin Core or other software:


Blocks will be stored on disk out of order (in the order they are received, really), which makes it incompatible with some tools or other programs. Reindexing using earlier versions will also not work anymore as a result of this.


The block index database will now hold headers for which no block is stored on disk, which earlier versions won’t support.


If you want to be able to downgrade smoothly, make a backup of your entire data directory. Without this your node will need start syncing (or importing from bootstrap.dat) anew afterwards. It is possible that the data from a completely synchronised 0.10 node may be usable in older versions as-is, but this is not supported and may break as soon as the older version attempts to reindex.


This does not affect wallet forward or backward compatibility.


Notable changes

Faster synchronization


Bitcoin Core now uses ‘headers-first synchronization’. This means that we first ask peers for block headers (a total of 27 megabytes, as of December 2014) and validate those. In a second stage, when the headers have been discovered, we download the blocks. However, as we already know about the whole chain in advance, the blocks can be downloaded in parallel from all available peers.


In practice, this means a much faster and more robust synchronization. On recent hardware with a decent network link, it can be as little as 3 hours for an initial full synchronization. You may notice a slower progress in the very first few minutes, when headers are still being fetched and verified, but it should gain speed afterwards.


A few RPCs were added/updated as a result of this:


getblockchaininfo now returns the number of validated headers in addition to the number of validated blocks.

getpeerinfo lists both the number of blocks and headers we know we have in common with each peer. While synchronizing, the heights of the blocks that we have requested from peers (but haven’t received yet) are also listed as ‘inflight’.

A new RPC getchaintips lists all known branches of the block chain, including those we only have headers for.

Transaction fee changes


This release automatically estimates how high a transaction fee (or how high a priority) transactions require to be confirmed quickly. The default settings will create transactions that confirm quickly; see the new ‘txconfirmtarget’ setting to control the tradeoff between fees and confirmation times. Fees are added by default unless the ‘sendfreetransactions’ setting is enabled.


Prior releases used hard-coded fees (and priorities), and would sometimes create transactions that took a very long time to confirm.


Statistics used to estimate fees and priorities are saved in the data directory in the fee_estimates.dat file just before program shutdown, and are read in at startup.


New command line options for transaction fee changes:


-txconfirmtarget=n : create transactions that have enough fees (or priority) so they are likely to begin confirmation within n blocks (default: 1). This setting is over-ridden by the -paytxfee option.

-sendfreetransactions : Send transactions as zero-fee transactions if possible (default: 0)

New RPC commands for fee estimation:


estimatefee nblocks : Returns approximate fee-per-1,000-bytes needed for a transaction to begin confirmation within nblocks. Returns -1 if not enough transactions have been observed to compute a good estimate.

estimatepriority nblocks : Returns approximate priority needed for a zero-fee transaction to begin confirmation within nblocks. Returns -1 if not enough free transactions have been observed to compute a good estimate.

RPC access control changes


Subnet matching for the purpose of access control is now done by matching the binary network address, instead of with string wildcard matching. For the user this means that -rpcallowip takes a subnet specification, which can be


a single IP address (e.g. 1.2.3.4 or fe80::0012:3456:789a:bcde)

a network/CIDR (e.g. 1.2.3.0/24 or fe80::0000/64)

a network/netmask (e.g. 1.2.3.4/255.255.255.0 or fe80::0012:3456:789a:bcde/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff)

An arbitrary number of -rpcallow arguments can be given. An incoming connection will be accepted if its origin address matches one of them.


For example:


0.9.x and before 0.10.x

-rpcallowip=192.168.1.1 -rpcallowip=192.168.1.1 (unchanged)

-rpcallowip=192.168.1.* -rpcallowip=192.168.1.0/24

-rpcallowip=192.168.* -rpcallowip=192.168.0.0/16

-rpcallowip=* (dangerous!) -rpcallowip=::/0 (still dangerous!)

Using wildcards will result in the rule being rejected with the following error in debug.log:


Error: Invalid -rpcallowip subnet specification: *. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24).

REST interface


A new HTTP API is exposed when running with the -rest flag, which allows unauthenticated access to public node data.


It is served on the same port as RPC, but does not need a password, and uses plain HTTP instead of JSON-RPC.


Assuming a local RPC server running on port 8332, it is possible to request:


Blocks: http://localhost:8332/rest/block/HASH.EXT

Blocks without transactions: http://localhost:8332/rest/block/notxdetails/HASH.EXT

Transactions (requires -txindex): http://localhost:8332/rest/tx/HASH.EXT

In every case, EXT can be bin (for raw binary data), hex (for hex-encoded binary) or json.


For more details, see the doc/REST-interface.md document in the repository.


RPC Server “Warm-Up” Mode


The RPC server is started earlier now, before most of the expensive intialisations like loading the block index. It is available now almost immediately after starting the process. However, until all initialisations are done, it always returns an immediate error with code -28 to all calls.


This new behaviour can be useful for clients to know that a server is already started and will be available soon (for instance, so that they do not have to start it themselves).


Improved signing security


For 0.10 the security of signing against unusual attacks has been improved by making the signatures constant time and deterministic.


This change is a result of switching signing to use libsecp256k1 instead of OpenSSL. Libsecp256k1 is a cryptographic library optimized for the curve Bitcoin uses which was created by Bitcoin Core developer Pieter Wuille.


There exist attacks[1] against most ECC implementations where an attacker on shared virtual machine hardware could extract a private key if they could cause a target to sign using the same key hundreds of times. While using shared hosts and reusing keys are inadvisable for other reasons, it’s a better practice to avoid the exposure.


OpenSSL has code in their source repository for derandomization and reduction in timing leaks that we’ve eagerly wanted to use for a long time, but this functionality has still not made its way into a released version of OpenSSL. Libsecp256k1 achieves significantly stronger protection: As far as we’re aware this is the only deployed implementation of constant time signing for the curve Bitcoin uses and we have reason to believe that libsecp256k1 is better tested and more thoroughly reviewed than the implementation in OpenSSL.


[1] https://eprint.iacr.org/2014/161.pdf


Watch-only wallet support


The wallet can now track transactions to and from wallets for which you know all addresses (or scripts), even without the private keys.


This can be used to track payments without needing the private keys online on a possibly vulnerable system. In addition, it can help for (manual) construction of multisig transactions where you are only one of the signers.


One new RPC, importaddress, is added which functions similarly to importprivkey, but instead takes an address or script (in hexadecimal) as argument. After using it, outputs credited to this address or script are considered to be received, and transactions consuming these outputs will be considered to be sent.


The following RPCs have optional support for watch-only: getbalance, listreceivedbyaddress, listreceivedbyaccount, listtransactions, listaccounts, listsinceblock, gettransaction. See the RPC documentation for those methods for more information.


Compared to using getrawtransaction, this mechanism does not require -txindex, scales better, integrates better with the wallet, and is compatible with future block chain pruning functionality. It does mean that all relevant addresses need to added to the wallet before the payment, though.


Consensus library


Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library.


The purpose of this library is to make the verification functionality that is critical to Bitcoin’s consensus available to other applications, e.g. to language bindings such as python-bitcoinlib or alternative node implementations.


This library is called libbitcoinconsensus.so (or, .dll for Windows). Its interface is defined in the C header bitcoinconsensus.h.


In its initial version the API includes two functions:


bitcoinconsensus_verify_script verifies a script. It returns whether the indicated input of the provided serialized transaction correctly spends the passed scriptPubKey under additional constraints indicated by flags

bitcoinconsensus_version returns the API version, currently at an experimental 0

The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface for existing methods should remain stable.


Standard script rules relaxed for P2SH addresses


The IsStandard() rules have been almost completely removed for P2SH redemption scripts, allowing applications to make use of any valid script type, such as “n-of-m OR y”, hash-locked oracle addresses, etc. While the Bitcoin protocol has always supported these types of script, actually using them on mainnet has been previously inconvenient as standard Bitcoin Core nodes wouldn’t relay them to miners, nor would most miners include them in blocks they mined.


bitcoin-tx


It has been observed that many of the RPC functions offered by bitcoind are “pure functions”, and operate independently of the bitcoind wallet. This included many of the RPC “raw transaction” API functions, such as createrawtransaction.


bitcoin-tx is a newly introduced command line utility designed to enable easy manipulation of bitcoin transactions. A summary of its operation may be obtained via “bitcoin-tx –help” Transactions may be created or signed in a manner similar to the RPC raw tx API. Transactions may be updated, deleting inputs or outputs, or appending new inputs and outputs. Custom scripts may be easily composed using a simple text notation, borrowed from the bitcoin test suite.


This tool may be used for experimenting with new transaction types, signing multi-party transactions, and many other uses. Long term, the goal is to deprecate and remove “pure function” RPC API calls, as those do not require a server round-trip to execute.


Other utilities “bitcoin-key” and “bitcoin-script” have been proposed, making key and script operations easily accessible via command line.


Mining and relay policy enhancements


Bitcoin Core’s block templates are now for version 3 blocks only, and any mining software relying on its getblocktemplate must be updated in parallel to use libblkmaker either version 0.4.2 or any version from 0.5.1 onward. If you are solo mining, this will affect you the moment you upgrade Bitcoin Core, which must be done prior to BIP66 achieving its 951/1001 status. If you are mining with the stratum mining protocol: this does not affect you. If you are mining with the getblocktemplate protocol to a pool: this will affect you at the pool operator’s discretion, which must be no later than BIP66 achieving its 951/1001 status.


The prioritisetransaction RPC method has been added to enable miners to manipulate the priority of transactions on an individual basis.


Bitcoin Core now supports BIP 22 long polling, so mining software can be notified immediately of new templates rather than having to poll periodically.


Support for BIP 23 block proposals is now available in Bitcoin Core’s getblocktemplate method. This enables miners to check the basic validity of their next block before expending work on it, reducing risks of accidental hardforks or mining invalid blocks.


Two new options to control mining policy:


-datacarrier=0/1 : Relay and mine “data carrier” (OP_RETURN) transactions if this is 1.

-datacarriersize=n : Maximum size, in bytes, we consider acceptable for “data carrier” outputs.

The relay policy has changed to more properly implement the desired behavior of not relaying free (or very low fee) transactions unless they have a priority above the AllowFreeThreshold(), in which case they are relayed subject to the rate limiter.


BIP 66: strict DER encoding for signatures


Bitcoin Core 0.10 implements BIP 66, which introduces block version 3, and a new consensus rule, which prohibits non-DER signatures. Such transactions have been non-standard since Bitcoin v0.8.0 (released in February 2013), but were technically still permitted inside blocks.


This change breaks the dependency on OpenSSL’s signature parsing, and is required if implementations would want to remove all of OpenSSL from the consensus code.


The same miner-voting mechanism as in BIP 34 is used: when 751 out of a sequence of 1001 blocks have version number 3 or higher, the new consensus rule becomes active for those blocks. When 951 out of a sequence of 1001 blocks have version number 3 or higher, it becomes mandatory for all blocks.


Backward compatibility with current mining software is NOT provided, thus miners should read the first paragraph of “Mining and relay policy enhancements” above.


Credits

Thanks to everyone who contributed to this release:


21E14, Adam Weiss, Aitor Pazos, Alexander Jeng, Alex Morcos, Alon Muroch, Andreas Schildbach, Andrew Poelstra, Andy Alness, Ashley Holman, Benedict Chan, Ben Holden-Crowther, Bryan Bishop, BtcDrak, Christian von Roques, Clinton Christian, Cory Fields, Cozz Lovan, daniel, Daniel Kraft, David Hill, Derek701, dexX7, dllud, Dominyk Tiller, Doug, elichai, elkingtowa, ENikS, Eric Shaw, Federico , ond, Francis GASCHET, Gavin Andresen, Giuseppe Mazzotta, Glenn Willen, Gregory Maxwell, gubatron, HarryWu, himynameismartin, Huang Le, Ian Carroll, imharrywu, Jameson Lopp, Janusz Lenar, JaSK, Jeff Garzik, JL2035, Johnathan Corgan, Jonas Schnelli, jtimon, Julian Haight, Kamil Domanski, kazcw, kevin, kiwigb, Kosta Zertsekel, LongShao007, Luke Dashjr, Mark Friedenbach, Mathy Vanvoorden, Matt Corallo, Matthew Bogosian, Micha, Michael Ford, Mike Hearn, mrbandrews, mruddy, ntrgn, Otto Allmendinger, paveljanik, Pavel Vasin, Peter Todd, phantomcircuit, Philip Kaufmann, Pieter Wuille, pryds, randy-waterhouse, R E Broadley, Rose Toomey, Ross Nicoll, Roy Badami, Ruben Dario Ponticelli, Rune K. Svendsen, Ryan X. Charles, Saivann, sandakersmann, SergioDemianLerner, shshshsh, sinetek, Stuart Cardall, Suhas Daftuar, Tawanda Kembo, Teran McKinney, tm314159, Tom Harding, Trevin Hofmann, Whit J, Wladimir J. van der Laan, Yoichi Hirai, Zak Wilcox


https://www.youtube.com/channel/UCREs0ConyCR2sEFf-DrLRMw


source: https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md



Bitcoin Core version 0.10.0

BitShares 0.9.0

Required upgrade for all users by block 2460000 (approximately 2015-05-05 13:00 UTC)


RC1/RC2 users are also required to upgrade

Blockchain history will be replayed on upgrade; this can take a long time

Wallet database will be upgraded on first login; this can take a long time

Recommended to close and re-open client after first login after upgrade

The following changes will occur after block 2460000:

Advanced user-issued asset features have been added (see below for API changes)

Fix remaining rounding errors in market engine

Message burning now costs 1 BTS/KiB of message string

Registering long asset symbols now costs 5000 BTS instead of 500 BTS

Fix bug with random shuffling of delegate production round order

Many other market engine fixes

Project repository now has nested git submodules; use git submodule update –init –recursive when building

New wallet contact and approval handling API (see below for API changes)

Wallet accounts, contacts, and approvals are now three distinct types of records in the wallet

Fix bug where active keys could not be regenerated from owner keys using wallet_regenerate_keys

Fix incorrect output of blockchain_get_account_public_balance in some cases

Fix incorrect recording of market history in some cases

Fix bug where RPC ID was erroneously cached

API changes

Removed:

blockchain_is_synced

blockchain_get_security_state

wallet_get_name

wallet_account_set_favorite

wallet_account_set_approval

wallet_add_contact_account

wallet_transfer_to_legacy_address

wallet_transfer_to_address

wallet_transfer_to_public_account

wallet_transfer_from

wallet_account_update_private_data

wallet_list_favorite_accounts

wallet_list_unregistered_accounts

wallet_list_my_accounts

wallet_get_account_public_address

wallet_remove_contact_account

wallet_check_vote_status

wallet_asset_create

wallet_asset_update

wallet_asset_issue

wallet_asset_issue_to_addresses

wallet_asset_authorize_key

Modified:

No more floats/doubles in any API inputs or outputs

blockchain_market_price_history output now separates volume into base_volume and quote_volume

Some fields in the output of blockchain_get_transaction have been removed or renamed

wallet_transfer now accepts contacts, public keys, addresses, and BTC addresses as the recipient in addition to account names

An argument has been added to wallet_create and wallet_change_passphrase to allow for optional passphrase double-verification

An argument has been added to wallet_rescan_blockchain to allow scanning synchronously

Many of the fields in any asset_record such as those returned by blockchain_get_asset have been renamed

Some of the fields in any wallet_account_record have been removed:

is_my_account

approved

is_favorite

Added:

blockchain_list_address_orders

blockchain_get_market_order

wallet_list_contacts

wallet_get_contact

wallet_add_contact

wallet_remove_contact

wallet_list_approvals

wallet_get_approval

wallet_approve

wallet_set_custom_data

wallet_mia_create

wallet_uia_create

wallet_uia_issue

wallet_uia_issue_to_addresses

wallet_uia_collect_fees

wallet_uia_update_description

wallet_uia_update_supply

wallet_uia_update_fees

wallet_uia_update_active_flags

wallet_uia_update_authority_permissions

wallet_uia_update_whitelist

Full block contents are no longer written to log files

Separate exception database has been removed

Fix memory leak

Fix some syncing bugs

Fix some crashes

Many GUI fixes/updates

Tray icon removed

Spanish translation added

Miscellaneous fixes and optimizations



source: https://github.com/BitShares/bitshares/releases/tag/bts%2F0.9.0



BitShares 0.9.0