Satoshi Client Sockets and Messages - Bitcoin Wiki

[META] New to PC Building? - September 2018 Edition

Intro

You've heard from all your gaming friends/family or co-workers that custom PCs are the way to go. Or maybe you've been fed up with your HP, Dell, Acer, Gateway, Lenovo, etc. pre-builts or Macs and want some more quality and value in your next PC purchase. Or maybe you haven't built a PC in a long time and want to get back into the game. Well, here's a good place to start.

Instructions

  1. Make a budget for your PC (e.g., $800, $1000, $1250, $1500, etc.).
  2. Decide what you will use your PC for.
    • For gaming, decide what games and at what resolution and FPS you want to play at.
    • For productivity, decide what software you'll need and find the recommended specs to use those apps.
    • For a bit of both, your PC build should be built on the HIGHEST specs recommended for your applications (e.g., if you only play FortNite and need CPU power for CFD simulations, use specs recommended for CFD).
    Here are some rough estimates for builds with entirely NEW parts:
    1080p 60FPS ultra-settings modern AAA gaming: ~$1,200
    1440p 60FPS high/ultra-settings modern AAA gaming: ~$1,600
    1080p 144FPS ultra-settings modern AAA gaming: $2,000
    4K 50FPS medium/high-settings modern AAA gaming: > $2,400
    It's noted that some compromises (e.g., lower settings and/or resolution) can be made to achieve the same or slightly lower gaming experience within ±15% of the above prices. It's also noted that you can still get higher FPS on older or used PCs by lowering settings and/or resolution AND/OR buying new/used parts to upgrade your system. Make a new topic about it if you're interested.
    Also note that AAA gaming is different from e-sport games like CSGO, DOTA2, FortNite, HOTS, LoL, Overwatch, R6S, etc. Those games have lower requirements and can make do with smaller budgets.
  3. Revise your budget AND/OR resolution and FPS until both are compatible. Compare this to the recommended requirements of the most demanding game on your list. For older games, you might be able to lower your budget. For others, you might have to increase your budget.
    It helps to watch gaming benchmarks on Youtube. A good example of what you're looking for is something like this (https://www.youtube.com/watch?v=9eLxSOoSdjY). Take note of the resolution, settings, FPS, and the specs in the video title/description; ask yourself if the better gaming experience is worth increasing your budget OR if you're okay with lower settings and lowering your budget. Note that you won't be able to see FPS higher than 60FPS for Youtube videos; something like this would have to be seen in-person at a computer shop.
  4. Make a build on https://ca.pcpartpicker.com/. If you still have no idea how to put together parts, start here (http://www.logicalincrements.com/) to get an understanding of PC part tiers. If you want more info about part explanations and brief buying tips, see the next section below.
  5. Click on the Reddit logo button next to Markup, copy and paste the generated text (in markup mode if using new Reddit), and share your build for review!
  6. Consider which retailer to buy your parts from. Here's a table comparing different retailers: https://docs.google.com/spreadsheets/d/1L8uijxuoJH4mjKCjwkJbCrKprCiU8CtM15mvOXxzV1s/edit?usp=sharing
  7. Buy your parts! Use PCPP above to send you e-mail alerts on price drops or subscribe to /bapcsalescanada for deals.
    You can get parts from the following PC retailers in alphabetical order:
  8. After procuring your parts, it's time to build. Use a good Youtube tutorial like this (https://www.youtube.com/watch?v=IhX0fOUYd8Q) that teach BAPC fundamentals, but always refer to your product manuals or other Youtube tutorials for part-specific instructions like CPU mounting, radiator mounting, CMOS resetting, etc. If it everything still seems overwhelming, you can always pay a computer shop or a friend/family member to build it for you.
    It might also be smart to look up some first-time building mistakes to avoid:
  9. Share your experience with us.
  10. If you have any other questions, use the search bar first. If it's not there, make a topic.

BAPC News (Last Updated - 2018/09/20)

CPU

https://www.tomshardware.com/news/intel-9000-series-cpu-faq,37743.html
Intel 9000 CPUs (Coffee Lake Refresh) will be coming out in Q4. With the exception of i9 (8-core, 12 threads) flagship CPUs, the i3, i5, and i7 lineups are almost identical to their Intel 8000 (Coffee Lake) series, but slightly clocked faster. If you are wondering if you should upgrade to the newer CPU on the same tier (e.g., i5-8400 to i5-9400), I don't recommend that you do as you will only see marginal performance increases.

Mobo

https://www.anandtech.com/show/13135/more-details-on-intels-z390-chipset-exposed
Z370s will now be phased out for Z390s boards, which will natively support Intel 9000 CPUs (preferably i5-9600K, i7-9700K, and i9-9900K).

GPU

https://www.youtube.com/watch?v=WDrpsv0QIR0
RTX 2080 and 2080 Ti benchmarks are out; they provide ~10 and ~20 frames better than the 1080 Ti and also feature ray tracing (superior lighting and shadow effects) which is featured in only ~30 games so far (i.e., not supported a lot); effectively, they provide +25% more performance for +70% increased cost. My recommendation is NOT to buy them unless you need it for work or have lots of disposable income. GTX 1000 Pascal series are still relevant in today's gaming specs.

Part Explanations

CPU

The calculator part. More GHz is analogous to fast fingers number crunching in the calculator. More cores is analogous to having more calculators. More threads is analogous to having more filing clerks piling more work for the calculator to do. Microarchitectures (core design) is analogous to how the internal circuit inside the calculator is designed (e.g., AMD FX series are slower than Intel equivalents even with higher OC'd GHz speeds because the core design is subpar). All three are important in determining CPU speed.
In general, higher GHz is more important for gaming now whereas # cores and threads are more important for multitasking like streaming, video editing, and advanced scientific/engineering computations. Core designs from both AMD and Intel in their most recent products are very good now, but something to keep in mind.

Overclocking

The basic concept of overclocking (OCing) is to feed your CPU more power through voltage and hoping it does calculations faster. Whether your parts are good overclockers depends on the manufacturing process of your specific part and slight variations in materials and manufacturing process will result in different overclocking capability ("silicon lottery"). The downside to this is that you can void your warranties because doing this will produce excess heat that will decrease the lifespan of your parts AND that there is a trial-and-error process to finding OC settings that are stable. Unstable OC settings result in computer freezes or random shut-offs from excess heat. OCing will give you extra performance often for free or by investing in a CPU cooler to control your temperatures so that the excess heat will not decrease your parts' lifespans as much. If you don't know how to OC, don't do it.

Current Products

Intel CPUs have higher GHz than AMD CPUs, which make them better for gaming purposes. However, AMD Ryzen CPUs have more cores and threads than their Intel equivalents. The new parts are AMD Ryzen 3, 5, or 7 2000 series or Intel i3, i5, or i7 8000 series (Coffee Lake). Everything else is outdated.
If you want to overclock on an AMD system, know that you can get some moderate OC on a B350/B450 with all CPUs. X370/X470 mobos usually come with better VRMs meant for OCing 2600X, 2700, and 2700X. If you don't know how to OC, know that the -X AMD CPUs have the ability to OC themselves automatically without manually settings. For Intel systems, you cannot OC unless the CPU is an unlocked -K chip (e.g., i3-8350K, i5-8600K, i7-8700K, etc.) AND the motherboard is a Z370 mobo. In general, it is not worth getting a Z370 mobo UNLESS you are getting an i5-8600K and i7-8700K.

CPU and Mobo Compatibility

Note about Ryzen 2000 CPUs on B350 mobos: yes, you CAN pair them up since they use the same socket. You might get an error message on PCPP that says that they might not be compatible. Call the retailer and ask if the mobo you're planning on buying has a "Ryzen 2000 Series Ready" sticker on the box. This SHOULD NOT be a problem with any mobos manufactured after February 2018.
Note about Intel 9000 CPUs on B360 / Z370 mobos: same as above with Ryzen 2000 CPUs on B350 or X370 boards.

CPU Cooler (Air / Liquid)

Air or liquid cooling for your CPU. This is mostly optional unless heavy OCing on AMD Ryzen CPUs and/or on Intel -K and i7-8700 CPUs.
For more information about air and liquid cooling comparisons, see here:

Motherboard/mobo

Part that lets all the parts talk to each other. Comes in different sizes from small to big: mITX, mATX, ATX, and eATX. For most people, mATX is cost-effective and does the job perfectly. If you need more features like extra USB slots, go for an ATX. mITX is for those who want a really small form factor and are willing to pay a premium for it. eATX mobos are like ATX mobos except that they have more features and are bigger - meant for super PC enthusiasts who need the features.
If you are NOT OCing, pick whatever is cheap and meets your specs. I recommend ASUS or MSI because they have RMA centres in Canada in case it breaks whereas other parts are outside of Canada like in the US. If you are OCing, then you need to look at the quality of the VRMs because those will greatly influence the stability and lifespan of your parts.

Memory/RAM

Part that keeps Windows and your software active. Currently runs on the DDR4 platform for new builds. Go for dual channel whenever possible. Here's a breakdown of how much RAM you need:
AMD Ryzen CPUs get extra FPS for faster RAM speeds (ideally 3200MHz) in gaming when paired with powerful video cards like the GTX 1070. Intel Coffee Lake CPUs use up a max of 2667MHz for B360 mobos. Higher end Z370 mobos can support 4000 - 4333MHz RAM depending on the mobo, so make sure you shop carefully!
It's noted that RAM prices are highly inflated because of the smartphone industry and possibly artificial supply shortages. For more information: https://www.extremetech.com/computing/263031-ram-prices-roof-stuck-way

Storage

Part that store your files in the form of SSDs and HDDs.

Solid State Drives (SSDs)

SSDs are incredibly quick, but are expensive per TB; they are good for booting up Windows and for reducing loading times for gaming. For an old OEM pre-built, upgrading the PC with an SSD is the single greatest speed booster you can do to your system. For most people, you want to make sure the SSD you get is NOT DRAM-less as these SSDs do not last as long as their DRAM counterparts (https://www.youtube.com/watch?v=ybIXsrLCgdM). It is also noted that the bigger the capacity of the SSD, the faster they are. SSDs come in four forms:
The 2.5" SATA form is cheaper, but it is the old format with speeds up to 550MB/s. M.2 SATA SSDs have the same transfer speeds as 2.5" SATA SSDs since they use the SATA interface, but connect directly to the mobo without a cable. It's better for cable management to get an M.2 SATA SSD over a 2.5" SATA III SSD. M.2 PCI-e SSDs are the newest SSD format and transfer up to 4GB/s depending on the PCI-e lanes they use (e.g., 1x, 2x, 4x, etc.). They're great for moving large files (e.g., 4K video production). For more info about U.2 drives, see this post (https://www.reddit.com/bapccanada/comments/8jxfqs/meta_new_to_pc_building_may_2018_edition/dzqj5ks/). Currently more common for enterprise builds, but could see some usage in consumer builds.

Hard Disk Drives (HDDs)

HDDs are slow with transfer speeds of ~100MB/s, but are cheap per TB compared to SSDs. We are now at SATA III speeds, which have a max theoretical transfer rate of 600MB/s. They also come in 5400RPM and 7200RPM forms. 5400RPM uses slightly less power and are cheaper, but aren't as fast at dealing with a large number of small files as 7200RPM HDDs. When dealing with a small number of large files, they have roughly equivalent performance. It is noted that even a 10,000RPM HDD will still be slower than an average 2.5" SATA III SSD.

Others

SSHDs are hybrids of SSDs and HDDs. Although they seem like a good combination, it's much better in all cases to get a dedicated SSD and a dedicated HDD instead. This is because the $/speed better for SSDs and the $/TB is better for HDDs. The same can be said for Intel Optane. They both have their uses, but for most users, aren't worth it.

Overall

I recommend a 2.5" or M.2 SATA ≥ 250GB DRAM SSD and a 1TB or 2TB 7200RPM HDD configuration for most users for a balance of speed and storage capacity.

Video Card/GPU

Part that runs complex calculations in games and outputs to your monitor and is usually the most expensive part of the budget. The GPU you pick is dictated by the gaming resolution and FPS you want to play at.
In general, all video cards of the same product name have almost the same non-OC'd performance (e.g., Asus Dual-GTX1060-06G has the same performance as the EVGA 06G-P4-6163-KR SC GAMING). The different sizes and # fans DO affect GPU OCing capability, however. The most important thing here is to get an open-air video card, NOT a blower video card (https://www.youtube.com/watch?v=0domMRFG1Rw). The blower card is meant for upgrading pre-builts where case airflow is limited.
For cost-performance, go for the NVIDIA GTX cards because of the cryptomining industry that has inflated AMD RX cards. Bitcoin has taken a -20% hit since January's $10,000+ as of recently, but the cryptomining industry is still ongoing. Luckily, this means prices have nearly corrected itself to original MSRP in 2016.
In general:
Note that if your monitor has FreeSync technology, get an AMD card. If your monitor has G-Sync, get a NVIDIA card. Both technologies allow for smooth FPS gameplay. If you don't have either, it doesn't really matter which brand you get.
For AMD RX cards, visit https://www.pcworld.com/article/3197885/components-graphics/every-amd-radeon-rx-graphics-card-you-can-buy-for-pc-gaming.html

New NVIDIA GeForce RTX Series

New NVIDIA 2000 RTX series have been recently announced and will be carried in stores in Q3 and Q4. Until all of the products have been fully vetted and reviewed, we cannot recommend those yet as I cannot say if they are worth what NVIDIA has marketed them as. But they will be faster than their previous equivalents and will require more wattage to use. The 2070, 2080, and 2080 Ti will feature ray tracing, which is a new feature seen in modern CG movies that greatly enhances lighting and shadow effects. At this time, < 30 games will use ray tracing (https://www.pcgamer.com/21-games-will-support-nvidias-real-time-ray-tracing-here-are-demos-of-tomb-raider-and-control/). It's also noted that the 2080 Ti is the Titan XP equivalent, which is why it's so expensive. (https://www.youtube.com/watch?v=Irs8jyEmmPQ) The community's general recommendation is NOT to pre-order them until we see some reviews and benchmarks from reviewers first.
Looks like a couple of benchmarks are out. While keeping other parts equal the following results were obtained(https://videocardz.com/77983/nvidia-geforce-rtx-2080-ti-and-rtx-2080-official-performance-unveiled). So the 2080 and 2080 Ti are better than last generation's 1080 Ti by ~10 and ~20 frames respectively.

Case

Part that houses your parts and protects them from its environment. Should often be the last part you choose because the selection is big enough to be compatible with any build you choose as long as the case is equal to or bigger than the mobo form factor.
Things to consider: aesthetics, case airflow, cable management, material, cooling options (radiators or # of fan spaces), # fans included, # drive bays, toolless installation, power supply shroud, GPU clearance length, window if applicable (e.g., acrylic, tempered glass), etc.
It is recommended to watch or read case reviews on Youtube to get an idea of a case's performance in your setup.

Power Supply/PSU

Part that runs your PC from the wall socket. Never go with an non-reputable/cheap brand out on these parts as low-quality parts could damage your other parts. Recommended branded PSUs are Corsair, EVGA, Seasonic, and Thermaltake, generally. For a tier list, see here (https://linustechtips.com/main/topic/631048-psu-tier-list-updated/).

Wattage

Wattage depends on the video card chosen, if you plan to OC, and/or if you plan to upgrade to a more powerful PSU in the future. Here's a rule of thumb for non-OC wattages that meet NVIDIA's recommendations:
There are also PSU wattage calculators that you can use to estimate your wattage. How much wattage you used is based on your PC parts, how much OCing you're doing, your peripherals (e.g., gaming mouse and keyboard), and how long you plan to leave your computer running, etc. It is noted that these calculators use conservative estimates, so use the outputted wattage as a baseline of how much you need. Here are the calculators (thanks, VitaminDeity).
Pick ONE calculator to use and use the recommended wattage, NOT recommended product, as a baseline of what wattage you need for your build. Note that Cooler Master and Seasonic use the exact calculator as Outervision. For more details about wattage, here are some reference videos:

Modularity

You might also see some info about modularity (non-modular, semi-modular, or fully-modular). These describe if the cables will come connected to the PSU or can be separated of your own choosing. Non-modular PSUs have ALL of the cable connections attached to the PSU with no option to remove unneeded cables. Semi-modular PSUs have separate cables for HDDs/SSDs and PCI-e connectors, but will have CPU and mobo cables attached. Modular PSUs have all of their cables separate from each other, allowing you to fully control over cable management. It is noted that with decent cooling and airflow in your case, cable management has little effect on your temperatures (https://www.youtube.com/watch?v=YDCMMf-_ASE).

80+ Efficiency Ratings

As for ratings (80+, 80+ bronze, 80+ gold, 80+ platinum), these are the efficiencies of your PSU. Please see here for more information. If you look purely on electricity costs, the 80+ gold PSUs will be more expensive than 80+ bronze PSUs for the average Canadian user until a breakeven point of 6 years (assuming 8 hours/day usage), but often the better performance, longer warranty periods, durable build quality, and extra features like fanless cooling is worth the extra premium. In general, the rule of thumb is 80+ bronze for entry-level office PCs and 80+ gold for mid-tier or higher gaming/workstation builds. If the price difference between a 80+ bronze PSU and 80+ gold PSU is < 20%, get the 80+ gold PSU!

Warranties

Warranties should also be looked at when shopping for PSUs. In general, longer warranties also have better PSU build quality. In general, for 80+ bronze and gold PSU units from reputable brands:
Any discrepancies are based on varied wattages (i.e., higher wattages have longer warranties) or updated warranty periods. Please refer to the specific product's warranty page for the correct information. For EVGA PSUs, see here (https://www.evga.com/support/warranty/power-supplies/). For Seasonic PSUs, see here (https://seasonic.com/support#period). For Corsair PSUs, see here (https://www.corsair.com/ca/en/warranty).
For all other PSU inquiries, look up the following review sites for the PSUs you're interested in buying:
These guys are engineering experts who take apart PSUs, analyze the quality of each product, and provide an evaluation of the product. Another great website is http://www.orionpsudb.com/, which shows which PSUs are manufactured by different OEMs.

Operating System (OS)

Windows 10

The most common OS. You can download the ISO here (https://www.microsoft.com/en-ca/software-download/windows10). For instructions on how to install the ISO from a USB drive, see here (https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/install-windows-from-a-usb-flash-drive) or watch a video here (https://www.youtube.com/watch?v=gLfnuE1unS8). For most users, go with the 64-bit version.
If you purchase a Windows 10 retail key (i.e., you buy it from a retailer or from Microsoft directly), keep in mind that you are able to transfer it between builds. So if you're building another PC for the 2nd, 3rd, etc. time, you can reuse the key for those builds PROVIDED that you deactivate your key before installing it on your new PC. These keys are ~$120.
However, if you have an OEM key (e.g., pre-builts), that key is tied specifically to your mobo. If you ever decide to upgrade your mobo on that pre-built PC, you might have to buy a new Windows 10 license. For more information, see this post (https://www.techadvisor.co.uk/feature/windows/windows-10-oem-or-retail-3665849/). The cheaper Windows 10 keys you can find on Kinguin are OEM keys; activating and deactivating these keys may require phoning an automated Microsoft activation line. Most of these keys are legitimate and cost ~$35, although Microsoft does not intend for home users to obtain this version of it. Buyer beware.
The last type of key is a volume licensing key. They are licensed in large volumes to corporate or commercial usage. You can find lots of these keys on eBay for ~$10, but if the IT department who manages these keys audit who is using these keys or if the number of activations have exceeded the number allotted on that one key, Microsoft could block that key and invalidate your license. Buyer beware.
For more information on differentiating between all three types of keys, see this page (https://www.tenforums.com/tutorials/49586-determine-if-windows-license-type-oem-retail-volume.html).
If money is tight, you can get Windows 10 from Microsoft and use a trial version of it indefinitely. However, there will be a watermark in the bottom-right of your screen until you activate your Windows key.

MacOS

If you're interested in using MacOS, look into Hackintosh builds. This will allow you to run MacOS to run on PC parts, saving you lots of money. These builds are pretty picky about part compatibility, so you might run into some headaches trying to go through with this. For more information, see the following links:

Linux

If you're interested in a free open-source OS, see the following links:
For more information, go to /linux, /linuxquestions, and /linux4noobs.

Peripherals

Monitors

Keyboards and Mice

Overall

Please note that the cost-performance builds will change daily because PC part prices change often! Some builds will have excellent cost-performance one day and then have terrible cost-performance the next. If you want to optimize cost-performance, it is your responsibility to do this if you go down this route!
Also, DO NOT PM me with PC build requests! It is in your best interests to make your own topic so you can get multiple suggestions and input from the community rather than just my own. Thanks again.

Sample Builds

Here are some sample builds that are reliable, but may not be cost-optimized builds. These builds were created on September 9, 2018; feel free to "edit this part list" and create your own builds.

Links

Helpful links to common problems below:

Contributors

Thanks to:

Housekeeping

2019/09/22
2019/09/18
Updates:
2019/09/09
Updates:
Sorry for the lack of updates. I recently got a new job where I work 12 hours/day for 7 days at a time out of the city. What little spare time I have is spent on grad school and the gym instead of gaming. So I've been pretty behind on the news and some might not be up-to-date as my standards would have been with less commitments. If I've made any mistakes, please understand it might take a while for me to correct them. Thank you!
submitted by BlackRiot to bapccanada [link] [comments]

BitN00B: Help with Python/JSON call : getNewAddress(account) - fail

When making a JSON call, RPC to bitcoind, what is "account" parameter in getNewAddress(account).
Does anyone have actual code to demo this? This is frustrating given how much time I have spent ( a day ),
trying to get this to work in code, trying different things, googling all over, following things to a dead end.

In my Bitcoin QT, I see no reference to "account", I don't know what to put there as a parameter.

Reference:
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list#Full_list

If I leave it blank, or I make up something to put there, I get a socket timeout.
I can successfully call: getblockchaininfo() (no params), and a few others with no socket timeout, but not getNewAddress. Anything and everything requiring a parameter fails.
--
Also if anyone can help, I please need a clear concise example of sending a transaction. I can find no good code examples on how to create a raw transaction and send with any Python/RPC/Bitcoind library out there. None. It should not take more than a few lines of code to send a transaction.
  1. set variables in a data structure
  2. make a call to send the transaction (that's it). The library will take params from the data structure, construct a raw transaction, convert that raw transaction to the format it needs when sending over http (json/rpc), as it does and I understand it to work that way.
    I would like to have the raw transaction printed out to debug, both raw transaction and the actual hex code that is sent.
    Thank You,
    JC
submitted by ThisCryptoFail to Bitcoin [link] [comments]

[Wednesday, 20. March]

World News

German Politicians Call Trump's Ambassador A 'Brat' And 'Total Diplomatic Failure,' Demand Immediate Expulsion
Comments | Link
Man who tackled 'Eggboy' has outstanding warrant on charges relating to church incident
Comments | Link
Canada's oldest rape crisis centre stripped of city funding for refusing to accept trans women.
Comments | Link

All news, US and international.

Accused gunman in Christchurch terror attacks denied newspaper, television and radio access
Comments | Link
Police raid store in North Texas and remove all CBD related products
Comments | Link
More than half of Nowata County deputies resigned after refusing to open jail due to safety issues
Comments | Link

Science

Doing just 10 min to 1 hour of leisure time physical activity such as dancing, walking, or gardening each week is associated with an 18 percent lower risk of death. All exercise, even the smallest, easiest amount, can have lasting benefits.
Comments | Link
Medical marijuana laws could be improving older Americans’ health and labor supply, according to a new study that examined older Americans’ well-being before and after medical marijuana laws were passed in their state, which found reductions in reported pain and increased hours worked.
Comments | Link
People care more about dogs than cats (they receive more vet care and premium foods) because of a sense of psychological ownership (the idea of control) as dogs are more controllable than cat, suggests a new study titled “Dogs have masters, cats have staff”, but not if the dog acts like a cat.
Comments | Link

Technology

Firefox now blocks auto playing audio and video
Comments | Link
EU regulators hit Google with €1.49 billion/US$1.7 billion fine for blocking ad rivals
Comments | Link
Kickstarter’s staff is unionizing
Comments | Link

Sadly, this is not the Onion.

Alligators were given ketamine and headphones to study dinosaur hearing
Comments | Link
20 Cops Disciplined For Eating Firefighters' Snacks
Comments | Link
Move over Bitcoin, criminals are using V-Bucks in Fortnite to launder money.
Comments | Link

Ask Reddit...

You can have $2,000,000, but your worst enemy gets $10,000,000. Would you accept it? Why or why not?
Comments
Redditors who own multiple pets: what’s the drama going on amongst them right now?
Comments
What's your "I met a celebrity but didn't let on that I knew who they were" story?
Comments

Sysadmin

I hate oncall.
Comments
Be careful letting domains expire/go into "Grace" period on Namecheap!
Comments
About to break, crash, and burn
Comments

Microsoft SQL Server

How to remove duplicate values in one table, based off values in another table?
Comments
Insert last ID from other table
Comments
Help - combine statement outputs to a single temporary table
Comments

PowerShell

PSA: KB4489894 causing PowerShell Studio DPI Issues
Comments
Email Password Expire Notice Help
Comments
Probably making a stupid error but having trouble with string matching in an If statement.
Comments

Functional 3D Printing

Not too complex, but it's my first proper functional print (details in comments)
Comments | Link
Made in a hurry, but this little guy has kept our storm door shut since we moved in three years ago!
Comments | Link
Couldn't find socket.
Comments | Link

Data Is Beautiful

World population distribution by latitude and longitude - video [OC]
Comments | Link
[OC] Drug overdose death rates by state (2018 data)
Comments | Link
Commuting in Ireland [OC]
Comments | Link

Today I Learned (TIL)

TIL that of the 5000 or so species of mammals on the planet only female humans have permanent breasts.
Comments | Link
TIL When a poacher’s snare killed one of their own, two young gorillas teamed up to find and dismantle traps in their Rwandan forest home. They saw what they had to do, they did it then moved to dismantle next trap.
Comments | Link
TIL of Si Kaddour Benghabrit, the rector of the Great Mosque of Paris who helped over 500 Jews disguise themselves as Muslims by making the administrative staff grant them certificates of Muslim identity, which allowed them to avoid arrest and deportation.
Comments | Link

So many books, so little time

I just finished reading 'The Little Prince' (by Antoine de Saint-Exupery) and I have never found any book that has left such a deep impression upon me.
Comments
Reading is my addiction.
Comments
I posted in stephenking about my stolen book collection, and a stranger sent me a book to help me rebuild. The reading/SK community is amazing❤
Comments

OldSchoolCool: History's cool kids, looking fantastic

My grandmother in the first store she opened in 1957. She went on to 8 more supermarkets. She created a business that lasted 49 years.
Comments | Link
Scilla Gabel, Italian actress and Sophia Loren’s body double, 1957.
Comments | Link
I never knew my uncle because he died the year before I was born. I just learned they keep a picture of him at the headquarters of where he worked ski patrol. 1970s
Comments | Link

aviation

Too close for comfort
Comments | Link
This 747-sized Pingu for a Swissair promotional campaign.
Comments | Link
Iron Maiden! One of my favorite pics I’ve taken, at TUL 02/26/2016
Comments | Link

Reddit Pics

Resignation letter of Nowata County, Oklahoma sheriff Terry Barnett, after a judge ordered her to reopen an unsafe jail with near-lethal carbon monoxide and exposed wiring.
Comments | Link
I paint everyday for roughly 8 hours, because I am so god damn determined to make a career out of it. Here’s my latest. “Inevitable” oil on canvas
Comments | Link
Another trashtag challenge completed by the students in Nepal. 🇳🇵
Comments | Link

.gifs - funny, animated gifs for your viewing pleasure

Sophie Turner: LEGEND
Comments | Link
Guy realizes he's on a live news broadcast, starts dancing
Comments | Link
Cat short circuits from the cheese challenge
Comments | Link

A subreddit for cute and cuddly pictures

The correct way to wake up a dog
Comments | Link
When you finally decide enough is enough.
Comments | Link
Making use of the dog's fur.
Comments | Link
submitted by DangerDylan to DangerDylanTLDR [link] [comments]

High Frequency Trading in Bitcoin Exchanges

High Frequency Trading in Bitcoin Exchanges
Introduction
In this post I analyze the presence and activity of high frequency trading in a Bitcoin exchange. Since to date this markets are extremely unregulated, such behaviour takes places with little to no constraint. I show how over 99% of orders placed are not meant to be filled, but instead to distort the perception of the market. In addition, I try to spot common HFT strategies, such as Quote Spoofing, Layering and Momentum ignition. Given the anonymous nature of these exchanges these last results are to some extent subjective. (FMZ.COM)
What is High Frequency Trading?
From Wikipedia [1], High-frequency trading (HFT) is a type of algorithmic trading characterized by high speeds, high turnover rates, and high order-to-trade ratios that leverages high-frequency financial data and electronic trading tools.
Methodology
This analysis has been carried out with order data from the Websocket stream from GDAX, a US based digital asset exchange [2] owned by Coinbase. It is one of the largest markets (over 42 MM USD/day) [3] and it exposes a high performance socket where all orders are broadcasted. In addition, it offers some interesting features for data analysis:
Orders are timestamped (as opposed to Bitfinex, for example)
It has millisecond granularity (again, as opposed to Bitfinex) (FMZ.COM)
It says whether an order has been matched or cancelled -one could argue that disappearing orders far from the bid/ask spread must have been cancelled (and it's true), but for orders inside the spread, this information is necessary.
While data has been captured for several days (at the time of this post I'm still capturing data), for the following analysis only data from July 21, 2017 has been taken. Mind you, there are still over 2 Million datapoints. (FMZ.COM)
Since the GDAX feed does not explicitly keep information of the current best bid/ask, a little preprocessing is needed. The best bid is the highest price for currently open BUY orders, while the best ask is the lowest price for open SELL orders. Although this calculation is not complicated nor particularly slow, it's better to explicitly append the current best bid/ask as additional columns. No further preprocessing has been carried out.
Related work
While writing this article, I came across a blog post from Philip Stubbings at Parasec [4], who made a similar analysis in 2014. While the amount of data differs by orders of magnitude, the findings are the same, especially concerning flashing orders. Quoting from his site:
I collected order book event data from the Bitstamp exchange over a 4 month period, between July and October (2014), resulting in a dataset of ~33 million individual events; A minuscule dataset in comparison to the throughput on "conventional" exchanges, see (Nanex: High Frequency Quote Spam) for example. (FMZ.COM)
While the event dataset consists of ~33 million events, these events can be broken down into individual orders and their types. In total, of the identifiable order types, there were 14,619,019 individual "flashed orders" (orders added and later deleted without being hit) representing 93% of all order book activity, 707,113 "resting orders" (orders added and not deleted unless hit) and 455,825 "marketable orders" (orders that crossed the book resulting in 1 or more reported trades).
As we'll soon see in this report, I recorded 2,169,450 events in less than one day. That means, the number of events per unit of time is 8 times bigger than in 2014. Flash orders are still a majority, representing over 99% of all order book activity.

www.fmz.com

www.fmz.com

www.fmz.com
HTF Strategies (FMZ.COM)
The Bocconi Students Investment Club (BSIC) [5] describes some strategies which the HFT traders use to distort the perception of the market. For this post I'll focus on Spoofing, Layering and Momentum Ignition.
Spoofing & Layering
Quoting from BSIC [5]:
Spoofing is a strategy whereby one places limit orders, and removes them before they are executed. By spoofing limit orders, perpetrators hope to distort other trader’s perceptions of market demand and supply. As an example, a large bid limit order could be placed with the intention of being canceled before it is executed. The spoofer would then seek to benefit from prices rising as the result of false optimism others would see in the market structure.
Detection
There is evidence of high frequency spoofing on July 21, 2017 between 09:45:52 and 09:45:56. Let's take a look at the order book. Red points are SELL orders (3 BTC @ $2741.99), vertical grey lines are cancellations and the blue and green lines are bid and ask price, respectively. (FMZ.COM)
www.fmz.com
One interesting thing is that neither the bid or ask price moves.
Also from [5]:
More controversial has been the act of layering which carries many similarities to outright spoofing, but differs in that orders are placed evenly across prices with the goal of reserving an early execution priority at each given price level. If the person has no trade to execute at that price point the orders are simply removed. Despite being more benign in nature, the act of layering also distorts market demand and supply perception. (FMZ.COM)
It seems to be evidence of layering. Let's take a closer look at the minute between July 21, 2017 between 09:41:00 and 9:42:00. Orders seem to push the ASK level downwards, eventually decreasing the BID price. Next, BUY orders are placed at this lowered level, to be sold when the BID price recovers.
www.fmz.com
Momentum ignition
Still quoting [5]
Momentum ignition is a strategy in which a trader aims to cause a sharp movement in the price of a stock by using a series of trades, which indicate patterns for high frequency traders, with the motive of attracting other algorithm traders to also trade that stock. The instigator of the whole process knows that after the somewhat “artificially created” rapid price movement, the price reverts to normal and thus the trader profits by taking a position early on and eventually trading out before it fizzles out. (FMZ.COM)
To detect momentum ignition, it is important to focus on the following three main characteristics as shown in the chart below:
Stable prices and a spike in volume
A large price movement compared to the intraday volatility
Reversion to the starting price under a lower volume
The following picture from zerohedge and Credit Suisse AES Analysis illustrates this behavior. (FMZ.COM)
www.fmz.com
Conclusion (FMZ.COM)
According to an interview carried out by The Atlantic [6] to Michael Kearns of the University of Pennsylvania and Andrew Lo at MIT, this behaviour also happens in traditional trading, and its causes are still matter of dispute. Relevant extract:
[...] why would a firm engage in this behavior? Lo and Kearns offered a few theories of their own about what could be happening.
To be honest, we can't come up with a good reason," Kearns said. What's particularly difficult to explain is how diverse and prevalent the patterns are. If algorithmic traders are simply testing new bots out -- which isn't a bad explanation -- it doesn't seem plausible that they'd do it so often. Alternatively, one could imagine the patterns are generated by some set of systemic information processing mistakes, but then it might be difficult to explain the variety of the patterns.
"It's possible that the observed patterns are not malicious, in error, or for testing, but for information-gathering," Kearns observed. "One could easily imagine a HFT shop wanting to regularly examine (e.g.) the latency they experienced from the different exchanges under different conditions, including conditions involving high order volume, rapid changes in prices and volumes, etc. And one might want such information not just when getting started, but on a regular basis, since latency and other exchange properties might well be expected to change over time, exhibit seasonality of various kind, etc. The super-HFT groups might even make co-location decisions based on such benchmarks." (FMZ.COM)
References
[1]https://en.wikipedia.org/wiki/Bitfinex
[2] https://www.gdax.com/
[3] Source: https://coinmarketcap.com
[4] http://parasec.net/blog/order-book-visualisation/
[5] http://www.bsic.it/marketmanipulation/
[6] https://www.theatlantic.com/technology/archive/2010/08/explaining-bizarre-robot-stock-trader-behavio61028/
[7] https://docs.gdax.com/
submitted by Ruby-Yao to Bitcoin [link] [comments]

Bitstamp's streaming API, and exploitation possibilities it might reveal

TL;DR: Bitstamp's undocumented streaming API seems to reveal out-of-order trade execution that can be exploited to steal margins from large buys/sells.
Bitstamp has an undocumented streaming API. You should know what it seems to reveal about Bitstamp's order matching.
It's not surprising that I see trades on the stream about 10s before I see them on BitcoinWisdom etc. (I haven't compared that to the latency of direct API polling; my lag to BW and processing lag at BW's end might be included there.) That's already not fair. Bitstamp should document the stream, or delay it.
Before I tell you what is surprising, a quick detour: Bitstamp only provides limit orders. "Instant" (aka Market) orders are simulated by placing a limit order with the limit set to whatever was the top of the opposite side of the book at the time, and as anyone who has tried to trade at Bitstamp during a rally/drop will know, the top often moves before your "instant" order hits the books and therefore doesn't execute. People work around this by manually or automatically placing limit orders with limits that go beyond the top of the opposite side of the book, ensuring that they'll match something.
Suppose someone places such a limit order. Rather than lock the book until the order is matched and produces a trade, the order is placed on the book and the book is allowed to cross. People have reported here on Reddit seeing this before. That's kind of surprising, but perhaps you're thinking they ensure things still execute in order. Well, the stream I'm watching includes both order and trade events, and I typically see orders on the stream anywhere between ~2.5s and ~8s ("the window") before they match and produce a trade; if you're only trading by watching BitcoinWisdom and others, I see things happen as much as 18s ahead of you.
What properly surprises me is that within the window, if another limit order gets placed with a limit even higher than the first before the first has matched, that second order can execute before the first. An example from real stream data follows. The best ask (order_type=1) is 202.10, set by the first order creation I've included. received is added by me on receipt; the rest comes from the live stream. Some non-participating orders away from the book top have been removed for clarity.
{"received": "1383077092.151", "type": "order_created", "price": "202.10", "amount": "3.00700000", "datetime": "1383077091", "id": 8595046, "order_type": 1} {"received": "1383077095.876", "type": "order_created", "price": "221.13", "amount": "0.19825903", "datetime": "1383077095", "id": 8595048, "order_type": 0} {"received": "1383077098.420", "type": "order_created", "price": "222.65", "amount": "0.63000000", "datetime": "1383077098", "id": 8595051, "order_type": 0} {"received": "1383077100.908", "type": "order_deleted", "price": "222.65", "amount": "0.00000000", "datetime": "1383077099", "id": 8595051, "order_type": 0} {"received": "1383077100.918", "type": "order_changed", "price": "202.10", "amount": "2.37700000", "datetime": "1383077096", "id": 8595046, "order_type": 1} {"received": "1383077100.964", "type": "trade", "price": 202.09999999999999, "amount": 0.63, "id": 1698465} {"received": "1383077101.016", "type": "order_deleted", "price": "221.13", "amount": "0.00000000", "datetime": "1383077099", "id": 8595048, "order_type": 0} {"received": "1383077101.051", "type": "order_changed", "price": "202.10", "amount": "2.17874097", "datetime": "1383077096", "id": 8595046, "order_type": 1} {"received": "1383077101.063", "type": "trade", "price": 202.09999999999999, "amount": 0.19825903, "id": 1698466} 
Bid 8595048 for 0.19825903 @ 221.13 would cross the book, and should match immediately, but orders continue to be accepted and no trade appears.
Bid 8595051 for 0.63 @ 222.65 would also cross the book, but since it arrived ~2.544 seconds later — and assuming FIFO matching — it shouldn't execute until after 8595048. But it executes first. In this case, fortunately there's enough depth to the ask that both fill at the price they should, but this out-of-order execution occurs even when there isn't enough depth; I can give real examples from the stream but they make less clear examples because they tend to involve multiple fills.
Imagine that you're watching this stream and you see the FBI dump the SR coins, and that the window is wide enough for you to react. You could place a limit order that beats theirs, being sure to sell your coins before theirs crash the exchange rate.
Alternatively you could always maintain a buy order in the book, far enough away that you can maintain a constant distance from the best bid but close enough that a whale might fill it. When you see a whale's sell, you snipe a high sell by beating their limit. The whale's order then goes through and fills some other bids, and your low buy. You effectively just made a high sale and made a low buy with no risk at all. You could do this on both sides of the book at once.
Why document this instead of just taking advantage of it? I hate the idea that some traders are playing with loaded dice. If the engine has to behave in this funky way, it should be documented; ideally it should simply behave as everyone expects it to anyway. Why post under a throwaway? While I've made no attempt to exploit this, I wouldn't put it past Bitstamp to confiscate my balances and close my account; that's simpler for them than checking whether I did exploit it. (In case I choose to link this to my real account later or you need me to prove I'm me, I can provide a pre-image for e591ed9a365ad73d29dc22f10b170fff and d4bd7f9db698c81ba31ce544d2025834.) Why not report it to Bitstamp first? Bitstamp has a poor track record for addressing bugs reported in their engine, probably needs to be embarrassed into doing something, and they can easily just disable the stream. I've left stream access details undocumented, for now. EDIT: described on bitcointalk (via Pusher) as well as below (direct WebSocket access).
I'd ask Bitstamp to confirm whether they believe this is a problem, say what they plan to do about it (if anything) and I invite them to PM me here in the unlikely event that they need more info.
I'd also really like them to make their stream useable, along with a single orderbook snapshot, to maintain an accurate of the orderbook without having to make unreliable inferences — i.e. include prev_amount (or amount_delta) in order_deleted and order_changed, and also include in each trade event the order IDs that matched. Having these things would bring it towards or beyond MtGox's stream, which provides at least the remaining volume at the affected pricepoint. It'd also be lovely if the ungrouped orderbook snapshot included order IDs and could be explicitly pinned between two stream order_foo events for easier syncing (the timestamp doesn't seem to accurately match the stream's datetimes, and requires guesswork). And a pony and a winnebago and the moon on a stick.
submitted by serves-two to Bitcoin [link] [comments]

Bitcoinj 0.11 released

Mike Hearn posted this on the Bitcoin Developer Mailing List:
I'm pleased to announce the release of bitcoinj 0.11, a library for writing Bitcoin applications that run on the JVM. BitcoinJ is widely used across the Bitcoin community; some users include Bitcoin Wallet for Android, MultiBit, Hive, blockchain.info, the biteasy.com block explorer (written in Lisp!), Circle, Neo/Bee (Cypriot payment network), bitpos.me, Bitcoin Touch, BlueMatt's relay network and DNS crawler, academic advanced contracts research and more.
The release-0.11 git tag is signed by Andreas Schildbach's GPG key. The commit hash is 410d4547a7dd. This paragraph is signed by the same Bitcoin key as with previous releases (check their release announcements to establish continuity). Additionally, this email is signed using DKIM and for the first time, a key that was ID verified by the Swiss government.
Key: 16vSNFP5Acsa6RBbjEA7QYCCRDRGXRFH4m
Signature for last paragraph: H3DvWBqFHPxKW/cdYUdZ6OHjbq6ZtC5PHK4ebpeiE+FqTHyRLJ58BItbC0R2vo77h+DthpQigdEZ0V8ivSM7VIg=
Notable changes and new features
Smaller improvements
Notable bug fixes
API changes
New documentation
Announcement: https://groups.google.com/forum/?fromgroups#!topic/bitcoinj-announce/3LW0uXhlRZY
Message on Bitcoin Developer Mailing List: http://www.mail-archive.com/[email protected]/msg03873.html
Google Code: https://code.google.com/p/bitcoinj/
GitHub: https://github.com/bitcoinj/bitcoinj
Edit: Added links to articles about BIP39 and BIP70 which were included in the original announcement.
submitted by alsomahler to Bitcoin [link] [comments]

Need comments on PC setup for machine learning and bitcoin mining

Build Help:

Have you read the sidebar and rules? (Please do)
Yes
What is your intended use for this build? The more details the better.
For machine learning (CNN & NLP) and bitcoin mining.
In what country are you purchasing your parts?
Canada.
AMD Ryzen 5 1600 $239 GIGABYTE GA-AX370-Gaming Socket AM4 ATX Motherboard $139.99 G.SKILL Trident Z Series 16GB (2x8GB) DDR4 3200MHz $299 GIGABYTE GeForce GTX 1070 $739 Deepcool Tesseract SW-BK Black Window Mid Tower Case $39.99 Samsung 850 EVO 250GB 2.5" 6Gb/s Solid State Drive (SSD) $99.99 Corsair CS Modular CS650M 650Watt 80 PLUS Gold Certified Power Supply $109.99 Cooler Master Hyper TX3 CPU Cooler $21.99
Total $1688.95
Additional Questions:
  1. I'm wondering if a 650w power supply is truly necessary? I suppose if I don't overclock, a 500w will suffice, but would 650w be overkill even if overclocking the CPU?
  2. I'm starting with 1 video card but am planning to add a second one if needed. There're two PCIe slots on the motherboard but I wonder in terms of throughput is it enough? How about cooling?
Thanks!
submitted by fiddlewin to buildapc [link] [comments]

I'd like some clarification on the 32MB P2P protocol limit

I'm not too familiar with the Bitcoin code base specifically, but I understand (that is, I like to think I understand) basic software and coding terminology. My question is this: How come a client can't just make a TCP socket (or whatever) with a bigger buffer? Where is this stored? In any case, couldn't it be done with a simple variable change?
I heard this was something to do with threading, but how hard would it be to just create a receive thread for each connection (which pushes things into a buffer), and then have other threads that can pull out and process those messages in parallel?
I also was just reading the Bitcoin Wiki and saw that the "length" field of a message is limited to a 4-byte integer. Does this mean that messages can't be larger than 232 bytes in length? Will this pose another challenge for scaling the network once we hit 4GB blocks?
Thanks in advance for any clarification, this entire Bitcoin code base is extremely complicated. I might start working on a simpler JavaScript version that can still talk with the rest of the BCH network, that's why I'm inquiring about the network protocol.
PS: Anyone know the "magic numbers" for BCH? Same as BTC?
submitted by UTXONinja to btc [link] [comments]

High Frequency Trading in Bitcoin Exchanges

High Frequency Trading in Bitcoin Exchanges
Introduction(FMZ)
In this post I analyze the presence and activity of high frequency trading in a Bitcoin exchange. Since to date this markets are extremely unregulated, such behaviour takes places with little to no constraint. I show how over 99% of orders placed are not meant to be filled, but instead to distort the perception of the market. In addition, I try to spot common HFT strategies, such as Quote Spoofing, Layering and Momentum ignition. Given the anonymous nature of these exchanges these last results are to some extent subjective.(FMZ)
What is High Frequency Trading?
From Wikipedia [1], High-frequency trading (HFT) is a type of algorithmic trading characterized by high speeds, high turnover rates, and high order-to-trade ratios that leverages high-frequency financial data and electronic trading tools.
Methodology(FMZ)
This analysis has been carried out with order data from the Websocket stream from GDAX, a US based digital asset exchange [2] owned by Coinbase. It is one of the largest markets (over 42 MM USD/day) [3] and it exposes a high performance socket where all orders are broadcasted. In addition, it offers some interesting features for data analysis:
Orders are timestamped (as opposed to Bitfinex, for example)
It has millisecond granularity (again, as opposed to Bitfinex)
It says whether an order has been matched or cancelled -one could argue that disappearing orders far from the bid/ask spread must have been cancelled (and it's true), but for orders inside the spread, this information is necessary.
While data has been captured for several days (at the time of this post I'm still capturing data), for the following analysis only data from July 21, 2017 has been taken. Mind you, there are still over 2 Million datapoints. (FMZ)
Since the GDAX feed does not explicitly keep information of the current best bid/ask, a little preprocessing is needed. The best bid is the highest price for currently open BUY orders, while the best ask is the lowest price for open SELL orders. Although this calculation is not complicated nor particularly slow, it's better to explicitly append the current best bid/ask as additional columns. No further preprocessing has been carried out.
Related work
While writing this article, I came across a blog post from Philip Stubbings at Parasec [4], who made a similar analysis in 2014. While the amount of data differs by orders of magnitude, the findings are the same, especially concerning flashing orders. Quoting from his site:
I collected order book event data from the Bitstamp exchange over a 4 month period, between July and October (2014), resulting in a dataset of ~33 million individual events; A minuscule dataset in comparison to the throughput on "conventional" exchanges, see (Nanex: High Frequency Quote Spam) for example.
While the event dataset consists of ~33 million events, these events can be broken down into individual orders and their types. In total, of the identifiable order types, there were 14,619,019 individual "flashed orders" (orders added and later deleted without being hit) representing 93% of all order book activity, 707,113 "resting orders" (orders added and not deleted unless hit) and 455,825 "marketable orders" (orders that crossed the book resulting in 1 or more reported trades).
As we'll soon see in this report, I recorded 2,169,450 events in less than one day. That means, the number of events per unit of time is 8 times bigger than in 2014. Flash orders are still a majority, representing over 99% of all order book activity. (FMZ)
www.fmz.com
www.fmz.com
www.fmz.com
HTF Strategies (FMZ)
The Bocconi Students Investment Club (BSIC) [5] describes some strategies which the HFT traders use to distort the perception of the market. For this post I'll focus on Spoofing, Layering and Momentum Ignition.
Spoofing & Layering
Quoting from BSIC [5]:
Spoofing is a strategy whereby one places limit orders, and removes them before they are executed. By spoofing limit orders, perpetrators hope to distort other trader’s perceptions of market demand and supply. As an example, a large bid limit order could be placed with the intention of being canceled before it is executed. The spoofer would then seek to benefit from prices rising as the result of false optimism others would see in the market structure.
Detection
There is evidence of high frequency spoofing on July 21, 2017 between 09:45:52 and 09:45:56. Let's take a look at the order book. Red points are SELL orders (3 BTC @ $2741.99), vertical grey lines are cancellations and the blue and green lines are bid and ask price, respectively.
www.fmz.com
One interesting thing is that neither the bid or ask price moves.
Also from [5]:
More controversial has been the act of layering which carries many similarities to outright spoofing, but differs in that orders are placed evenly across prices with the goal of reserving an early execution priority at each given price level. If the person has no trade to execute at that price point the orders are simply removed. Despite being more benign in nature, the act of layering also distorts market demand and supply perception. (FMZ)
It seems to be evidence of layering. Let's take a closer look at the minute between July 21, 2017 between 09:41:00 and 9:42:00. Orders seem to push the ASK level downwards, eventually decreasing the BID price. Next, BUY orders are placed at this lowered level, to be sold when the BID price recovers.
www.fmz.com
Momentum ignition(fmz.com)
Still quoting [5]
Momentum ignition is a strategy in which a trader aims to cause a sharp movement in the price of a stock by using a series of trades, which indicate patterns for high frequency traders, with the motive of attracting other algorithm traders to also trade that stock. The instigator of the whole process knows that after the somewhat “artificially created” rapid price movement, the price reverts to normal and thus the trader profits by taking a position early on and eventually trading out before it fizzles out.
To detect momentum ignition, it is important to focus on the following three main characteristics as shown in the chart below:
Stable prices and a spike in volume
A large price movement compared to the intraday volatility
Reversion to the starting price under a lower volume
The following picture from zerohedge and Credit Suisse AES Analysis illustrates this behavior. (FMZ)
www.fmz.com
Conclusion (FMZ)
According to an interview carried out by The Atlantic [6] to Michael Kearns of the University of Pennsylvania and Andrew Lo at MIT, this behaviour also happens in traditional trading, and its causes are still matter of dispute. Relevant extract:
[...] why would a firm engage in this behavior? Lo and Kearns offered a few theories of their own about what could be happening.
To be honest, we can't come up with a good reason," Kearns said. What's particularly difficult to explain is how diverse and prevalent the patterns are. If algorithmic traders are simply testing new bots out -- which isn't a bad explanation -- it doesn't seem plausible that they'd do it so often. Alternatively, one could imagine the patterns are generated by some set of systemic information processing mistakes, but then it might be difficult to explain the variety of the patterns.
"It's possible that the observed patterns are not malicious, in error, or for testing, but for information-gathering," Kearns observed. "One could easily imagine a HFT shop wanting to regularly examine (e.g.) the latency they experienced from the different exchanges under different conditions, including conditions involving high order volume, rapid changes in prices and volumes, etc. And one might want such information not just when getting started, but on a regular basis, since latency and other exchange properties might well be expected to change over time, exhibit seasonality of various kind, etc. The super-HFT groups might even make co-location decisions based on such benchmarks."
References
[1]https://en.wikipedia.org/wiki/Bi...
[2] https://www.gdax.com/
[3] Source: https://coinmarketcap.com
[4] http://parasec.net/blog/order-bo...
[5] http://www.bsic.it/marketmanipul...
[6] https://www.theatlantic.com/tech...
[7] https://docs.gdax.com/
submitted by FmzQuant to u/FmzQuant [link] [comments]

Why does bitcoin not use WebSocket as a protocol for bitcoin network?

According to https://en.bitcoin.it/wiki/Network, bitcoin uses TCP and exchanges messages over TCP socket https://en.bitcoin.it/wiki/Protocol_documentation#Message_structure
At a glance, it seems to be similar with WebSocket. If it's right, why did bitcoin team not make use of WebSocket instead of reinventing the wheel? Is it worth to make it from scratch in terms of performance or didn't WebSocket meet their requirements?
Also, I wonder whether I use WebSocket as a building block if I create a yet another bitcoin from scratch.
submitted by zincma to BitcoinBeginners [link] [comments]

fakd: The FAK Anywhere CLI Client & Server

These are new clients to support servers and devices that are not able to run FakeCoin-qt.
They should work on everything from a MIPS router to an IBM mainframe and anything in between.

Commands

$ fakd

Full node server.walletfunctionalitysoldseparately.
This has been used as the backend for the block explorer from day one.
Stable. Secure. Easy to set up. Supports JSON-RPC and WebSockets.

$ fakctl

Provides an easy way to query the fakd server using the same commands as the RPC console in FakeCoin-qt.
$ fakctl getmininginfo
{
"blocks": 17675,
"currentblocksize": 520,
"currentblockweight": 2080,
"currentblocktx": 1,
"difficulty": 467.80165986,
"errors": "",
"generate": false,
"genproclimit": 12,
"hashespersec": 0,
"networkhashps": 3667939,
"pooledtx": 0,
"testnet": false
}

$ fakwallet

Work in progress. Once finished can be a drop in replacement for fakecoind.

Install

Step 1: Get a Go compiler

Step 2: Install fakd & fakctrl

go get -u fakco.in/fakd/...

Step 3: There is no step 3

The compiled binaries should now be in $GOPATH/bin ready to use.

Cross Compiling

Linux Server

GOOS=linux GOARCH=amd64 go install fakco.in/fakd/...

Raspberry Pi

GOOS=linux GOARCH=arm GOARM=5 go install fakco.in/fakd/...

My local FreeNAS because why not.

GOOS=freebsd GOARCH=amd64 go install fakco.in/fakd/...

Windows XP? Pentium 4? What? Why? ok...

GOOS=windows GOARCH=386 go go install fakco.in/fakd/...
submitted by Valken32 to FakeCoin [link] [comments]

Why can't I buy a decent laptop with BTC? The sorry state of shopping with Bitcoin.

I want to buy a Haswell 4700MQ based laptop with BTC(s) and I can't find a good way to do it. I do not want to convert BTC to USD first, that is just silly talk.
I went through the merchant list in the sidebar at https://en.bitcoin.it/wiki/Trade and it is quite sad really how little progress there has been in the last 2 years.
I am not going to mention tons of outdated (3BTC for something worth less than $100 ??), nonoperational,badly misspelled or designed stores that I had to go through to find something usable.
The best merchant in terms of reliability,availability,reputability and pricing is https://www.bitcoinstore.com/ and it still sucks.
They only have a very limited selection of Ivy Bridge laptops and no Haswell. Trying to assemble a desktop, I tried to find some socket 1150 CPUs and also had little luck, socket AM3+ only had two choices.
What are good places to spend my BTC to get something tangible?
EDIT: Thanks for all the responses! So far the best option to spend BTC seems buying appropriate gift card (Amazon, et al) from gyft.com
submitted by refto to Bitcoin [link] [comments]

BitMEX is offering zero-fee trading to developers.

BitMEX is more than just a website; it is also a powerful, fully-featured exchange API.
Starting today, BitMEX is offering a full six months of fee-free trading to any developer who builds a new, useful project that connects to the BitMEX API and releases the code to the public on GitHub. Simply email us at [email protected] with a link to your project when you complete it.
This offer is also applicable to any quality pull request integrating BitMEX with any existing trading bots or analytics platforms.
If you are building a private project, email us at too. We can offer aggressive discounts depending on the type of integration.
Why integrate with BitMEX? BitMEX offers the most complete API in the business, with feature-complete HTTP and WebSocket endpoints offering powerful, real-time data. The BitMEX API is more powerful than traditional Bitcoin exchange APIs, offering developers full access to all BitMEX functions, including real-time trade data, account creation, deposits, withdrawals, trading, and far more. In fact, every single resource used on the BitMEX website is exposed via our API. Think of the BitMEX website as only one of many possible interfaces to the world's most powerful crypto derivatives platform.
We want to encourage programmers to write tools for this powerful platform and to utilize the power that the BitMEX API offers.
Want to get started? Check out our Documentation first and try out the API Explorer, which is fully Swagger compliant.
Having trouble? Email us at [email protected]. Our engineers are here to help.
For reference, here is a list of resources:
submitted by BitMEXdotcom to BitcoinMarkets [link] [comments]

[QUESTIONS] Running Monero over Whonix

For those that are unaware of it, Whonix is an excellent tool for privacy. It allows you to run a virtual machine in which all network traffic from that machine is sent out over the Tor network.
I have been trying to get bitmonerod running from within a virtual machine that routes traffic through Whonix, but have been unsuccessful in actually connecting to the Monero network so far. I was hoping that someone with more knowledge about the inner workings of Monero might have some insight into the errors I am seeing.
My setup: I am running Whonix Gateway version 9.6 on an Ubuntu 14.04 host. I have a second workstation virtual machine running 64 bit Ubuntu 14.04 which is configured to connect to the internet through Whonix Gateway, using the Other Operating Systems instructions. The workstation virtual machine is running the latest version of Monero from github (although the same errors are present when running the 0.8.8.6 binaries).
Whenever I run bitmonerod using this setup, I am unable to connect to any peers. If I run set_log 3, I see the following logged:
[P2P0]Connecting to XXX.XXX.XXX.XXX:18080(white=1, last_seen: never)... [P2P0]Connected success to XXX.XXX.XXX.XXX:18080 [P2P0][sock 12] new connection from XXX.XXX.XXX.XXX:18080 OUT to 10.152.152.50:56100, total sockets objects 1 [P2P0][XXX.XXX.XXX.XXX:18080  OUT] NEW CONNECTION [P2P9][XXX.XXX.XXX.XXX:18080 OUT]Timeout on invoke operation happened, command: 1001 [P2P9]Failed to invoke command 1001 return code -4 [P2P9][XXX.XXX.XXX.XXX:18080 OUT]COMMAND_HANDSHAKE invoke failed. (-4, LEVIN_ERROR_CONNECTION_TIMEDOUT) [P2P0][XXX.XXX.XXX.XXX:18080 OUT]COMMAND_HANDSHAKE Failed [P2P0][XXX.XXX.XXX.XXX:18080 OUT]Failed to HANDSHAKE with peer XXX.XXX.XXX.XXX:18080 
This log output is modified to protect privacy, the XXX.XXX.XXX.XXX ip address is the same each time for these log lines. The 10.152.152.50 IP address is my workstation's internal IP address. These errors repeat indefinitely every few seconds, each time with a new peer, until I kill the client.
I played around with Monero many months ago, and I am fairly certain that I had successfully run bitmonerod, and connected to the network from within a Whonix workstation at that time. However, now I am unable to connect using the same setup that I thought worked in the past. Has anything changed in the Monero codebase that would cause this new behavior? Are there any configuration options, or code changes I can make in order to get Monero to successfully connect to peers through Whonix?
Alternatively, if running Monero over Whonix turns out to be impossible, I'm curious to hear other ways of protecting your IP address when using Monero. Since bitmonerod does not have a proxy option like bitcoin does, it doesn't seem possible to run bitmonerod directly over Tor without using something like Whonix. What do people do to protect their IP address when broadcasting private transactions to the Monero network?
Thanks in advance for any help anyone can provide!
submitted by monerowhonix to Monero [link] [comments]

Two Proposed BIPs - Bluetooth Communication and bitcoin: URI Scheme Improvements | Andy Schroder | Feb 05 2015

Andy Schroder on Feb 05 2015:
Hello,
With the recent discussion started today regarding another bluetooth
communication proposal created by Airbitz, I'd like to bring people's
attention back to this proposal that saw little discussion last fall. I
guess I'm not sure why two proposals are being created. Is their some
advantage of using bluetooth low energy over standard bluetooth (I'm not
well versed in bluetooth low energy)? This NFC coupled approach seems to
avoid a lot of issues with identifying the correct payee. You can see
this proposed scheme demonstrated in action in a POS application in the
video link below which demonstrates it with my fuel pump and Andreas
Schildbach's wallet.
There was a small discussion that occurred after my original
announcement below. If you are new to this e-mail list, you can find an
archive of those few replies here:
https://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg06354.html
Since this original announcement, a few improvements have been made to
the proposal:
  1. Improved documentation and explanation of the use cases in
    Schildbach's wallet's wiki
    1. https://github.com/schildbach/bitcoin-wallet/wiki/Payment-Requests
  2. Issue with the payment_url field has resolved by changing to a
    repeated field and requiring the wallet to search for the protocol
    they want to use, rather than expecting it to be a certain element
    number in the list.
    1. https://github.com/AndySchrodebips/blob/mastetbip-0075.mediawiki
Although there are some interesting use cases of Airbitz's proposal's
work flow, tapping an NFC radio with a 5 mm range requires much less
brain power and time than picking the correct name on the app's screen.
The manual name picking is going to be especially crazy in a very
congested location. The payer isn't ever going to want to have to try
and figure out what register or payment terminal they are at for most
applications I would ever use.
I'd like to see something happen with this technology. I've also noticed
that micropayment channels have little formality to being established
practically and it would be awesome if they could be managed over
bluetooth as well. Maybe more improvements to the payment protocol can
simultaneously result (and also extended to bluetooth) that embrace the
establishment of micropayment channels.
Andy Schroder
On 10/17/2014 03:58 PM, Andy Schroder wrote:
Hello,
I'd like to introduce two proposed BIPs. They are primarily focused on
implementing the payment protocol using bluetooth connections. I've
been working on automated point of sale devices and bluetooth
communication is critical in my mind due to the potential lack of
internet access at many points of sale, either due to lack of cellular
internet coverage, lack of payee providing wireless internet, and/or
due to financial constraints of the payer prohibiting them from
maintaining a cellular internet service plan. These BIPs are largely
modeled after the current functionality of Andreas Schildbach's
android Bitcoin Wallet's bluetooth capability. I've discussed the
communication scheme with him in depth and believe these proposals to
clearly and accurately represent the communication scheme.
There is also an additional &h= parameter added to the bitcoin: URI
scheme which applies to both bluetooth and http payment protocol
requests which allows for a hash of the payment request to be
included. This hash was proposed by Andreas as an amendment to BIP72,
but others preferred not to amend BIP72 since it has already been put
into place. The current version of Schildbach's bitcoin wallet already
supports the "h parameter".
I'd appreciate feedback from everyone, particularly wallet developers
as widespread bluetooth support among wallets is very important to me.
I'm also very new to this mailing list as well as the BIP writing
process, so I'd appreciate your understanding if my conventions are
not standard. I am currently using the naming conventions "TBIP", so
that I can propose /temporary/ BIP numbers, and cross reference
between the two. Obviously these will change if the BIPs are formally
adopted. You can find a copy of these proposed BIPs at the following
links:
If you are interested, you can see a demonstration of many of the
proposed features using Schildbach's wallet and my fuel pump in a
video I recently created: https://youtu.be/kkVAhA75k1Y . The main
thing not implemented is multiple URLs for the payment protocol, so,
as a hack, I'm just presenting https vi QR code and bluetooth via NFC
on my fuel pump for now.
There are a few known issues that could be improved to this bluetooth
communication scheme as well as the general payment protocol and
myself and Andreas would like to receive feedback regarding concerns
and potential solutions. Some of the known issues are:
Your comments and suggestions would be greatly appreciated.

Andy Schroder
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150205/8dc03561/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150205/8dc03561/attachment.sig>
original: http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-February/007349.html
submitted by bitcoin-devlist-bot to bitcoin_devlist [link] [comments]

Bitcoin Core 0.10.0 released | Wladimir | Feb 16 2015

Wladimir on Feb 16 2015:
Bitcoin Core version 0.10.0 is now available from:
https://bitcoin.org/bin/0.10.0/
This is a new major version release, bringing both new features and
bug fixes.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
The whole distribution is also available as torrent:
https://bitcoin.org/bin/0.10.0/bitcoin-0.10.0.torrent
magnet:?xt=urn:btih:170c61fe09dafecfbb97cb4dccd32173383f4e68&dn;=0.10.0&tr;=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.ccc.de%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr;=udp%3A%2F%2Fopen.demonii.com%3A1337&ws;=https%3A%2F%2Fbitcoin.org%2Fbin%2F
Upgrading and downgrading

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:
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](https://pypi.python.org/pypi/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](https://github.com/bitcoin/bitcoin/blob/0.10/src/script/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.
0.10.0 Change log

Detailed release notes follow. This overview includes changes that affect external
behavior, not code moves, refactors or string updates.
RPC:
  • f923c07 Support IPv6 lookup in bitcoin-cli even when IPv6 only bound on localhost
  • b641c9c Fix addnode "onetry": Connect with OpenNetworkConnection
  • 171ca77 estimatefee / estimatepriority RPC methods
  • b750cf1 Remove cli functionality from bitcoind
  • f6984e8 Add "chain" to getmininginfo, improve help in getblockchaininfo
  • 99ddc6c Add nLocalServices info to RPC getinfo
  • cf0c47b Remove getwork() RPC call
  • 2a72d45 prioritisetransaction
  • e44fea5 Add an option -datacarrier to allow users to disable relaying/mining data carrier transactions
  • 2ec5a3d Prevent easy RPC memory exhaustion attack
  • d4640d7 Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation
  • 83f3543 Added argument to listaccounts to include watchonly addresses
  • 952877e Showing 'involvesWatchonly' property for transactions returned by 'listtransactions' and 'listsinceblock'. It is only appended when the transaction involves a watchonly address
  • d7d5d23 Added argument to listtransactions and listsinceblock to include watchonly addresses
  • f87ba3d added includeWatchonly argument to 'gettransaction' because it affects balance calculation
  • 0fa2f88 added includedWatchonly argument to listreceivedbyaddress/...account
  • 6c37f7f getrawchangeaddress: fail when keypool exhausted and wallet locked
  • ff6a7af getblocktemplate: longpolling support
  • c4a321f Add peerid to getpeerinfo to allow correlation with the logs
  • 1b4568c Add vout to ListTransactions output
  • b33bd7a Implement "getchaintips" RPC command to monitor blockchain forks
  • 733177e Remove size limit in RPC client, keep it in server
  • 6b5b7cb Categorize rpc help overview
  • 6f2c26a Closely track mempool byte total. Add "getmempoolinfo" RPC
  • aa82795 Add detailed network info to getnetworkinfo RPC
  • 01094bd Don't reveal whether password is <20 or >20 characters in RPC
  • 57153d4 rpc: Compute number of confirmations of a block from block height
  • ff36cbe getnetworkinfo: export local node's client sub-version string
  • d14d7de SanitizeString: allow '(' and ')'
  • 31d6390 Fixed setaccount accepting foreign address
  • b5ec5fe update getnetworkinfo help with subversion
  • ad6e601 RPC additions after headers-first
  • 33dfbf5 rpc: Fix leveldb iterator leak, and flush before gettxoutsetinfo
  • 2aa6329 Enable customising node policy for datacarrier data size with a -datacarriersize option
  • f877aaa submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock
  • e69a587 submitblock: Support for returning specific rejection reasons
  • af82884 Add "warmup mode" for RPC server
  • e2655e0 Add unauthenticated HTTP REST interface to public blockchain data
  • 683dc40 Disable SSLv3 (in favor of TLS) for the RPC client and server
  • 44b4c0d signrawtransaction: validate private key
  • 9765a50 Implement BIP 23 Block Proposal
  • f9de17e Add warning comment to getinfo
Command-line options:
  • ee21912 Use netmasks instead of wildcards for IP address matching
  • deb3572 Add -rpcbind option to allow binding RPC port on a specific interface
  • 96b733e Add -version option to get just the version
  • 1569353 Add -stopafterblockimport option
  • 77cbd46 Let -zapwallettxes recover transaction meta data
  • 1c750db remove -tor compatibility code (only allow -onion)
  • 4aaa017 rework help messages for fee-related options
  • 4278b1d Clarify error message when invalid -rpcallowip
  • 6b407e4 -datadir is now allowed in config files
  • bdd5b58 Add option -sysperms to disable 077 umask (create new files with system default umask)
  • cbe39a3 Add "bitcoin-tx" command line utility and supporting modules
  • dbca89b Trigger -alertnotify if network is upgrading without you
  • ad96e7c Make -reindex cope with out-of-order blocks
  • 16d5194 Skip reindexed blocks individually
  • ec01243 --tracerpc option for regression tests
  • f654f00 Change -genproclimit default to 1
  • 3c77714 Make -proxy set all network types, avoiding a connect leak
  • 57be955 Remove -printblock, -printblocktree, and -printblockindex
  • ad3d208 remove -maxorphanblocks config parameter since it is no longer functional
Block and transaction handling:
  • 7a0e84d ProcessGetData(): abort if a block file is missing from disk
  • 8c93bf4 LoadBlockIndexDB(): Require block db reindex if any blk*.dat files are missing
  • 77339e5 Get rid of the static chainMostWork (optimization)
  • 4e0eed8 Allow ActivateBestChain to release its lock on cs_main
  • 18e7216 Push cs_mains down in ProcessBlock
  • fa126ef Avoid undefined behavior using CFlatData in CScript serialization
  • 7f3b4e9 Relax IsStandard rules for pay-to-script-hash transactions
  • c9a0918 Add a skiplist to the CBlockIndex structure
  • bc42503 Use unordered_map for CCoinsViewCache with salted hash (optimization)
  • d4d3fbd Do not flush the cache after every block outside of IBD (optimization)
  • ad08d0b Bugfix: make CCoinsViewMemPool support pruned entries in underlying cache
  • 5734d4d Only remove actualy failed blocks from setBlockIndexValid
  • d70bc52 Rework block processing benchmark code
  • 714a3e6 Only keep setBlockIndexValid entries that are possible improvements
  • ea100c7 Reduce maximum coinscache size during verification (reduce memory usage)
  • 4fad8e6 Reject transactions with excessive numbers of sigops
  • b0875eb Allow BatchWrite to destroy its input, reducing copying (optimization)
  • 92bb6f2 Bypass reloading blocks from disk (optimization)
  • 2e28031 Perform CVerifyDB on pcoinsdbview instead of pcoinsTip (reduce memory usage)
  • ab15b2e Avoid copying undo data (optimization)
  • 341735e Headers-first synchronization
  • afc32c5 Fix rebuild-chainstate feature and improve its performance
  • e11b2ce Fix large reorgs
  • ed6d1a2 Keep information about all block files in memory
  • a48f2d6 Abstract context-dependent block checking from acceptance
  • 7e615f5 Fixed mempool sync after sending a transaction
  • 51ce901 Improve chainstate/blockindex disk writing policy
  • a206950 Introduce separate flushing modes
  • 9ec75c5 Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true
  • 868d041 Remove coinbase-dependant transactions during reorg
  • 723d12c Remove txn which are invalidated by coinbase maturity during reorg
  • 0cb8763 Check against MANDATORY flags prior to accepting to mempool
  • 8446262 Reject headers that build on an invalid parent
  • 008138c Bugfix: only track UTXO modification after lookup
P2P protocol and network code:
  • f80cffa Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY fails
  • c30329a Add testnet DNS seed of Alex Kotenko
  • 45a4baf Add testnet DNS seed of Andreas Schildbach
  • f1920e8 Ping automatically every 2 minutes (unconditionally)
  • 806fd19 Allocate receive buffers in on the fly
  • 6ecf3ed Display unknown commands received
  • aa81564 Track peers' available blocks
  • caf6150 Use async name resolving to improve net thread responsiveness
  • 9f4da19 Use pong receive time rather than processing time
  • 0127a9b remove SOCKS4 support from core and GUI, use SOCKS5
  • 40f5cb8 Send rejects and apply DoS scoring for errors in direct block validation
  • dc942e6 Introduce whitelisted peers
  • c994d2e prevent SOCKET leak in BindListenPort()
  • a60120e Add built-in seeds for .onion
  • 60dc8e4 Allow -onlynet=onion to be used
  • 3a56de7 addrman: Do not propagate obviously poor addresses onto the network
  • 6050ab6 netbase: Make SOCKS5 negotiation interruptible
  • 604ee2a Remove tx from AlreadyAskedFor list once we receive it, not when we process it
  • efad808 Avoid reject message feedback loops
  • 71697f9 Separate protocol versioning from clientversion
  • 20a5f61 Don't relay alerts to peers before version negotiation
  • b4ee0bd Introduce preferred download peers
  • 845c86d Do not use third party services for IP detection
  • 12a49ca Limit the number of new addressses to accumulate
  • 35e408f Regard connection failures as attempt for addrman
  • a3a7317 Introduce 10 minute block download timeout
  • 3022e7d Require sufficent priority for relay of free transactions
  • 58fda4d Update seed IPs, based on bitcoin.sipa.be crawler data
  • 18021d0 Remove bitnodes.io from dnsseeds.
Validation:
  • 6fd7ef2 Also switch the (unused) verification code to low-s instead of even-s
  • 584a358 Do merkle root and txid duplicates check simultaneously
  • 217a5c9 When transaction outputs exceed inputs, show the offending amounts so as to aid debugging
  • f74fc9b Print input index when signature validation fails, to aid debugging
  • 6fd59ee script.h: set_vch() should shift a >32 bit value
  • d752ba8 Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) (test only)
  • 698c6ab Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4) (test only)
  • ab9edbd script: create sane error return codes for script validation and remove logging
  • 219a147 script: check ScriptError values in script tests
  • 0391423 Discourage NOPs reserved for soft-fork upgrades
  • 98b135f Make STRICTENC invalid pubkeys fail the script rather than the opcode
  • 307f7d4 Report script evaluation failures in log and reject messages
  • ace39db consensus: guard against openssl's new strict DER checks
  • 12b7c44 Improve robustness of DER recoding code
  • 76ce5c8 fail immediately on an empty signature
Build system:
  • f25e3ad Fix build in OS X 10.9
  • 65e8ba4 build: Switch to non-recursive make
  • 460b32d build: fix broken boost chrono check on some platforms
  • 9ce0774 build: Fix windows configure when using --with-qt-libdir
  • ea96475 build: Add mention of --disable-wallet to bdb48 error messages
  • 1dec09b depends: add shared dependency builder
  • c101c76 build: Add --with-utils (bitcoin-cli and bitcoin-tx, default=yes). Help string consistency tweaks. Target sanity check fix
  • e432a5f build: add option for reducing exports (v2)
  • 6134b43 Fixing condition 'sabotaging' MSVC build
  • af0bd5e osx: fix signing to make Gatekeeper happy (again)
  • a7d1f03 build: fix dynamic boost check when --with-boost= is used
  • d5fd094 build: fix qt test build when libprotobuf is in a non-standard path
  • 2cf5f16 Add libbitcoinconsensus library
  • 914868a build: add a deterministic dmg signer
  • 2d375fe depends: bump openssl to 1.0.1k
  • b7a4ecc Build: Only check for boost when building code that requires it
Wallet:
  • b33d1f5 Use fee/priority estimates in wallet CreateTransaction
  • 4b7b1bb Sanity checks for estimates
  • c898846 Add support for watch-only addresses
  • d5087d1 Use script matching rather than destination matching for watch-only
  • d88af56 Fee fixes
  • a35b55b Dont run full check every time we decrypt wallet
  • 3a7c348 Fix make_change to not create half-satoshis
  • f606bb9 fix a possible memory leak in CWalletDB::Recover
  • 870da77 fix possible memory leaks in CWallet::EncryptWallet
  • ccca27a Watch-only fixes
  • 9b1627d [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis
  • a53fd41 Deterministic signing
  • 15ad0b5 Apply AreSane() checks to the fees from the network
  • 11855c1 Enforce minRelayTxFee on wallet created tx and add a maxtxfee option
GUI:
  • c21c74b osx: Fix missing dock menu with qt5
  • b90711c Fix Transaction details shows wrong To:
  • 516053c Make links in 'About Bitcoin Core' clickable
  • bdc83e8 Ensure payment request network matches client network
  • 65f78a1 Add GUI view of peer information
  • 06a91d9 VerifyDB progress reporting
  • fe6bff2 Add BerkeleyDB version info to RPCConsole
  • b917555 PeerTableModel: Fix potential deadlock. #4296
  • dff0e3b Improve rpc console history behavior
  • 95a9383 Remove CENT-fee-rule from coin control completely
  • 56b07d2 Allow setting listen via GUI
  • d95ba75 Log messages with type>QtDebugMsg as non-debug
  • 8969828 New status bar Unit Display Control and related changes
  • 674c070 seed OpenSSL PNRG with Windows event data
  • 509f926 Payment request parsing on startup now only changes network if a valid network name is specified
  • acd432b Prevent balloon-spam after rescan
  • 7007402 Implement SI-style (thin space) thoudands separator
  • 91cce17 Use fixed-point arithmetic in amount spinbox
  • bdba2dd Remove an obscure option no-one cares about
  • bd0aa10 Replace the temporary file hack currently used to change Bitcoin-Qt's dock icon (OS X) with a buffer-based solution
  • 94e1b9e Re-work overviewpage UI
  • 8bfdc9a Better looking trayicon
  • b197bf3 disable tray interactions when client model set to 0
  • 1c5f0af Add column Watch-only to transactions list
  • 21f139b Fix tablet crash. closes #4854
  • e84843c Broken addresses on command line no longer trigger testnet
  • a49f11d Change splash screen to normal window
  • 1f9be98 Disable App Nap on OSX 10.9+
  • 27c3e91 Add proxy to options overridden if necessary
  • 4bd1185 Allow "emergency" shutdown during startup
  • d52f072 Don't show wallet options in the preferences menu when running with -disablewallet
  • 6093aa1 Qt: QProgressBar CPU-Issue workaround
  • 0ed9675 [Wallet] Add global boolean whether to send free transactions (default=true)
  • ed3e5e4 [Wallet] Add global boolean whether to pay at least the custom fee (default=true)
  • e7876b2 [Wallet] Prevent user from paying a non-sense fee
  • c1c9d5b Add Smartfee to GUI
  • e0a25c5 Make askpassphrase dialog behave more sanely
  • 94b362d On close of splashscreen interrupt verifyDB
  • b790d13 English translation update
  • 8543b0d Correct tooltip on address book page
Tests:
  • b41e594 Fix script test handling of empty scripts
  • d3a33fc Test CHECKMULTISIG with m == 0 and n == 0
  • 29c1749 Let tx (in)valid tests use any SCRIPT_VERIFY flag
  • 6380180 Add rejection of non-null CHECKMULTISIG dummy values
  • 21bf3d2 Add tests for BoostAsioToCNetAddr
  • b5ad5e7 Add Python test for -rpcbind and -rpcallowip
  • 9ec0306 Add CODESEPARATOFindAndDelete() tests
  • 75ebced Added many rpc wallet tests
  • 0193fb8 Allow multiple regression tests to run at once
  • 92a6220 Hook up sanity checks
  • 3820e01 Extend and move all crypto tests to crypto_tests.cpp
  • 3f9a019 added list/get received by address/ account tests
  • a90689f Remove timing-based signature cache unit test
  • 236982c Add skiplist unit tests
  • f4b00be Add CChain::GetLocator() unit test
  • b45a6e8 Add test for getblocktemplate longpolling
  • cdf305e Set -discover=0 in regtest framework
  • ed02282 additional test for OP_SIZE in script_valid.json
  • 0072d98 script tests: BOOLAND, BOOLOR decode to integer
  • 833ff16 script tests: values that overflow to 0 are true
  • 4cac5db script tests: value with trailing 0x00 is true
  • 89101c6 script test: test case for 5-byte bools
  • d2d9dc0 script tests: add tests for CHECKMULTISIG limits
  • d789386 Add "it works" test for bitcoin-tx
  • df4d61e Add bitcoin-tx tests
  • aa41ac2 Test IsPushOnly() with invalid push
  • 6022b5d Make script_{valid,invalid}.json validation flags configurable
  • 8138cbe Add automatic script test generation, and actual checksig tests
  • ed27e53 Add coins_tests with a large randomized CCoinViewCache test
  • 9df9cf5 Make SCRIPT_VERIFY_STRICTENC compatible with BIP62
  • dcb9846 Extend getchaintips RPC test
  • 554147a Ensure MINIMALDATA invalid tests can only fail one way
  • dfeec18 Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule
  • 2b62e17 Clearly separate PUSHDATA and numeric argument MINIMALDATA tests
  • 16d78bd Add valid invert of invalid every numeric opcode tests
  • f635269 tests: enable alertnotify test for Windows
  • 7a41614 tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment
  • 5122ea7 tests: fix forknotify.py on windows
  • fa7f8cd tests: remove old pull-tester scripts
  • 7667850 tests: replace the old (unused since Travis) tests with new rpc test scripts
  • f4e0aef Do signature-s negation inside the tests
  • 1837987 Optimize -regtest setgenerate block generation
  • 2db4c8a Fix node ranges in the test framework
  • a8b2ce5 regression test only setmocktime RPC call
  • daf03e7 RPC tests: create initial chain with specific timestamps
  • 8656dbb Port/fix txnmall.sh regression test
  • ca81587 Test the exact order of CHECKMULTISIG sig/pubkey evaluation
  • 7357893 Prioritize and display -testsafemode status in UI
  • f321d6b Add key generation/verification to ECC sanity check
  • 132ea9b miner_tests: Disable checkpoints so they don't fail the subsidy-change test
  • bc6cb41 QA RPC tests: Add tests block block proposals
  • f67a9ce Use deterministically generated script tests
  • 11d7a7d [RPC] add rpc-test for http keep-alive (persistent connections)
  • 34318d7 RPC-test based on invalidateblock for mempool coinbase spends
  • 76ec867 Use actually valid transactions for script tests
  • c8589bf Add actual signature tests
  • e2677d7 Fix smartfees test for change to relay policy
  • 263b65e tests: run sanity checks in tests too
Miscellaneous:
  • 122549f Fix incorrect checkpoint data for testnet3
  • 5bd02cf Log used config file to debug.log on startup
  • 68ba85f Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments
  • e5ee8f0 Remove -beta suffix
  • 38405ac Add comment regarding experimental-use service bits
  • be873f6 Issue warning if collecting RandSeed data failed
  • 8ae973c Allocate more space if necessary in RandSeedAddPerfMon
  • 675bcd5 Correct comment for 15-of-15 p2sh script size
  • fda3fed libsecp256k1 integration
  • 2e36866 Show nodeid instead of addresses in log (for anonymity) unless otherwise requested
  • cd01a5e Enable paranoid corruption checks in LevelDB >= 1.16
  • 9365937 Add comment about never updating nTimeOffset past 199 samples
  • 403c1bf contrib: remove getwork-based pyminer (as getwork API call has been removed)
  • 0c3e101 contrib: Added systemd .service file in order to help distributions integrate bitcoind
  • 0a0878d doc: Add new DNSseed policy
  • 2887bff Update coding style and add .clang-format
  • 5cbda4f Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope
  • b4a72a7 contrib/linearize: split output files based on new-timestamp-year or max-file-size
  • e982b57 Use explicit fflush() instead of setvbuf()
  • 234bfbf contrib: Add init scripts and docs for Upstart and OpenRC
  • 01c2807 Add warning about the merkle-tree algorithm duplicate txid flaw
  • d6712db Also create pid file in non-daemon mode
  • 772ab0e contrib: use batched JSON-RPC in linarize-hashes (optimization)
  • 7ab4358 Update bash-completion for v0.10
  • 6e6a36c contrib: show pull # in prompt for github-merge script
  • 5b9f842 Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293)
  • 4e7c219 Catch UTXO set read errors and shutdown
  • 867c600 Catch LevelDB errors during flush
  • 06ca065 Fix CScriptID(const CScript& in) in empty script case
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 Bond
  • 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
As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).
Also lots of thanks to the bitcoin.org website team David A. Harding and Saivann Carignan.
Wladimir
original: http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-February/007480.html
submitted by bitcoin-devlist-bot to bitcoin_devlist [link] [comments]

[MINUTES] 23rd July 2013 | #Reinst8

--- Log opened Tue Jul 23 00:00:17 2013
Here the IRC settles to a lull as users head off to bed. Duke posts to a list of useful links on sexual freedom but then the discussion dies down
11:53AM
Today's Agenda
  1. Push the Sub further, continuing to garner support where possible to grow the following.
  2. Continue to galvanise conversation in the FAQ Thread (which is to form a backbone of the movement, given its focus on clarity, precision and easy explanation), the slogan thread (which needs to be decided upon to help RoosterSheep and his design team), and the Logo design and branding thread.
  3. Continue to collect any useful, pertinent articles/legal texts/links for our collective Suggested Reading section on the wiki. These will also inform discussion and goals.
Many thanks to RandomGeordie for writing most of the minutes today in my comparative absence.
submitted by TheMentalist10 to ReinstateArticle8 [link] [comments]

How bad is this $5000 PC from 10 years ago? - YouTube YouTube SCARIEST DARK-WEB UNBOXING I'VE DONE - YouTube

If you need to talk to a remote bitcoind instance you are better off tunneling with SSH or stunnel which will provide a secure, authenticated path without exposing the socket any further than localhost." Bitcoin transactions enable the storage of any type of data on a public ledger providing the foundation layer for any and all types of applications to be built on top of it. With a defined, locked down protocol and immutable transactions Bitcoin enables robust applications that can inter-operate with each other paving the way for limitless use-cases. Additionally, the flexible UTXO model of ... From Bitcoin Wiki. Jump to: navigation, search. Overview. The original bitcoin client uses a multithreaded approach to socket handling and messages processing. There is one thread that handles socket communication (ThreadSocketHandler) and one (ThreadMessageHandler) which handles pulling messages off sockets and calling the processing routines. Both of these threads are in net.cpp. The message ... Once the data is queued up by PushMessage, it sits and waits for the socket thread to come along. The socket thread and the message thread use a peer-specific lock (node->cs_vSend) to coordinate access to the socket. Locks . The main locks associated with the P2P aspect of the code are: cs_vNodes controls access to the CNode objects. Bitcoin Storage Socket))) 347 · 53 comments . Dinosaur Jamie Dimon Needs to Accept That Millennials Hate JPMorgan. 33 · 66 comments . BOMB Token Discussion. 27 · 8 comments . French Vineyard “P. Ferraud & Fils” Shares Details of its Blockchain implementation. 1608 · 314 comments . 0:19 . Someone doesn't belong here... 45 · 23 comments . CKJ News (an XRP Youtuber) Caught Red Handed ...

[index] [42722] [44076] [36487] [30747] [36754] [46036] [39200] [36120] [34840] [2356]

How bad is this $5000 PC from 10 years ago? - YouTube

That which is boxed must be unboxed. Unless it's filled with snakes. Don't open that. UPDATES: http://bit.ly/2WxOemI Watch Part 2 Here: https://youtu.be/WZAbJOYsQqQ Absolutely terrifying. This one was not fun to make at all. Everything was pro... Python Programming tutorials, going further than just the basics. Learn about machine learning, finance, data analysis, robotics, web development, game devel... Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube. What is a blockchain and how do they work? I'll explain why blockchains are so special in simple and plain English! 💰 Want to buy Bitcoin or Ethereum? Buy fo...

#