New RPC commands: getblockhash and getblock by ...

Observe for yourself: Segwit allows 2 MB blocks in the typical scenario

Basic English explanation of the process

To demonstrate this, I take each block, figure out the average transaction size and weight, calculate how many of these segwit would allow in a block, and then measure the total sizes of them.
Because the generation transaction is inherently unusual, and few transactions make too small a sample size to be meaningful, I exclude blocks with fewer than 16 transactions (ie, empty blocks).
Finally, I take the average of these segwit block sizes.

The result

25th pct: 1807737 Average: 1890429.153079902 90th pct: 2062659 Largest: 2816041 
Yes, 1.890429 MB is close enough that I'm going to round it up to 1.9 MB or even 2 MB considering the Notes below.

How to reproduce this

Note I do all this stuff on Linux. If you don't know how to use Linux yet, get a Raspberry Pi and learn. ;)
1. Build custom bitcoind to calculate max segwit block sizes.
Apply this patch to your bitcoin code and recompile:
curl https://gist.githubusercontent.com/luke-j62435b3fb80fcf9c12a4629be02c5861/raw/e7baefecff05322277773410ec5e841164a54bcb/segwit_equiv_hack.diff | patch -p1 make 
2. Generate table of max segwit block sizes.
[Re]start your custom bitcoind, and for each block, print its height, block hash, max segwit block size, and transaction count.
first_block=412404 last_block=465000 while [ $first_block -le $last_block ]; do blkhash=$(bitcoin-cli getblockhash $first_block); echo "$first_block $blkhash $(bitcoin-cli getblock $blkhash | python -c 'import json, sys; j = json.load(sys.stdin); print("%d %d" % (j["segwit_equiv_hack"], len(j["tx"])))')"; let first_block=first_block+1; done > data 
This is looking at the last 1 year of blocks.
3. Calculate average (and other stats) of statistically-useful max segwit block sizes.
Save this Python script to a file, then run it: python size_statistics.py < data

Notes

  1. These statistics are assuming every single block is full, and with the same ratio of spam/non-spam as presently. In a less extreme scenario, if a block maxed out at 1.8 MB, the 200k of transactions left would simply get mined in a 2.2+ MB block instead since the average block size wouldn't be the average filled block size.
  2. The network currently does not have any Lightning or sidechain usage yet. It is likely these will weigh heavier on witness data, and thereby expand the block sizes further, possibly even hitting 3 MB.
submitted by luke-jr to Bitcoin [link] [comments]

PIVX Core Wallet 3.0.5 final release (November 13th, 2017) - Mandatory Upgrade

Github release link
Forum Post

Important Notes

Upgrade instructions

1- Download the appropriate release for your platform from the Github release link. For command line installs/updates this link may help.
2- Start up your client and see if you are on the wrong chain by using this link (Am I forked?) or manually comparing your latest block hash against the [block explorer](www.presstab.pw/phpexplorePIVX/index.php#)
3- If you are on the correct chain, let it fully sync (or as far as it will go) and then repeat step 2. If you are still on the right chain move on to step 4. If you're on the wrong chain, download the chainstate from this link (mirror) and follow the instructions to install it. Do NOT delete wallet.dat or your backups folder. Once this is done, restart your client and let it finish syncing
  1. stop your wallet and/or daemon
  2. locate the folder with the blockchain folders (usually ~/.pivx/)
  3. do a complete(!) backup of this folder in case something goes wrong
  4. completely remove the folders "blocks", "chainstate", "sporks" and "zerocoin"
  5. download one of the snapshot-files (preferably the newest one) above into this folder
  6. unpack the snapshot file: 'unzip '
  7. the folders deleted above are now replaced by the ones from the snapshot
  8. restart your wallet and/or daemon
4- On this step you should be fully synced and on the right chain. Using the debug screen or pivx-cli, use the command
spork show 
to output your spork status. Have a look at spork 16 and make sure the value is 1510179528 (now 1609459199). If it is, go ahead and start staking.
If you are having trouble getting the correct value for spork 16, try adding nodes to your pivx.conf file that are protocol 70912. A list of 70912 nodes can be found at http://www.presstab.pw/phpexplorePIVX/nodes.php . This can be done from the debug menu or with pivx-cli by saying
addnode 123.45.67.89 add 

Notable Changes

libzerocoin Exploit Fix

zPIV relies on a 3rd party library called libzerocoin. All currencies that utilize the zerocoin protocol use libzerocoin, and many of those currencies have been exposed to an exploit which allowed for the creation of multiple zero-knowledge spending proofs for one single zerocoin mint. The PIVX developers were able properly identify the exploit, track down any fraudulent spending proofs, link the fraudulent spending proofs with their one valid proof that they were mutated from, and remove any mints from the accumulators that were derived from the invalid spends.

zPIV Maintenance Mode Spork

Handling the above noted libzerocoin exploit required the PIVX team to immediately release a patched wallet to as many users as possible which rejected bad spends and also disabled all zPIV transactions in general. The process of releasing a patched wallet in such a small time frame is frustrating and difficult for all members of the PIVX team and especially users of PIVX. The PIVX developers have added a new spork which allows for zPIV transacting to be turned on/off without having to release a patched wallet. This will allow much smoother operation if any problems occur in the future, and should also allow exchanges and 3rd party services to continue to operate even if zPIV is in maintenance mode.

Accumulator Code Refactor

The zPIV accumulator code has undergone a major refactor. Accumulators are one of the most essential components of the zerocoin protocol, and also one of the most computationally expensive parts of the protocol. This refactoring speeds up syncing and spending of zPIV by over 5x. The new code also allows for spending of zPIV with only 2 required mints occurring on the network after your mint has been added, whereas before 3 were required. This refactor allows for lighter resource load and a smoother user experience.

Money Supply Indexing

The exploit in libzerocoin threw off some of the wallet's internal money supply calculations for both the zPIV supply and the PIV supply. User's wallet's will automatically recalculate the supply on block 908001. User's also have the ability to recalculate supply using the startup flag reindexmoneysupply.

More Extensive Tracking of zPIV Supply Through RPC

More information has been added to the getinfo and getblock RPC calls, which now display the total zPIV supply as well as the balance for each zPIV accumulator.

Multisig GUI

Provides functionality which is currently only available through raw transactions. Multisignature addresses require signatures from multiple parties before coins belonging to the address are spent. Accessed through the File dropdown menu.

Credits

FAQ

  • Will I lose piv or zpiv?
    • No. Backup your wallet.dat again for good measure and never delete a wallet.dat file.
  • My wallet is stuck on block ?
    • Check if you're forked (Am I forked?) and then check if you're really on v3.0.5. If you're on the right version and chain, just hang tight and your wallet will find a good node to sync with eventually. Contact support if it's more than a few hours and the problem persists
  • My zPIV balance is incorrect
    • Contact support in discord or via the Support Portal. Please note that during the upgrade period and zerocoin maintenance mode there may be delays.
submitted by turtleflax to pivx [link] [comments]

11. Exploring blocks Visualizing Bitcoin Blockchain Block Hashes A perfect Bitcoin Q&A: Block height, syncing, and validation REMOVE WRINKLES, GET INSTANT FACE LIFT NATURALLY, MOUTH ...

gavinandresen merged 1 commit into bitcoin: master from gavinandresen: getblock Jan 3, 2012 Conversation 4 Commits 1 Checks 0 Files changed Conversation Bitcoin network patched against DDoS attacks. Bitcoin (BTC) enthusiasts have had a short, but worrisome, period since the recent discovery of a flaw that has been making it vulnerable to DDoS attacks. However, the Bitcoin Core team was quick to respond, and the newly-released patch has strengthened the network. The getblock patch was needed for older versions of bitcoin-qt because until bitcoin-qt 0.8.X support was missing for getting raw block data. Unfortunately the output format and RPC API for getblock in bitcoin-qt 0.8.X is substantially different from the output format produced by the older patched bitcoin-qt, which means blockexplorer still depends on the old patched bitcoind. Compatibility. Bitcoin Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.8+, and Windows Vista and later. Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.

[index] [30903] [40860] [3923] [5377] [49716] [21183] [32573] [1949] [47356] [34098]

11. Exploring blocks

One of the common complaints with Bitcoin is that it’s pretty hard to get started, and there’s a lot of overhead to making accounts and sending transactions.... Tips for Small Bitcoin Miners to Maximize Their Advantages - Duration: 26:55. Block Operations 92,880 views. 26:55 . Gigabyte GA-Z87X-D3H Z87 Motherboard Overview - Newegg TV - Duration: 9:53 ... bitcoin là gì bitcoin lottery ... What is a Patch Panel? Do You Need One? - Duration: 17:01. Budget Nerd Recommended for you. 17:01. Getting Started with Open Broadcaster Software OBS - Duration ... What is the purpose of the getblock command? Why would you need to know the block height? How do I see the balances of other addresses? Why can't we download a pre-synced copy of the blockchain ... How To Create Bitcoin Account - How to Make BlockChain Account - How to Make Coinbase Account #bitcoin #Blockchain #Coinbase.

#