Satoshi Client Sockets and Messages - Bitcoin Wiki
Satoshi Client Sockets and Messages - Bitcoin Wiki
Enabling SSL on original client daemon - BitcoinWiki
Bitcoin Storage Socket))) : CryptoCurrency
Building on Bitcoin - Bitcoin Wiki
MtGox/API/Streaming - Bitcoin Wiki
[META] New to PC Building? - September 2018 Edition
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.
Make a budget for your PC (e.g., $800, $1000, $1250, $1500, etc.).
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.
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.
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:
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)
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.
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.
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.
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.
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:
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.
AMD Ryzen CPUs: go for X470s for Ryzen 7 and B450s for everything else. B350s will also work as a sub for B450 mobos and the same can be said for X370s for X470s, but they are being phased out and may require a BIOS update to support the Ryzen 2000 CPUs if it doesn't have a "Ryzen 2000 Series Ready" sticker on the box.
Intel Coffee Lake CPUs: go for Z370s for unlocked -K CPUs and B360s for everything else.
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.
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:
2x4GB = 8GB is the minimum recommended
2x8GB = 16GB recommended for gaming
2x16GB+ for workstations
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
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:
2.5" SATA III
M.2 NVME PCI-e
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.
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.
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.
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:
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.
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 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:
1050 Ti: 300W
1060 3GB/6GB: 400W
1070 / 1070 Ti: 500W
1080 Ti: 600W
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:
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 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:
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)
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.
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:
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.
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.
Updated sample builds to include both AMD and Intel builds
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!
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.
set variables in a data structure
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
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
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
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
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
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
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
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
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
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
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
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
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
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 , 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  owned by Coinbase. It is one of the largest markets (over 42 MM USD/day)  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 , 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)  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 : 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 : 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  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  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 https://en.wikipedia.org/wiki/Bitfinex  https://www.gdax.com/  Source: https://coinmarketcap.com  http://parasec.net/blog/order-book-visualisation/  http://www.bsic.it/marketmanipulation/  https://www.theatlantic.com/technology/archive/2010/08/explaining-bizarre-robot-stock-trader-behavio61028/  https://docs.gdax.com/
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.
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 poortrackrecord 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.
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=
Thanks to Mike Belshe, the wallet can now send to P2SH addresses.
Thanks to Matt Corallo, the network layer was rewritten from scratch. It no longer depends on Netty, and it now supports both blocking and non-blocking sockets. In practice that means Java's built in support for transparent SSL and SOCKS becomes available again, which in turn means connecting via Tor is now possible. The new framework is lightweight, easy to understand and has been running a DNS seed crawler for some months now.
Thanks to Kevin Greene, we've added some support for the BIP70 payment protocol. Wallet authors can now consume payment requests, check their signatures and submit payments with the new easy to use PaymentSession class. The wallet-tool command line UI has support and an article explains how to use it.
Thanks to Miron Cuperman, the wallet can now watch arbitrary addresses and scripts. The wallet could previously watch an address as long as the public key was known. Now it's possible to watch for addresses even when the public key is not known.
Also thanks to Miron, Bloom filtering was also improved. The system now tracks false positive rates and cleans the filter when FP rates get too high. Unfortunately, some privacy bugs in Bloom filtering remain, which could (amongst other things) allow a malicious remote peer to test whether you own a particular key.
Thanks to Alex Taylor (bitpos.me), a new PostgreSQL based pruning block store was added. This block store is fast, and indexes the UTXO set, allowing for fast lookup of the balance of any given address.
A Java 8 based wallet template app is now included. The template is designed for people writing contract based applications. It provides a simple app that can be copy/pasted, which connects to the P2P network, manages a wallet, and provides a GUI that shows progress, balance, address+qrcode for receiving money and has a button that is used to empty the wallet out. It's designed to have an attractive and modern look, with tasteful animations and artwork.
Micropayment channels got many big improvements to the API and implementation. The release in 0.10 can be seen as a beta, in this release the micropayments code has been taken for a test drive for a couple of real apps and many rough edges polished as a result.
The default USER_THREAD executor can now be replaced, allowing a 1-line switch of all callbacks onto a thread of your choice instead of needing to override each callback, each time. This should simplify and clean up the GUI code of wallet apps significantly.
The WalletTool command line app has a more convenient user interface now.
A new DNS seed has been added. The seed is run by Christian Decker, from ETH Zurich.
bitcoinj 0.11 will shortly be available via Maven Central. Please use the dependency verifier plugin and/or check the PGP signatures on the uploads, if you use this!
We finished adding nullity annotations to the API. You should now be able to assume that any method not annotated with @Nullable won't ever return null values.
The WalletAppKit got a bunch of new features and convenience APIs.
The wallet will now create inputs with dummy signatures if the private key for an output is missing, rather than throwing an exception. You can then edit the input later to substitute in a real signature. This is useful when the signing is being done elsewhere, outside of the library.
In full verification mode, execution of scripts (i.e. checking signatures) can now be switched off. This is useful if you trust the source of the chain and just want to calculate the UTXO set.
The wallet risk analysis code is now pluggable, better documented and checks for finality in a more sensible way.
Various memory usage and flow control optimisations were made to allow much larger wallets to sync on Android.
The transaction broadcast algorithm was changed to be more robust.
Double spend handling in the wallet was improved.
Generated signatures now use canonical S values. This will aid a future hard-forking rule change which bans malleable signatures.
Some fixes were made for enable usage with the Orchid Tor library. Further support for Tor is planned for future releases.
Notable bug fixes
Some hard-forking full verification bugs were fixed.
Thanks to Miron, PeerGroup now performs exponential backoff for peer connections, for instance if we cannot connect to them or if they disconnect us. This resolves an annoying bug in which if the library was configured with a single peer that was down, it would spin in a tight loop consuming battery.
Some functionality of the Wallet class was moved into separate classes under the wallet package.
The micropayments API and protocol changed. New clients/servers are not compatible with apps running against previous releases.
The Wallet sendCoins/completeTx methods no longer return booleans or null to indicate failure, they now throw InsufficientMoneyException?or a subclass if the transaction cannot be completed. The exception object typically contains information on how much money is missing.
Some mis-named methods in the HD key derivation API were renamed.
The WalletEventListener interface has an extra method for watching scripts now.
Peer discovery classes moved under the net.discovery package
Any APIs that relied on Netty are now different.
An article on the networking API
Info on testing your apps, and how to use regtest mode to make a private Bitcoin network that allows you to mine blocks instantly.
A reference table showing which API's implement which Bitcoin Improvement Proposals (BIPs).
Need comments on PC setup for machine learning and bitcoin mining
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:
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?
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?
I'd like some clarification on the 32MB P2P protocol limit
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 , 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  owned by Coinbase. It is one of the largest markets (over 42 MM USD/day)  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 , 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)  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 : 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 : 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  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  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 https://en.wikipedia.org/wiki/Bi...  https://www.gdax.com/  Source: https://coinmarketcap.com  http://parasec.net/blog/order-bo...  http://www.bsic.it/marketmanipul...  https://www.theatlantic.com/tech...  https://docs.gdax.com/
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.
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
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:
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!
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:
Improved documentation and explanation of the use cases in Schildbach's wallet's wiki
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.
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:
There may seem to be some inconsistency in the connection header messages between the payment request connection and the payment connection. This is largely because it is how Andreas originally implemented the communication and is hesitant to change it since there are many instances of is software already deployed that implement this scheme.
The current method uses an unauthenticated bluetooth connection for bluetooth 2.1 and newer devices (subject to man in the middle attacks, but not passive eavesdroppers), and an unsecure and unauthenticated connection for older devices. The known concerns here are that someone within 100 meters of the payer could track the bitcoin addresses used for the transaction and could possibly replace the refund address by submitting a forged payment message to the payee. Requiring bluetooth 2.1 and authenticating the connection out of band unfortunately don't seem to be as straightforward/simple of a task with most bluetooth libraries (although I'd love for someone to prove me wrong). It's possible this communication scheme could be extended to use an https "like" protocol that would not care if the underlying bluetooth connection is authenticated or encrypted. It's actually possible that http over a bluetooth socket (instead of tcp socket) could be implemented, however it is presently uncertain whether this would be too slow, too much overhead (both on the devices software and communication), or if http could easily be run over bluetooth sockets on all platforms.
There is no acknowledgement failure message possible in the payment protocol, only an acknowledgement message or lack of acknowledgement message. This issue seems to be a concern and as a result, the memo field is used to send an "ack" or "nack" in Schildbach's wallet. Can we add a boolean status field to the payment acknowledgement message?
I'd personally like a new optional boolean field added to the "PaymentDetails" portion of the "PaymentRequest" to allow for the payer's wallet to match the "Output" optional "amount" fields as a total amount of all Outputs, rather than requiring the amount for each output to be matched exactly. As it currently is, the payee can specify multiple receiving addresses in order to require a payer split up the payments so that when the payee then goes to spend the funds later, they don't necessarily have to give their payees as much knowledge of their balances and spending and receiving habits and sources. As the payment protocol currently is requiring all output amounts to be matched exactly for each output, there is no flexibility given to the payer in order to reduce a merging or unnecessary diverging of account funds, which can reduce the privacy of both the payer and the payee. If the payee were given the option to allow the payer the option to divide the amounts amount the outputs intelligently, there can be some privacy gained.
Amount of data stored in QR codes may be getting large when a backwards compatible URL is used (for wallets that don't support the payment protocol) and can be difficult to scan with outdoor screens that have an extra weather resistant pane when in direct sunlight.
The number of offline transactions of a wallet is limited to the known unspent outputs when they go offline. Long term, I'd like to see wallet devices that can use systems such as Kryptoradio's DVB-T based broadcast (but this will need yet another radio!). Another project may be to develop a blockchain query protocol of some kind where retailers can provide access to blockchain data so that customer's wallets can update their known unspent outputs via bluetooth. It's possible such a bluetooth system could be used in combination of "Kryptoradio" like broadcasts to provide multiple blockchain references.
The additional payment_url approach is a bit sloppy of a solution in the PaymentDetails portion of the PaymentRequest. It would have been ideal to just change this from an optional field to a repeated field, however, the backwards compatibility in the protocol buffer format will provide the last item in the array for a repeated field (to a code that expects it to be an optional field), rather than the first. Because of this, backwards compatibility with https payment requests wouldn't work if the payment_url field is just changed to a repeated field. o Possible alternatives to what is described in the proposed BIP
+ Change payment_url to a repeated field and then reverse the order of the parameter numbers in the payment_url, compared to the bitcoin URL "r parameter". + Create an additional, new payment_url_multi repeated field (or some better name), and then leave the original payment_url field in there for backwards compatibility (and then maybe phase it out in the future).
+ [https://developers.google.com/protocol-buffers/docs/proto#updating](https://developers.google.com/protocol-buffers/docs/proto#updating) # "|optional| is compatible with |repeated|. Given serialized data of a repeated field as input, clients that expect this field to be |optional| will take the last input value if it's a primitive type field or merge all input elements if it's a message type field."
Your comments and suggestions would be greatly appreciated. Andy Schroder
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. 184.108.40.206 or fe80::0012:3456:789a:bcde)
a network/CIDR (e.g. 220.127.116.11/24 or fe80::0000/64)
a network/netmask (e.g. 18.104.22.168/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. 22.214.171.124), a network/netmask (e.g. 126.96.36.199/255.255.255.0) or a network/CIDR (e.g. 188.8.131.52/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 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.  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
The early morning IRC chat consisted of relatively off-topic chatter with a few new users such as RandomGeordie and jrdavis making an appearance and introducing themselves. During this the subreddit /reinst8 is confirmed to redirect to /ReinstateArticle8.
The discussion shifts to sending letters to MP's. IRC user westofcentral shares some advice on this topic.
00:14 < westofcentral> Advice for writing letters, ask your MP directly to elevate your concerns to a specific Gov. Minister and department, then they have to follow it up with the relevant department
IRC User TheMentalist posts this link urging those with a particular skillset or subject-specific knowledge to reply to that thread in the hopes of setting a positional foundation.
IRC User TheMentalist suggests this after an explanation on the transparent nature of minutes;
00:23 <@TheMentalist> So what it'd be nice to do, eventually, is to get a group of us who were there to quickly pull out the highlights of a given day and present them as minutes on the Sub
IRC User Duke highlights the fact that users holding particular positions such as access to the movement's Twitter account, moderator status on the subreddit and the website should be able to be easily contactable. TheMentalist suggests a Google group due to Google Docs and the group mailing feature. The issue of email addresses being made public is brought up and quickly dismissed.
In order to focus the movement's goals, ethos and message we wish to promote TheMentalist suggested an FAQ which can now be found here
Possible future red-post looking to be a reality if all goes well and the movement is supported by /unitedkingdom's moderators.
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
IRC User RoosterSheep shares the beginnings of ReinstateArticle8's logo to which TheMentalist proposes a subreddit post on ideas for the slogan which can be found here. For more information on the logo design and a full update refer to this post by our Design Coordinator RoosterSheep.
Hats off to uberjew.
13:07 < uberjew> OK, I just nabbed facebook.com/reinst8 the youtube channel reinst8 and the G+ thought they might come in handy
TheMentalist posts to /unitedkingdom in the hope of gaining more members for the movement. The post can be found here with a similar x-post to /Europe and /restorethefourth. This was then x-posted various times to relevant subreddits throughout the day as more were suggested.
An interesting user makes an appearance.
15:04 < M2Ys4U> I'm the Pirate Party's deputy campaigns officer, so feel free to prod me at any time if you want to coordinate anything with us :)
The subreddit is now linked to in the announcement bar of /unitedkingdom
IRC brainiac Irl is now flaired as Web Coordinator on this subreddit. His reddit handle is adapa. If you have any wish to aid in the design and development side of things feel free to contact him.
Some discussion is had on the possibility of donations in order to fund SSL for the website in order for it to be more secure.
There is, again, discussion on donations, the formation of an NPO to help fund PR, advertising etc. User, IRL, creates a Bitcoin address whilst TheMentalist is keen that the donation total and funding details are made constantly public. There seems to be an air of confusion on how local wallets work, perhaps needing some clarification in the future.
Due to help from M2Ys4U an embedded chat client for the website has been implemented which can be found, by default now, on the sidebar as well as here.
Push the Sub further, continuing to garner support where possible to grow the following.
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.
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.
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 ...
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...