bitcoin script nulled free download - SourceForge

Marketplace • btcdownloads.com - Nulled's Scripts and Codes for Bitcoin

submitted by btcforumbot to BtcForum [link] [comments]

Bitcoin mentioned around Reddit: Hector Martin on Twitter: "How to panic a current @grsecurity kernel as any user: $ script /dev/null </dev/zero (seriously, WTF)" /r/programming

Bitcoin mentioned around Reddit: Hector Martin on Twitter: submitted by BitcoinAllBot to BitcoinAll [link] [comments]

Using Blockchain and trying to put bitcoins into cold storage. "Determine private key connected script is null"

So, I booted ubuntu from a flash drive and generated a few paper wallets offline. If I want to store the coins into these offline paper wallets do I have to submit the private key into blockchain? Wouldnt this mean its not technically cold storage?????
submitted by Gutierrezca123 to Bitcoin [link] [comments]

Gridcoin 5.0.0.0-Mandatory "Fern" Release

https://github.com/gridcoin-community/Gridcoin-Research/releases/tag/5.0.0.0
Finally! After over ten months of development and testing, "Fern" has arrived! This is a whopper. 240 pull requests merged. Essentially a complete rewrite that was started with the scraper (the "neural net" rewrite) in "Denise" has now been completed. Practically the ENTIRE Gridcoin specific codebase resting on top of the vanilla Bitcoin/Peercoin/Blackcoin vanilla PoS code has been rewritten. This removes the team requirement at last (see below), although there are many other important improvements besides that.
Fern was a monumental undertaking. We had to encode all of the old rules active for the v10 block protocol in new code and ensure that the new code was 100% compatible. This had to be done in such a way as to clear out all of the old spaghetti and ring-fence it with tightly controlled class implementations. We then wrote an entirely new, simplified ruleset for research rewards and reengineered contracts (which includes beacon management, polls, and voting) using properly classed code. The fundamentals of Gridcoin with this release are now on a very sound and maintainable footing, and the developers believe the codebase as updated here will serve as the fundamental basis for Gridcoin's future roadmap.
We have been testing this for MONTHS on testnet in various stages. The v10 (legacy) compatibility code has been running on testnet continuously as it was developed to ensure compatibility with existing nodes. During the last few months, we have done two private testnet forks and then the full public testnet testing for v11 code (the new protocol which is what Fern implements). The developers have also been running non-staking "sentinel" nodes on mainnet with this code to verify that the consensus rules are problem-free for the legacy compatibility code on the broader mainnet. We believe this amount of testing is going to result in a smooth rollout.
Given the amount of changes in Fern, I am presenting TWO changelogs below. One is high level, which summarizes the most significant changes in the protocol. The second changelog is the detailed one in the usual format, and gives you an inkling of the size of this release.

Highlights

Protocol

Note that the protocol changes will not become active until we cross the hard-fork transition height to v11, which has been set at 2053000. Given current average block spacing, this should happen around October 4, about one month from now.
Note that to get all of the beacons in the network on the new protocol, we are requiring ALL beacons to be validated. A two week (14 day) grace period is provided by the code, starting at the time of the transition height, for people currently holding a beacon to validate the beacon and prevent it from expiring. That means that EVERY CRUNCHER must advertise and validate their beacon AFTER the v11 transition (around Oct 4th) and BEFORE October 18th (or more precisely, 14 days from the actual date of the v11 transition). If you do not advertise and validate your beacon by this time, your beacon will expire and you will stop earning research rewards until you advertise and validate a new beacon. This process has been made much easier by a brand new beacon "wizard" that helps manage beacon advertisements and renewals. Once a beacon has been validated and is a v11 protocol beacon, the normal 180 day expiration rules apply. Note, however, that the 180 day expiration on research rewards has been removed with the Fern update. This means that while your beacon might expire after 180 days, your earned research rewards will be retained and can be claimed by advertising a beacon with the same CPID and going through the validation process again. In other words, you do not lose any earned research rewards if you do not stake a block within 180 days and keep your beacon up-to-date.
The transition height is also when the team requirement will be relaxed for the network.

GUI

Besides the beacon wizard, there are a number of improvements to the GUI, including new UI transaction types (and icons) for staking the superblock, sidestake sends, beacon advertisement, voting, poll creation, and transactions with a message. The main screen has been revamped with a better summary section, and better status icons. Several changes under the hood have improved GUI performance. And finally, the diagnostics have been revamped.

Blockchain

The wallet sync speed has been DRASTICALLY improved. A decent machine with a good network connection should be able to sync the entire mainnet blockchain in less than 4 hours. A fast machine with a really fast network connection and a good SSD can do it in about 2.5 hours. One of our goals was to reduce or eliminate the reliance on snapshots for mainnet, and I think we have accomplished that goal with the new sync speed. We have also streamlined the in-memory structures for the blockchain which shaves some memory use.
There are so many goodies here it is hard to summarize them all.
I would like to thank all of the contributors to this release, but especially thank @cyrossignol, whose incredible contributions formed the backbone of this release. I would also like to pay special thanks to @barton2526, @caraka, and @Quezacoatl1, who tirelessly helped during the testing and polishing phase on testnet with testing and repeated builds for all architectures.
The developers are proud to present this release to the community and we believe this represents the starting point for a true renaissance for Gridcoin!

Summary Changelog

Accrual

Changed

Most significantly, nodes calculate research rewards directly from the magnitudes in EACH superblock between stakes instead of using a two- or three- point average based on a CPID's current magnitude and the magnitude for the CPID when it last staked. For those long-timers in the community, this has been referred to as "Superblock Windows," and was first done in proof-of-concept form by @denravonska.

Removed

Beacons

Added

Changed

Removed

Unaltered

As a reminder:

Superblocks

Added

Changed

Removed

Voting

Added

Changed

Removed

Detailed Changelog

[5.0.0.0] 2020-09-03, mandatory, "Fern"

Added

Changed

Removed

Fixed

submitted by jamescowens to gridcoin [link] [comments]

A criticism of the article "Six monetarist errors: why emission won't feed inflation"

(be gentle, it's my first RI attempt, :P; I hope I can make justice to the subject, this is my layman understanding of many macro subjects which may be flawed...I hope you can illuminate me if I have fallen short of a good RI)
Introduction
So, today a heterodox leaning Argentinian newspaper, Ambito Financiero, published an article criticizing monetarism called "Six monetarist errors: why emission won't feed inflation". I find it doesn't properly address monetarism, confuses it with other "economic schools" for whatever the term is worth today and it may be misleading, so I was inspired to write a refutation and share it with all of you.
In some ways criticizing monetarism is more of a historical discussion given the mainstream has changed since then. Stuff like New Keynesian models are the bleeding edge, not Milton Friedman style monetarism. It's more of a symptom that Argentinian political culture is kind of stuck in the 70s on economics that this things keep being discussed.
Before getting to the meat of the argument, it's good to have in mind some common definitions about money supply measures (specifically, MB, M1 and M2). These definitions apply to US but one can find analogous stuff for other countries.
Argentina, for the lack of access to credit given its economic mismanagement and a government income decrease because of the recession, is monetizing deficits way more than before (like half of the budget, apparently, it's money financed) yet we have seen some disinflation (worth mentioning there are widespread price freezes since a few months ago). The author reasons that monetary phenomena cannot explain inflation properly and that other explanations are needed and condemns monetarism. Here are the six points he makes:
1.Is it a mechanical rule?
This way, we can ask by symmetry: if a certainty exists that when emission increases, inflation increases, the reverse should happen when emission becomes negative, obtaining negative inflation. Nonetheless, we know this happens: prices have an easier time increasing and a lot of rigidity decreasing. So the identity between emission and inflation is not like that, deflation almost never exists and the price movement rhythm cannot be controlled remotely only with money quantity. There is no mechanical relationship between one thing and the other.
First, the low hanging fruit: deflation is not that uncommon, for those of you that live in US and Europe it should be obvious given the difficulties central banks had to achieve their targets, but even Argentina has seen deflation during its depression 20 years ago.
Second, we have to be careful with what we mean by emission. A statement of quantity theory of money (extracted from "Money Growth and Inflation: How Long is the Long-Run?") would say:
Inflation occurs when the average level of prices increases. Individual price increases in and of themselves do not equal inflation, but an overall pattern of price increases does. The price level observed in the economy is that which leads the quantity of money supplied to equal the quantity of money demanded. The quantity of money supplied is largely controlled by the [central bank]. When the supply of money increases or decreases, the price level must adjust to equate the quantity of money demanded throughout the economy with the quantity of money supplied. The quantity of money demanded depends not only on the price level but also on the level of real income, as measured by real gross domestic product (GDP), and a variety of other factors including the level of interest rates and technological advances such as the invention of automated teller machines. Money demand is widely thought to increase roughly proportionally with the price level and with real income. That is, if prices go up by 10 percent, or if real income increases by 10 percent, empirical evidence suggests people want to hold 10 percent more money. When the money supply grows faster than the money demand associated with rising real incomes and other factors, the price level must rise to equate supply and demand. That is, inflation occurs. This situation is often referred to as too many dollars chasing too few goods. Note that this theory does not predict that any money-supply growth will lead to inflation—only that part of money supply growth that exceeds the increase in money demand associated with rising real GDP (holding the other factors constant).
So it's not mere emission, but money supply growing faster than money demand which we should consider. So negative emission is not necessary condition for deflation in this theory.
It's worth mentioning that the relationship with prices is observed for a broad measure of money (M2) and after a lag. From the same source of this excerpt one can observe in Fig. 3a the correlation between inflation and money growth for US becomes stronger the longer data is averaged. Price rigidities don't have to change this long term relationship per se.
But what about causality and Argentina? This neat paper shows regressions in two historical periods: 1976-1989 and 1991-2001. The same relationship between M2 and inflation is observed, stronger in the first, highly inflationary period and weaker in the second, more stable, period. The regressions a 1-1 relationship in the high inflation period but deviates a bit in the low inflation period (yet the relationship is still there). Granger causality, as interpreted in the paper, shows prices caused money growth in the high inflation period (arguably because spending was monetized) while the reverse was true for the more stable period.
So one can argue that there is a mechanical relationship, albeit one that is more complicated than simple QTOM theory. The relationship is complicated too for low inflation economies, it gets more relevant the higher inflation is.
Another point the author makes is that liquidity trap is often ignored. I'll ignore the fact that you need specific conditions for the liquidity trap to be relevant to Argentina and address the point. Worth noting that while market monetarists (not exactly old fashioned monetarists) prefer alternative explanations for monetary policy with very low interest rates, this phenomena has a good monetary basis, as explained by Krugman in his famous japanese liquidity trap paper and his NYT blog (See this and this for some relevant articles). The simplified version is that while inflation may follow M2 growth with all the qualifiers needed, central banks may find difficulties targeting inflation when interest rates are low and agents are used to credible inflation targets. Central banks can change MB, not M2 and in normal times is good enough, but at those times M2 is out of control and "credibly irresponsible" policies are needed to return to normal (a more detailed explanation can be found in that paper I just linked, go for it if you are still curious).
It's not like monetary policy is not good, it's that central banks have to do very unconventional stuff to achieve in a low interest rate environment. It's still an open problem but given symmetric inflation targeting policies are becoming more popular I'm optimistic.
2 - Has inflation one or many causes?
In Argentina we know that the main determinant of inflation is dollar price increases. On that, economic concentration of key markets, utility price adjustments, fuel prices, distributive struggles, external commodity values, expectatives, productive disequilibrium, world interest rates, the economic cycle, stationality and external sector restrictions act on it too.
Let's see a simple example: during Macri's government since mid 2017 to 2019 emission was practically null, but when in 2018 the dollar value doubled, inflation doubled too (it went from 24% to 48% in 2018) and it went up again a year later. We see here that the empirical validity of monetarist theory was absent.
For the first paragraph, one could try to run econometric tests for all those variables, at least from my layman perspective. But given that it doesn't pass the smell test (has any country used that in its favor ignoring monetary policy? Also, I have shown there is at least some evidence for the money-price relationship before), I'll try to address what happened in Macri's government and if monetarism (or at least some reasonable extension of it) cannot account for it.
For a complete description of macroeconomic policy on that period, Sturzenegger account is a good one (even if a bit unreliable given he was the central banker for that government and he is considered to have been a failure). The short version is that central banks uses bonds to manage monetary policy and absorb money; given the history of defaults for the country, the Argentinian Central Bank (BCRA) uses its own peso denominated bonds instead of using treasury bonds. At that time period, the BCRA still financed the treasury but the amount got reduced. Also, it emitted pesos to buy dollar reserves, then sterilized them, maybe risking credibility further.
Near the end of 2017 it was evident the government had limited appetite for budget cuts, it had kind of abandoned its inflation target regime and the classic problem of fiscal dominance emerged, as it's shown in the classic "Unpleasant monetarist arithmetic" paper by Wallace and Sargent. Monetary policy gets less effective when the real value of bonds falls, and raising interest rates may be counterproductive in that environment. Rational expectations are needed to complement QTOM.
So, given that Argentina promised to go nowhere with reform, it was expected that money financing would increase at some point in the future and BCRA bonds were dumped in 2018 and 2019 as their value was perceived to have decreased, and so peso demand decreased. It's not that the dollar value increased and inflation followed, but instead that peso demand fell suddenly!
The IMF deal asked for MB growth to be null or almost null but that doesn't say a lot about M2 (which it's the relevant variable here). Without credible policies, the peso demand keeps falling because bonds are dumped even more (see 2019 for a hilariously brutal example of that).
It's not emission per se, but rather that it doesn't adjust properly to peso demand (which is falling). That doesn't mean increasing interest rates is enough to achieve it, following Wallace and Sargent model.
This is less a strict proof that a monetary phenomenon is involved and more stating that the author hasn't shown any problem with that, there are reasonable models for this situation. It doesn't look like an clear empirical failure to me yet.
3 - Of what we are talking about when we talk about emission?
The author mentions many money measures (M0, M1, M2) but it doesn't address it meaningfully as I tried to do above. It feels more like a rhetorical device because there is no point here except "this stuff exists".
Also, it's worth pointing that there are actual criticisms to make to Friedman on those grounds. He failed to forecast US inflation at some points when he switched to M1 instead of using M2, although he later reverted that. Monetarism kind of "failed" there (it also "failed" in the sense that modern central banks don't use money, but instead interest rates as their main tool; "failed" because despite being outdated, it was influential to modern central banking). This is often brought to this kind of discussions like if economics hasn't moved beyond that. For an account of Friedman thoughts on monetary policies and his failures, see this.
4 - Why do many countries print and inflation doesn't increase there?
There is a mention about the japanese situation in the 90s (the liquidity trap) which I have addressed.
The author mentions that many countries "printed" like crazy during the pandemic, and he says:
Monetarism apologists answer, when confronted with those grave empirical problems that happen in "serious countries", that the population "trusts" their monetary authorities, even increasing the money demand in those place despite the emission. Curious, though, it's an appeal to "trust" implying that the relationship between emission and inflation is not objective, but subjective and cultural: an appreciation that abandons mechanicism and the basic certainty of monetarism, because evaluations and diagnostics, many times ideologic, contextual or historical intervene..
That's just a restatement of applying rational expectations to central bank operations. I don't see a problem with that. Rational expectations is not magic, it's an assessment of future earnings by economic actors. Humans may not 100% rational but central banking somehow works on many countries. You cannot just say that people are ideologues and let it at that. What's your model?
Worth noting the author shills for bitcoin a bit in this section, for more cringe.
5 - Are we talking of a physical science or a social science?
Again, a vague mention of rational expectations ("populists and pro market politicians could do the same policies with different results because of how agents respond ideologically and expectatives") without handling the subject meaningfully. It criticizes universal macroeconomic rules that apply everywhere (this is often used to dismiss evidence from other countries uncritically more than as a meaningful point).
6 - How limits work?
The last question to monetarism allows to recognize it something: effectively we can think on a type of vinculation between emission and inflation in extreme conditions. That means, with no monetary rule, no government has the need of taxes but instead can emit and spend all it needs without consequence. We know it's not like that: no government can print infinitely without undesirable effects.
Ok, good disclaimer, but given what he wrote before, what's the mechanism which causes money printing to be inflationary at some point? It was rejected before but now it seems that it exists. What was even the point of the article?
Now, the problem is thinking monetarism on its extremes: without emission we have inflation sometimes, on others we have no inflation with emission, we know that if we have negative emission that doesn't guarantees us negative inflation, but that if emission is radically uncontrolled there will economic effects.
As I wrote above, that's not what monetarism (even on it's simpler form) says, nor a consequence of it. You can see some deviations in low inflation environment but it's not really Argentina's current situation.
Let's add other problems: the elastic question between money and prices is not evident. Neither is time lags in which can work or be neutral. So the question is the limit cases for monetarism which has some reason but some difficulty in explaining them: by which and it what moments rules work and in which it doesn't.
I find the time lag thing to be a red herring. You can observe empirically and not having a proper short/middle run model doesn't invalidate QTOM in the long run. While it may be that increasing interest rates or freezing MB is not effective, that's less a problem of the theory and more a problem of policy implementation.
Conclusion:
I find that the article doesn't truly get monetarism to begin with (see the points it makes about emission and money demand), neither how it's implemented in practice, nor seems to be aware of more modern theories that, while put money on the background, don't necessarily invalidate it (rational expectation ideas, and eventually New Keynesian stuff which addresses stuff like liquidity traps properly).
There are proper criticisms to be made to Friedman old ideas but he still was a relevant man in his time and the economic community has moved on to new, better theories that have some debt to it. I feel most economic discussion about monetarism in Argentina is a strawman of mainstream economics or an attack on Austrians more than genuine points ("monetarism" is used as a shorthand for those who think inflation is a monetary phenomenon more than referring to Friedman and his disciples per se).
submitted by Neronoah to badeconomics [link] [comments]

List of CFML Vulnerabilities & Security Issues

This list is updated frequently as we detect more issues, also note that we can’t detect these issues in all cases on all servers, even if the issue has not been patched yet.
Here are some CFML Vulnerabilities & Security Issues that you might have faced-

  1. Jakarta Virtual Directory Exposed – The /jakarta virtual directory (which is required by CF10+ on Tomcat/IIS) is serving files such as isapi_redirect.properties or isapi_redirect.log. The only URI that should be served is /jakarta/isapi_redirect.dll – you can use Request Filtering to block.
  2. Bitcoin Miner Discovered – Found files in /CFIDE that match the signature of a bitcoin miner exploit. Look for /CFIDE/m /CFIDE/m32 /CFIDE/m64 and /CFIDE/updates.cfm among others.
  3. Hotfix APSB11-14 Not Installed – Apply the hotfixes located in Adobe Security Notice apsb11-14.
  4. Railo Security Issue 2635 – Input of Chr(0) to the ReplaceList function can cause infinate loop / crash. Fixed in Version 4.1.1.008
  5. XSS Injection in cfform.js – A document.write call was found in your /CFIDE/scripts/cfform.js file, an attacker may be injecting a javascript, please check your cfform.js file.
  6. Executable found in CFIDE – Found executable file(s) in /CFIDE with one of the following file extensions: dll, exe, bat, sh
  7. Heartbleed Vulnerability Detected – The heartbleed vulnerability is a bug in OpenSSL (the crypto library used by Apache, NGinx, and others) that can allow the leakage of private keys used for TLS/SSL encryption.
  8. OpenBD AdminAPI Exposed to the Public – The /bluedragon/adminapi/ directory is open to the public it should be locked down to prevent exploit.
  9. Security Hotfix APSB12-26 Not Installed – The security hotfix referenced in Adobe Security Bulletin APSB12-26 was not found to be installed on your server. This hotfix resolves a sandbox permission issue.
  10. Security Hotfix APSB17-30 Not Installed Or Partailly Installed – The security hotfix referenced in Adobe Security Bulletin APSB17-30 was not found to be fully installed on your server. For the hotfix to be effective you must have Java 8 update 121 or greater installed. This hotfix resolves two critical vulnerabilities CVE-2017-11286 and CVE-2017-11283 / CVE-2017-11284 and one important vulnerability CVE-2017-11285. The issues are resolved in ColdFusion 11 Update 13+ and ColdFusion 2016 Update 5+ with Java 8 update 121 or greater.
  11. ColdFusion Example Applications Installed – The ColdFusion example applications are installed at /cfdocs/exampleapps/ or /CFIDE/gettingstarted/, they should not be installed on a production server.
  12. Svn Hidden Directory Exposed – A request for /.svn/text-base/index.cfm.svn-base appears to resolve to a subversion repository, which could lead to source code disclosure. Please block .svn/
  13. Solr Search Service Exposed – CVE-2010-0185 detected. ColdFusion 9 Apache Solr services are exposed to the public. Any data in solr search collections may be exposed to the public. Follow the instructions in APSB10-04 to remedy, or upgrade to ColdFusion 9.0.1.
  14. TLS Compression Supported – TLS Compression should be disabled due to the CRIME TLS vulnerability.
  15. Security Hotfix APSB11-04 Not Installed – The security hotfix referenced in Adobe Security Bulletin APSB11-04 was not found to be installed on your server. This hotfix also contains most prior security hotfixes.
  16. Git Hidden Directory Exposed – A request for /.git/config appears to resolve to a git repository, wouch could lead to source code disclosure. Please block .git/
  17. Cross Site Scripting Vulnerability CVE-2011-4368 – CVE-2011-4368 detected. Apply the hotfix located in Adobe Security Notice apsb11-29.
  18. JVM Vulnerable to Java Null Byte Injection – The JVM that you are running is vulnerable to null byte injections (or null byte poisioning) in java.io file operations. Java 1.7.0_40+ or 1.8+ attempt to mitigate null byte injection attacks.
  19. Java 11 Security Update Available – The JVM that you are running contains security vulnerabilities that could be exploited in server side environments. Update to the latest version of Java 11. Note that Oracle Java 11 requires a commercial license. Adobe CF customers can download Oracle Java 11 from the ColdFusion Downloads Page. You can also use OpenJDK, Amazon Corretto, or other non-oracle JVMs for free.
  20. Security Hotfix APSB19-10 Not Installed – The security hotfix referenced in Adobe Security Bulletin APSB19-10 was not found to be installed on your server. This hotfix resolves 2 issues, one important (CVE-2019-7092) and one critical (CVE-2019-7091). The issues are resolved in ColdFusion 11 Update 16+ ColdFusion 2016 Update 8+ and ColdFusion 2018 Update 2+. For all security fixes to be effective you should also have Java 8 update 121 or greater installed.
  21. Cross Site Scripting Vulnerability CVE-2011-0583 – CVE-2011-0583 detected. Apply the hotfixes located in Adobe Security Notice apsb11-04. The detection of this vulnerability also indicates to a high degree of likelihood that the following vulnerabilities may also exist: CVE-2011-0580, CVE-2011-0581, CVE-2011-0582, CVE-2011-0584
  22. Apache 2.2 Security Update Available – The version of Apache you are running does not contain the most recent security fixes.
  23. BlaseDS/AMF External XML Entity Injection – CVE-2009-3960 detected. You must apply the hotfix specified in Adobe Security Bulliten APSB10-05, otherwise an attacker can read any file on the server that ColdFusion has permission to read. You need to do this even if you don’t use BlaseDS or Flash Remoting because it is enabled in CF by default.
  24. SSL Version 2 Enabled – Your Web Server is accepting SSL V2 connections, a weak protocol. For PCI compliance, and strong security you must disable this protocol on your web server.
  25. Missing Strict-Transport-Security Header – This domain supports HTTPS but does not send the HTTP Strict-Transport-Security response header (HSTS) to force HTTPS.
  26. The /CFIDE/scripts directory is in default location. – Consider changing the default location of /CFIDE/scripts/ by changing the value of the Default Script Src setting in the ColdFusion Administrator.
  27. Recalled Hotfix 10.0.3 Installed – You are running ColdFusion 10.0.3 which has been recalled by adobe due to bugs in the release. Please install the latest 10.0 hotfix.
  28. ComponentUtils Exposed to the Public – The /CFIDE/componentutils/ directory is open to the public it should be locked down to prevent exploit.
  29. ColdFusion Update Available – You may not be running the latest version of ColdFusion 8, consider updating to ColdFusion 8.0.1
  30. Security Hotfix APSB13-10 Not Installed – The security hotfix referenced in Adobe Security Bulletin APSB13-10 was not found on your server. This hotfix resolves authentication issues that could allow an attacker impersonate a user in your application, or a ColdFusion Administrator.
  31. CVE-2010-2861 Detected – Path Traversal Vulnerability detected (CVE-2010-2861 APSB10-18), this allows an attacker to read any file on the servers file system that ColdFusion has access to (within the same drive on windows).
  32. Security Hotfix APSB13-19 Not Installed – The security hotfix referenced in Adobe Security Bulletin APSB13-19 was not found on your server.
  33. Security Hotfix APSB12-15 Not Installed – The security hotfix referenced in Adobe Security Bulletin APSB12-15 was not found to be installed on your server. This hotfix resolves a HTTP response splitting vulnerability in the ColdFusion Component Browser CVE-2012-2041.
  34. Security Hotfix APSB16-16 Not Installed – The security hotfix referenced in Adobe Security Bulletin APSB16-16 was not found to be installed on your server. This hotfix addresses a XSS issue, a Java Deserialization Vulnerability and a TLS Hostname verification issue. This issue is fixed in ColdFusion 10 Update 19+, ColdFusion 11 Update 8+, and ColdFusion 2016 Update 1+
  35. Vulnerable PageSpeed Module – The Version of PageSpeed Module you are using may be vulnerable to one or more vulnerabilities. Update your PageSpeed web server module to the latest version to resolve.
  36. TLS 1.2 Is Not Enabled – Configure your server to accept TLS 1.2 connections for optimal HTTPS security. Note for IIS you must be running Windows 2008r2 or greater for TLS 1.2 support. You can use our IIS SSL / TLS configuration tool to toggle protocol support on your server.
  37. Java 13 EOL – Java 13 has reached end of life at the release of Java 14. It is not a LTS (Long Term Support Version), you can use Java 11 for LTS.
  38. Lucee Security Issue 2015-08-06 – Lucee fixed an XSS issue in version 4.5.1.023. This issue remains unpatched in Railo.
submitted by aligatorraid to coldfusion [link] [comments]

How can I get this script to work for Litecoin 0.8.7.5?

What would I need to do to get this script to work for Litecoin 0.8.7.5? https://github.com/litecoin-project/litecoin/releases/tag/v0.8.7.5
 class Bitcoin { // Configuration options private $username; private $password; private $proto; private $host; private $port; private $url; private $CACertificate; // Information and debugging public $status; public $error; public $raw_response; public $response; private $id = 0; /** * @param string $username * @param string $password * @param string $host * @param int $port * @param string $proto * @param string $url */ function __construct($username, $password, $host = 'localhost', $port = 8332, $url = null) { $this->username = $username; $this->password = $password; $this->host = $host; $this->port = $port; $this->url = $url; // Set some defaults $this->proto = $host == 'localhost' ? 'http':'https'; $this->CACertificate = null; } /** * @param string|null $certificate */ function setSSL($certificate = null) { $this->proto = 'https'; // force HTTPS $this->CACertificate = $certificate; } function __call($method, $params) { $this->status = null; $this->error = null; $this->raw_response = null; $this->response = null; // If no parameters are passed, this will be an empty array $params = array_values($params); // The ID should be unique for each call $this->id++; // Build the request, it's ok that params might have any empty array $request = json_encode(array( 'method' => $method, 'params' => $params, 'id' => $this->id )); // Build the cURL session $curl = curl_init("{$this->proto}://{$this->username}:{$this->password}@{$this->host}:{$this->port}/{$this->url}"); $options = array( CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_FOLLOWLOCATION => TRUE, CURLOPT_MAXREDIRS => 10, CURLOPT_HTTPHEADER => array('Content-type: application/json'), CURLOPT_POST => TRUE, CURLOPT_POSTFIELDS => $request ); if ($this->proto == 'https') { // If the CA Certificate was specified we change CURL to look for it if ($this->CACertificate != null) { $options[CURLOPT_CAINFO] = $this->CACertificate; $options[CURLOPT_CAPATH] = DIRNAME($this->CACertificate); } else { // If not we need to assume the SSL cannot be verified so we set this flag to FALSE to allow the connection $options[CURLOPT_SSL_VERIFYPEER] = FALSE; } } curl_setopt_array($curl, $options); // Execute the request and decode to an array $this->raw_response = curl_exec($curl); $this->response = json_decode($this->raw_response, TRUE); //error_log('this->response: '. print_r($this->response,true)); // If the status is not 200, something is wrong $this->status = curl_getinfo($curl, CURLINFO_HTTP_CODE); // If there was no error, this will be an empty string $curl_error = curl_error($curl); curl_close($curl); if (!empty($curl_error)) { $this->error = $curl_error; } if ($this->response['error']) { // If bitcoind returned an error, put that in $this->error $this->error = $this->response['error']['message']; } elseif ($this->status != 200) { // If bitcoind didn't return a nice error message, we need to make our own switch ($this->status) { case 400: $this->error = 'HTTP_BAD_REQUEST'; break; case 401: $this->error = 'HTTP_UNAUTHORIZED'; break; case 403: $this->error = 'HTTP_FORBIDDEN'; break; case 404: $this->error = 'HTTP_NOT_FOUND'; break; } } if ($this->error) { return FALSE; } return $this->response['result']; } } /* Address History Interface Class */ class AddressHistory { public $address = null; public $n_tx = 0; public $total_sent = 0; public $total_received = 0; public $balance = 0; public $final_balance = 0; public $txns = array(); public function __construct($txn=null) { if(! is_array($txn)) return null; if(array_key_exists('address', $txn)) $this->address = $txn['address']; if(array_key_exists('n_tx', $txn)) $this->n_tx = $txn['n_tx']; if(array_key_exists('total_sent', $txn)) $this->total_sent = $txn['total_sent']; if(array_key_exists('total_received', $txn))$this->total_received = $txn['total_received']; if(array_key_exists('balance', $txn)) $this->balance = $txn['balance']; if(array_key_exists('final_balance', $txn)) $this->final_balance = $txn['final_balance']; if(is_array($txn['txns'])) { foreach($txn['txns'] as $key => $this_txn) { $new_txn = array( 'hash' => $this_txn['hash'], 'block_height' => $this_txn['block_height'], 'value' => $this_txn['value'], 'spent' => $this_txn['spent'], 'spent_by' => $this_txn['spent_by'], 'confirmations'=> $this_txn['confirmations'] ); $this->txns[$key] = new TransRef($new_txn); } } else { $this->txns = null; } return $this; } } /* Transaction Reference Interface Class */ class TransRef { public $hash; public $block_height; public $value; public $spent; public $spent_by; public $confirmations; public function __construct($txnref=null) { if(! is_array($txnref)) return null; if(array_key_exists('hash', $txnref)) $this->hash = $txnref['hash']; if(array_key_exists('block_height', $txnref)) $this->block_height = $txnref['block_height']; if(array_key_exists('value', $txnref)) $this->value = $txnref['value']; if(array_key_exists('spent', $txnref)) $this->spent = $txnref['spent']; if(array_key_exists('spent_by', $txnref)) $this->spent_by = $txnref['spent_by']; if(array_key_exists('confirmations', $txnref)) $this->confirmations = $txnref['confirmations']; return $this; } } /* CoindRPC - JsonRPC Class to talk to bitcoind */ class CoindRPC extends Bitcoin { public function __construct() { return parent::__construct(WN_RPC_USER, WN_RPC_PASS, WN_RPC_HOST, WN_RPC_PORT); } public function __call($method, $params) { return parent::__call($method, $params); } public function get_address_balance($address, $confirmations=0) { try { $address_info = $this->validateaddress($address); if($address_info['isvalid'] == 1 && $address_info['ismine'] == 1) { $balance = $this->getreceivedbyaddress($address, $confirmations); } if($balance != '') { return floatval($balance); } else { return 0; } } catch (Exception $e) { error_log('error: '. print_r($e->getMessage(),true)); error_log('['.__LINE__.'] : '.__FILE__); } } public function get_address_history($address) { try { $address_info = $this->validateaddress($address); if($address_info['isvalid'] == 1 && $address_info['ismine'] == 1) { //- if only listening to one BTC account //$history = $this->listtransactions(WN_RPC_ACCT); $history = $this->listtransactions(); $txns = array(); $final_balance = $balance = 0; foreach($history as $txn) { if($txn['address'] != $address) continue; $n_tx = $total_received = $total_sent = 0; $n_tx = intval($addr_hist['n_tx']) + 1; switch($txn['category']) { case('receive'): $total_received = $addr_hist['total_received'] += $txn['amount']; $balance = $balance + $txn['amount']; //- can we trust final balance here? do we need more history $final_balance = $final_balance + $txn['amount']; break; case('send'): $total_sent = $addr_hist['total_sent'] += $txn['amount']; $balance = $balance + $txn['amount']; //- can we trust final balance here? do we need more history $final_balance = $final_balance + $txn['amount']; break; } $txns[] = array( 'hash' => $txn['txid'], 'value' => $txn['amount'], 'spent' => $txn['spent'], 'spent_by' => $txn['spent_by'], 'confirmations' => $txn['confirmations'], ); } $addr_hist = array( 'address' => $address, 'n_tx' => $n_tx, 'total_sent' => $total_sent, 'total_received' => $total_received, 'balance' => $balance, 'final_balance' => $final_balance, 'txns' => $txns ); $addr_hist = new AddressHistory($addr_hist); } else { $addr_hist = false; error_log('Address invalid: '.$address); error_log('['.__LINE__.'] : '.__FILE__); } return $addr_hist; } catch (Exception $e) { error_log('error: '. print_r($e->getMessage(),true)); error_log('['.__LINE__.'] : '.__FILE__); } } public function get_transaction($hash) { try { return $this->gettransaction($hash); } catch (Exception $e) { error_log('error: '. print_r($e->getMessage(),true)); error_log('['.__LINE__.'] : '.__FILE__); } } } /* Helper class */ class Helper { public static $api = null; public static $db = null; public function __construct($db, $api) { Helper::$api = $api; Helper::$db = $db; } public static function walletnotify_email($txnhead) { //- bitcoind calls walletnotify on 0 confirmations and 1. //- We only want email to go out on the first call. Otherwise //- if we want only one 1 confrime, change this to //- confirmations == 0) return; if($txnhead['confirmations'] > 0) return; $tmpl = file_get_contents('email.notify.tmpl.html'); foreach($txnhead as $key => $val) { $map['{'.$key.'}'] = $val; } $map['{timestamp}'] = date('Y-m-d H:i:s', WN_GLOBAL_TIMESTAMP); $map['{hostname}'] = php_uname('n'); $html = str_replace(array_keys($map), array_values($map), $tmpl); $txid_short = substr($txnhead['txid'], 0, 4).' .. '.substr($txnhead['txid'], -4); $msg = "=WNotify=". "\ntxid: ".$txid_short. "\nAmt : ".$txnhead['amount']. "\nCmnt: ".$txnhead['comment']. "\nAcct: ".$txnhead['account']. "\nConf: ".$txnhead['confirmations']. "\nCat : ".$txnhead['category']. "\nAddr: ".$txnhead['address']. ""; //- send to carrier's email to SMS gateway if configured if(defined('WN_SMS_ADMIN') && filter_var(WN_SMS_ADMIN, FILTER_VALIDATE_EMAIL)) { Helper::send_email_sms($msg, WN_SMS_ADMIN); } return Helper::send_email($html, 'WN:WalletNotify', WN_EMAIL_ADMIN);; } public static function send_email($msg, $subj, $to) { $headers = 'From: '.WN_EMAIL_FROM."\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; if(trim($msg) == '') return false; return mail($to, $subj, $msg, $headers); } public static function send_email_sms($msg, $to) { if(trim($msg) == '') return false; if($to == '') return false; $headers = 'From: '.WN_EMAIL_FROM."\r\n"; return mail($to, null, $msg."\n.", $headers); } } 
submitted by Mjjjokes to cryptodevs [link] [comments]

trsanction standard inside the code of bitcoin core

Hello guys,

I'm reading the bitcoin book and it speaks to the five transaction standard and the type of transaction is inside the method is standard, now I am looking inside the code bitcoin core and I don't find the method isStandard but inside the script, directory exists a file standard.h and standard.cpp, inside the definition of the standard.h exists and enum and is this code
enum txnouttype { TX_NONSTANDARD, // 'standard' transaction types: TX_PUBKEY, TX_PUBKEYHASH, TX_SCRIPTHASH, TX_MULTISIG, TX_NULL_DATA, //!< unspendable OP_RETURN script that carries data TX_WITNESS_V0_SCRIPTHASH, TX_WITNESS_V0_KEYHASH, TX_WITNESS_UNKNOWN, //!< Only for Witness versions not already defined above }; 
Now my question is if this file describes the transaction standard bitcoin core and sorry my terrible English but I'm learning
submitted by crazyjoker96 to Bitcoin [link] [comments]

A Good Pentesting Tools List

Collection of pentesting tools by BrainfuckSec

Anti Forensics Tools
Exploitation Tools
Forensics Tools
Information Gathering
Keyloggers
Maintaining Access
Password Attacks
Reverse Engineering
Sniffing Spoofing
Social Engineering
Vulnerability Analysis
Web Applications
Web Shells
Wireless Attacks
submitted by _brainfuck to Pentesting [link] [comments]

12-13 15:04 - 'Read this went the opposite way' (self.Bitcoin) by /u/fukya40 removed from /r/Bitcoin within 38-48min

'''
// Copyright (c) 2008 Satoshi Nakamoto // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT // SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR // OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS // IN THE SOFTWARE.
class COutPoint; class CInPoint; class CDiskTxPos; class CCoinBase; class CTxIn; class CTxOut; class CTransaction; class CBlock; class CBlockIndex; class CWalletTx; class CKeyItem;
static const unsigned int MAX_SIZE = 0x02000000; static const int64 COIN = 1000000; static const int64 CENT = 10000; static const int64 TRANSACTIONFEE = 1 * CENT; /// change this to a user options setting, optional fee can be zero ///static const unsigned int MINPROOFOFWORK = 40; /// need to decide the right difficulty to start with static const unsigned int MINPROOFOFWORK = 20; /// ridiculously easy for testing
extern map mapBlockIndex; extern const uint256 hashGenesisBlock; extern CBlockIndex* pindexGenesisBlock; extern int nBestHeight; extern CBlockIndex* pindexBest; extern unsigned int nTransactionsUpdated; extern int fGenerateBitcoins;
FILE* OpenBlockFile(unsigned int nFile, unsigned int nBlockPos, const char* pszMode="rb"); FILE* AppendBlockFile(unsigned int& nFileRet); bool AddKey(const CKey& key); vector GenerateNewKey(); bool AddToWallet(const CWalletTx& wtxIn); void ReacceptWalletTransactions(); void RelayWalletTransactions(); bool LoadBlockIndex(bool fAllowNew=true); bool BitcoinMiner(); bool ProcessMessages(CNode* pfrom); bool ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv); bool SendMessages(CNode* pto); int64 CountMoney(); bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& txNew); bool SendMoney(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew);
class CDiskTxPos { public: unsigned int nFile; unsigned int nBlockPos; unsigned int nTxPos;
CDiskTxPos() { SetNull(); }
CDiskTxPos(unsigned int nFileIn, unsigned int nBlockPosIn, unsigned int nTxPosIn) { nFile = nFileIn; nBlockPos = nBlockPosIn; nTxPos = nTxPosIn; }
IMPLEMENT_SERIALIZE( READWRITE(FLATDATA(*this)); ) void SetNull() { nFile = -1; nBlockPos = 0; nTxPos = 0; } bool IsNull() const { return (nFile == -1); }
friend bool operator==(const CDiskTxPos& a, const CDiskTxPos& b) { return (a.nFile == b.nFile && a.nBlockPos == b.nBlockPos && a.nTxPos == b.nTxPos); }
friend bool operator!=(const CDiskTxPos& a, const CDiskTxPos& b) { return !(a == b); }
void print() const { if (IsNull()) printf("null"); else printf("(nFile=%d, nBlockPos=%d, nTxPos=%d)", nFile, nBlockPos, nTxPos); } };
class CInPoint { public: CTransaction* ptx; unsigned int n;
CInPoint() { SetNull(); } CInPoint(CTransaction* ptxIn, unsigned int nIn) { ptx = ptxIn; n = nIn; } void SetNull() { ptx = NULL; n = -1; } bool IsNull() const { return (ptx == NULL && n == -1); } };
class COutPoint { public: uint256 hash; unsigned int n;
COutPoint() { SetNull(); } COutPoint(uint256 hashIn, unsigned int nIn) { hash = hashIn; n = nIn; } IMPLEMENT_SERIALIZE( READWRITE(FLATDATA(*this)); ) void SetNull() { hash = 0; n = -1; } bool IsNull() const { return (hash == 0 && n == -1); }
friend bool operator<(const COutPoint& a, const COutPoint& b) { return (a.hash < b.hash || (a.hash == b.hash && a.n < b.n)); }
friend bool operator==(const COutPoint& a, const COutPoint& b) { return (a.hash == b.hash && a.n == b.n); }
friend bool operator!=(const COutPoint& a, const COutPoint& b) { return !(a == b); }
void print() const { printf("COutPoint(%s, %d)", hash.ToString().substr(0,6).c_str(), n); } };
// // An input of a transaction. It contains the location of the previous // transaction's output that it claims and a signature that matches the // output's public key. // class CTxIn { public: COutPoint prevout; CScript scriptSig;
CTxIn() { }
CTxIn(COutPoint prevoutIn, CScript scriptSigIn) { prevout = prevoutIn; scriptSig = scriptSigIn; }
CTxIn(uint256 hashPrevTx, unsigned int nOut, CScript scriptSigIn) { prevout = COutPoint(hashPrevTx, nOut); scriptSig = scriptSigIn; }
IMPLEMENT_SERIALIZE ( READWRITE(prevout); READWRITE(scriptSig); )
bool IsPrevInMainChain() const { return CTxDB("r").ContainsTx(prevout.hash); }
friend bool operator==(const CTxIn& a, const CTxIn& b) { return (a.prevout == b.prevout && a.scriptSig == b.scriptSig); }
friend bool operator!=(const CTxIn& a, const CTxIn& b) { return !(a == b); }
void print() const { printf("CTxIn("); prevout.print(); if (prevout.IsNull()) { printf(", coinbase %s)\n", HexStr(scriptSig.begin(), scriptSig.end(), false).c_str()); } else { if (scriptSig.size() >= 6) printf(", scriptSig=%02x%02x", scriptSig[4], scriptSig[5]); printf(")\n"); } }
bool IsMine() const; int64 GetDebit() const; };
// // An output of a transaction. It contains the public key that the next input // must be able to sign with to claim it. // class CTxOut { public: int64 nValue; unsigned int nSequence; CScript scriptPubKey;
// disk only CDiskTxPos posNext; //// so far this is only used as a flag, nothing uses the location
public: CTxOut() { nValue = 0; nSequence = UINT_MAX; }
CTxOut(int64 nValueIn, CScript scriptPubKeyIn, int nSequenceIn=UINT_MAX) { nValue = nValueIn; scriptPubKey = scriptPubKeyIn; nSequence = nSequenceIn; }
IMPLEMENT_SERIALIZE ( READWRITE(nValue); READWRITE(nSequence); READWRITE(scriptPubKey); if (nType & SER_DISK) READWRITE(posNext); )
uint256 GetHash() const { return SerializeHash(*this); }
bool IsFinal() const { return (nSequence == UINT_MAX); }
bool IsMine() const { return ::IsMine(scriptPubKey); }
int64 GetCredit() const { if (IsMine()) return nValue; return 0; }
friend bool operator==(const CTxOut& a, const CTxOut& b) { return (a.nValue == b.nValue && a.nSequence == b.nSequence && a.scriptPubKey == b.scriptPubKey); }
friend bool operator!=(const CTxOut& a, const CTxOut& b) { return !(a == b); }
void print() const { if (scriptPubKey.size() >= 6) printf("CTxOut(nValue=%I64d, nSequence=%u, scriptPubKey=%02x%02x, posNext=", nValue, nSequence, scriptPubKey[4], scriptPubKey[5]); posNext.print(); printf(")\n"); } };
// // The basic transaction that is broadcasted on the network and contained in // blocks. A transaction can contain multiple inputs and outputs. // class CTransaction { public: vector vin; vector vout; unsigned int nLockTime;
CTransaction() { SetNull(); }
IMPLEMENT_SERIALIZE ( if (!(nType & SER_GETHASH)) READWRITE(nVersion);
// Set version on stream for writing back same version if (fRead && s.nVersion == -1) s.nVersion = nVersion;
READWRITE(vin); READWRITE(vout); READWRITE(nLockTime); )
void SetNull() { vin.clear(); vout.clear(); nLockTime = 0; }
bool IsNull() const { return (vin.empty() && vout.empty()); }
uint256 GetHash() const { return SerializeHash(*this); }
bool AllPrevInMainChain() const { foreach(const CTxIn& txin, vin) if (!txin.IsPrevInMainChain()) return false; return true; }
bool IsFinal() const { if (nLockTime == 0) return true; if (nLockTime < GetAdjustedTime()) return true; foreach(const CTxOut& txout, vout) if (!txout.IsFinal()) return false; return true; }
bool IsUpdate(const CTransaction& b) const { if (vin.size() != b.vin.size() || vout.size() != b.vout.size()) return false; for (int i = 0; i < vin.size(); i++) if (vin[i].prevout != b.vin[i].prevout) return false;
bool fNewer = false; unsigned int nLowest = UINT_MAX; for (int i = 0; i < vout.size(); i++) { if (vout[i].nSequence != b.vout[i].nSequence) { if (vout[i].nSequence <= nLowest) { fNewer = false; nLowest = vout[i].nSequence; } if (b.vout[i].nSequence < nLowest) { fNewer = true; nLowest = b.vout[i].nSequence; } } } return fNewer; }
bool IsCoinBase() const { return (vin.size() == 1 && vin[0].prevout.IsNull()); }
bool CheckTransaction() const { // Basic checks that don't depend on any context if (vin.empty() || vout.empty()) return false;
// Check for negative values int64 nValueOut = 0; foreach(const CTxOut& txout, vout) { if (txout.nValue < 0) return false; nValueOut += txout.nValue; }
if (IsCoinBase()) { if (vin[0].scriptSig.size() > 100) return false; } else { foreach(const CTxIn& txin, vin) if (txin.prevout.IsNull()) return false; }
return true; }
bool IsMine() const { foreach(const CTxOut& txout, vout) if (txout.IsMine()) return true; return false; }
int64 GetDebit() const { int64 nDebit = 0; foreach(const CTxIn& txin, vin) nDebit += txin.GetDebit(); return nDebit; }
int64 GetCredit() const { int64 nCredit = 0; foreach(const CTxOut& txout, vout) nCredit += txout.GetCredit(); return nCredit; }
int64 GetValueOut() const { int64 nValueOut = 0; foreach(const CTxOut& txout, vout) { if (txout.nValue < 0) throw runtime_error("CTransaction::GetValueOut() : negative value"); nValueOut += txout.nValue; } return nValueOut; }
bool ReadFromDisk(CDiskTxPos pos, FILE** pfileRet=NULL) { CAutoFile filein = OpenBlockFile(pos.nFile, 0, pfileRet ? "rb+" : "rb"); if (!filein) return false;
// Read transaction if (fseek(filein, pos.nTxPos, SEEK_SET) != 0) return false; filein >> *this;
// Return file pointer if (pfileRet) { if (fseek(filein, pos.nTxPos, SEEK_SET) != 0) return false; *pfileRet = filein.release(); } return true; }
friend bool operator==(const CTransaction& a, const CTransaction& b) { return (a.vin == b.vin && a.vout == b.vout && a.nLockTime == b.nLockTime); }
friend bool operator!=(const CTransaction& a, const CTransaction& b) { return !(a == b); }
void print() const { printf("CTransaction(vin.size=%d, vout.size=%d, nLockTime=%d)\n", vin.size(), vout.size(), nLockTime); for (int i = 0; i < vin.size(); i++) { printf(" "); vin[i].print(); } for (int i = 0; i < vout.size(); i++) { printf(" "); vout[i].print(); } }
bool TestDisconnectInputs(CTxDB& txdb, map& mapTestPool) { return DisconnectInputs(txdb, mapTestPool, true); }
bool TestConnectInputs(CTxDB& txdb, map& mapTestPool, bool fMemoryTx, bool fIgnoreDiskConflicts, int64& nFees) { return ConnectInputs(txdb, mapTestPool, CDiskTxPos(1, 1, 1), 0, true, fMemoryTx, fIgnoreDiskConflicts, nFees); }
bool DisconnectInputs(CTxDB& txdb) { static map mapTestPool; return DisconnectInputs(txdb, mapTestPool, false); }
bool ConnectInputs(CTxDB& txdb, CDiskTxPos posThisTx, int nHeight) { static map mapTestPool; int64 nFees; return ConnectInputs(txdb, mapTestPool, posThisTx, nHeight, false, false, false, nFees); }
private: bool DisconnectInputs(CTxDB& txdb, map& mapTestPool, bool fTest); bool ConnectInputs(CTxDB& txdb, map& mapTestPool, CDiskTxPos posThisTx, int nHeight, bool fTest, bool fMemoryTx, bool fIgnoreDiskConflicts, int64& nFees);
public: bool AcceptTransaction(CTxDB& txdb, bool fCheckInputs=true); bool AcceptTransaction() { CTxDB txdb("r"); return AcceptTransaction(txdb); } bool ClientConnectInputs(); };
// // A transaction with a merkle branch linking it to the timechain // class CMerkleTx : public CTransaction { public: uint256 hashBlock; vector vMerkleBranch; int nIndex;
CMerkleTx() { Init(); }
CMerkleTx(const CTransaction& txIn) : CTransaction(txIn) { Init(); }
void Init() { hashBlock = 0; nIndex = -1; }
IMPLEMENT_SERIALIZE ( nSerSize += SerReadWrite(s, (CTransaction)this, nType, nVersion, ser_action); if (!(nType & SER_GETHASH)) READWRITE(nVersion); READWRITE(hashBlock); READWRITE(vMerkleBranch); READWRITE(nIndex); )
int SetMerkleBranch(); int IsInMainChain() const; bool AcceptTransaction(CTxDB& txdb, bool fCheckInputs=true); bool AcceptTransaction() { CTxDB txdb("r"); return AcceptTransaction(txdb); } };
// // A transaction with a bunch of additional info that only the owner cares // about. It includes any unrecorded transactions needed to link it back // to the timechain. // class CWalletTx : public CMerkleTx { public: vector vtxPrev; map mapValue; vector > vOrderForm; unsigned int nTime; char fFromMe; char fSpent;
//// probably need to sign the order info so know it came from payer
CWalletTx() { Init(); }
CWalletTx(const CMerkleTx& txIn) : CMerkleTx(txIn) { Init(); }
CWalletTx(const CTransaction& txIn) : CMerkleTx(txIn) { Init(); }
void Init() { nTime = 0; fFromMe = false; fSpent = false; }
IMPLEMENT_SERIALIZE ( /// would be nice for it to return the version number it reads, maybe use a reference nSerSize += SerReadWrite(s, (CMerkleTx)this, nType, nVersion, ser_action); if (!(nType & SER_GETHASH)) READWRITE(nVersion); READWRITE(vtxPrev); READWRITE(mapValue); READWRITE(vOrderForm); READWRITE(nTime); READWRITE(fFromMe); READWRITE(fSpent); )
bool WriteToDisk() { return CWalletDB().WriteTx(GetHash(), *this); }
void AddSupportingTransactions(CTxDB& txdb); void AddSupportingTransactions() { CTxDB txdb("r"); AddSupportingTransactions(txdb); }
bool AcceptWalletTransaction(CTxDB& txdb, bool fCheckInputs=true); bool AcceptWalletTransaction() { CTxDB txdb("r"); return AcceptWalletTransaction(txdb); }
void RelayWalletTransaction(CTxDB& txdb); void RelayWalletTransaction() { CTxDB txdb("r"); RelayWalletTransaction(txdb); } };
// // Nodes collect new transactions into a block, hash them into a hash tree, // and scan through nonce values to make the block's hash satisfy proof-of-work // requirements. When they solve the proof-of-work, they broadcast the block // to everyone and the block is added to the timechain. The first transaction // in the block is a special one that creates a new coin owned by the creator // of the block. // // Blocks are appended to blk0001.dat files on disk. Their location on disk // is indexed by CBlockIndex objects in memory. // class CBlock { public: // header uint256 hashPrevBlock; uint256 hashMerkleRoot; unsigned int nTime; unsigned int nBits; unsigned int nNonce;
// network and disk vector vtx;
// memory only mutable vector vMerkleTree;
CBlock() { SetNull(); }
IMPLEMENT_SERIALIZE ( if (!(nType & SER_GETHASH)) READWRITE(nVersion); READWRITE(hashPrevBlock); READWRITE(hashMerkleRoot); READWRITE(nTime); READWRITE(nBits); READWRITE(nNonce);
// ConnectBlock depends on vtx being last so it can calculate offset if (!(nType & (SER_GETHASH|SER_BLOCKHEADERONLY))) READWRITE(vtx); else if (fRead) const_cast(this)->vtx.clear(); )
void SetNull() { hashPrevBlock = 0; hashMerkleRoot = 0; nTime = 0; nBits = 0; nNonce = 0; vtx.clear(); vMerkleTree.clear(); }
bool IsNull() const { return (nBits == 0); }
uint256 GetHash() const { return Hash(BEGIN(hashPrevBlock), END(nNonce)); }
uint256 BuildMerkleTree() const { vMerkleTree.clear(); foreach(const CTransaction& tx, vtx) vMerkleTree.push_back(tx.GetHash()); int j = 0; for (int nSize = vtx.size(); nSize > 1; nSize = (nSize + 1) / 2) { for (int i = 0; i < nSize; i += 2) { int i2 = min(i+1, nSize-1); vMerkleTree.push_back(Hash(BEGIN(vMerkleTree[j+i]), END(vMerkleTree[j+i]), BEGIN(vMerkleTree[j+i2]), END(vMerkleTree[j+i2]))); } j += nSize; } return (vMerkleTree.empty() ? 0 : vMerkleTree.back()); }
vector GetMerkleBranch(int nIndex) const { if (vMerkleTree.empty()) BuildMerkleTree(); vector vMerkleBranch; int j = 0; for (int nSize = vtx.size(); nSize > 1; nSize = (nSize + 1) / 2) { int i = min(nIndex1, nSize-1); vMerkleBranch.push_back(vMerkleTree[j+i]); nIndex >>= 1; j += nSize; } return vMerkleBranch; }
static uint256 CheckMerkleBranch(uint256 hash, const vector& vMerkleBranch, int nIndex) { foreach(const uint256& otherside, vMerkleBranch) { if (nIndex & 1) hash = Hash(BEGIN(otherside), END(otherside), BEGIN(hash), END(hash)); else hash = Hash(BEGIN(hash), END(hash), BEGIN(otherside), END(otherside)); nIndex >>= 1; } return hash; }
bool WriteToDisk(bool fWriteTransactions, unsigned int& nFileRet, unsigned int& nBlockPosRet) { // Open history file to append CAutoFile fileout = AppendBlockFile(nFileRet); if (!fileout) return false; if (!fWriteTransactions) fileout.nType |= SER_BLOCKHEADERONLY;
// Write index header unsigned int nSize = fileout.GetSerializeSize(*this); fileout << FLATDATA(pchMessageStart) << nSize;
// Write block nBlockPosRet = ftell(fileout); if (nBlockPosRet == -1) return false; fileout << *this;
return true; }
bool ReadFromDisk(unsigned int nFile, unsigned int nBlockPos, bool fReadTransactions) { SetNull();
// Open history file to read CAutoFile filein = OpenBlockFile(nFile, nBlockPos, "rb"); if (!filein) return false; if (!fReadTransactions) filein.nType |= SER_BLOCKHEADERONLY;
// Read block filein >> *this;
// Check the header if (nBits < MINPROOFOFWORK || GetHash() > (~uint256(0) >> nBits)) return error("CBlock::ReadFromDisk : errors in block header");
return true; }
void print() const { printf("CBlock(hashPrevBlock=%s, hashMerkleRoot=%s, nTime=%u, nBits=%u, nNonce=%u, vtx=%d)\n", hashPrevBlock.ToString().substr(0,6).c_str(), hashMerkleRoot.ToString().substr(0,6).c_str(), nTime, nBits, nNonce, vtx.size()); for (int i = 0; i < vtx.size(); i++) { printf(" "); vtx[i].print(); } printf(" vMerkleTree: "); for (int i = 0; i < vMerkleTree.size(); i++) printf("%s ", vMerkleTree[i].ToString().substr(0,6).c_str()); printf("\n"); }
bool ReadFromDisk(const CBlockIndex* blockindex, bool fReadTransactions); bool TestDisconnectBlock(CTxDB& txdb, map& mapTestPool); bool TestConnectBlock(CTxDB& txdb, map& mapTestPool); bool DisconnectBlock(); bool ConnectBlock(unsigned int nFile, unsigned int nBlockPos, int nHeight); bool AddToBlockIndex(unsigned int nFile, unsigned int nBlockPos, bool fWriteDisk); bool CheckBlock() const; bool AcceptBlock(); };
// // The timechain is a tree shaped structure starting with the // genesis block at the root, with each block potentially having multiple // candidates to be the next block. pprev and pnext link a path through the // main/longest chain. A blockindex may have multiple pprev pointing back // to it, but pnext will only point forward to the longest branch, or will // be null if the block is not part of the longest chain. // class CBlockIndex { public: CBlockIndex* pprev; CBlockIndex* pnext; unsigned int nFile; unsigned int nBlockPos; int nHeight;
CBlockIndex() { pprev = NULL; pnext = NULL; nFile = 0; nBlockPos = 0; nHeight = 0; }
CBlockIndex(unsigned int nFileIn, unsigned int nBlockPosIn) { pprev = NULL; pnext = NULL; nFile = nFileIn; nBlockPos = nBlockPosIn; nHeight = 0; }
bool IsInMainChain() const { return (pnext || this == pindexBest); }
bool EraseBlockFromDisk() { // Open history file CAutoFile fileout = OpenBlockFile(nFile, nBlockPos, "rb+"); if (!fileout) return false;
// Overwrite with empty null block CBlock block; block.SetNull(); fileout << block;
return true; }
bool TestDisconnectBlock(CTxDB& txdb, map& mapTestPool) { CBlock block; if (!block.ReadFromDisk(nFile, nBlockPos, true)) return false; return block.TestDisconnectBlock(txdb, mapTestPool); }
bool TestConnectBlock(CTxDB& txdb, map& mapTestPool) { CBlock block; if (!block.ReadFromDisk(nFile, nBlockPos, true)) return false; return block.TestConnectBlock(txdb, mapTestPool); }
bool DisconnectBlock() { CBlock block; if (!block.ReadFromDisk(nFile, nBlockPos, true)) return false; return block.DisconnectBlock(); }
bool ConnectBlock() { CBlock block; if (!block.ReadFromDisk(nFile, nBlockPos, true)) return false; return block.ConnectBlock(nFile, nBlockPos, nHeight); }
void print() const { printf("CBlockIndex(nprev=%08x, pnext=%08x, nFile=%d, nBlockPos=%d, nHeight=%d)\n", pprev, pnext, nFile, nBlockPos, nHeight); } };
void PrintTimechain();
// // Describes a place in the timechain to another node such that if the // other node doesn't have the same branch, it can find a recent common trunk. // The further back it is, the further before the branch point it may be. // class CBlockLocator { protected: vector vHave; public:
CBlockLocator() { }
explicit CBlockLocator(const CBlockIndex* pindex) { Set(pindex); }
explicit CBlockLocator(uint256 hashBlock) { map::iterator mi = mapBlockIndex.find(hashBlock); if (mi != mapBlockIndex.end()) Set((*mi).second); }
IMPLEMENT_SERIALIZE ( if (!(nType & SER_GETHASH)) READWRITE(nVersion); READWRITE(vHave); )
void Set(const CBlockIndex* pindex) { vHave.clear(); int nStep = 1; while (pindex) { CBlock block; block.ReadFromDisk(pindex, false); vHave.push_back(block.GetHash());
// Exponentially larger steps back for (int i = 0; pindex && i < nStep; i++) pindex = pindex->pprev; if (vHave.size() > 10) nStep *= 2; } }
CBlockIndex* GetBlockIndex() { // Find the first block the caller has in the main chain foreach(const uint256& hash, vHave) { map::iterator mi = mapBlockIndex.find(hash); if (mi != mapBlockIndex.end()) { CBlockIndex* pindex = (*mi).second; if (pindex->IsInMainChain()) return pindex; } } return pindexGenesisBlock; }
uint256 GetBlockHash() { // Find the first block the caller has in the main chain foreach(const uint256& hash, vHave) { map::iterator mi = mapBlockIndex.find(hash); if (mi != mapBlockIndex.end()) { CBlockIndex* pindex = (*mi).second; if (pindex->IsInMainChain()) return hash; } } return hashGenesisBlock; }
int GetHeight() { CBlockIndex* pindex = GetBlockIndex(); if (!pindex) return 0; return pindex->nHeight; } };
extern map mapTransactions; extern map mapWallet; extern vector > vWalletUpdated; extern CCriticalSection cs_mapWallet; extern map, CPrivKey> mapKeys; extern map > mapPubKeys; extern CCriticalSection cs_mapKeys; extern CKey keyUser;
'''
Read this went the opposite way
Go1dfish undelete link
unreddit undelete link
Author: fukya40
submitted by removalbot to removalbot [link] [comments]

Core/AXA/Blockstream CTO Greg Maxwell, CEO Adam Back, attack dog Luke-Jr and censor Theymos are sabotaging Bitcoin - but they lack the social skills to even feel guilty for this. Anyone who attempts to overrule the market and limit or hard-code Bitcoin's blocksize must be rejected by the community.

Centrally planned blocksize is not a desirable feature - it's an insidious bug which is slowly and quietly suppressing Bitcoin's adoption and price and market cap.
And SegWit's dangerous "Anyone-Can-Spend" hack isn't just a needless kludge (which Core/Blockstream/AXA are selfishly trying to quietly slip into Bitcoin via a dangerous and messy soft fork - because they're deathly afraid of hard fork, knowing that most people would vote against their shitty code if they ever had the balls to put it up for an explicit, opt-in vote).
SegWit-as-a-soft-fork is a poison-pill for Bitcoin
SegWit is brought to you by the anti-Bitcoin central bankers at AXA and the economically ignorant, central blocksize planners at Blockstream whose dead-end "road map" for Bitcoin is:
AXA is trying to sabotage Bitcoin by paying the most ignorant, anti-market devs in Bitcoin: Core/Blockstream
This is the direction that Bitcoin has been heading in since late 2014 when Blockstream started spreading their censorship and propaganda and started bribing and corrupting the "Core" devs using $76 million in fiat provided by corrupt, anti-Bitcoin "fantasy fiat" finance firms like the debt-backed, derivatives-addicted insurance mega-giant AXA.
Remember:
You Do The Math, and follow the money, and figure out why Bitcoin has been slowly failing to prosper ever since AXA started bribing Core devs to cripple our code with their centrally planned blocksize and now their "Anyone-Can-Spend" SegWit poison-pill.
Smart, honest devs fix bugs. Fiat-fueled AXA-funded Core/Blockstream devs add bugs - and then turn around and try to lie to our face and claim their bugs are somehow "features"
Recently, people discovered bugs in other Bitcoin implementations - memory leaks in BU's software, "phone home" code in AntMiner's firmware.
And the devs involved immediately took public responsibility, and fixed these bugs.
Meanwhile...
So the difference is: BU's and AntMiner's devs possess enough social and economic intelligence to fix bugs in their code immediately when the community finds them.
Meanwhile, most people in the community have been in an absolute uproar for years now against AXA-funded Blockstream's centrally planned blocksize and their deadly Anyone-Can-Spend hack/kludge/poison-pill.
Of course, the home-schooled fiat-fattened sociopath Blockstream CTO One-Meg Greg u/nullc would probably just dismiss all these Bitcoin users as the "shreaking" [sic] masses.
Narcissistic sociopaths like AXA-funded Blockstream CTO Greg Maxwell and CTO Adam and their drooling delusional attack dog Luke-Jr (another person who was home-schooled - which may help explain why he's also such a tone-deaf anti-market sociopath) are just too stupid and arrogant to have the humility and the shame to shut the fuck up and listen to the users when everyone has been pointing out these massive lethal bugs in Core's shitty code.
Greg, Adam, Luke-Jr, and Theymos are the most damaging people in Bitcoin
These are the four main people who are (consciously or unconsciously) attempting to sabotage Bitcoin:
These toxic idiots are too stupid and shameless and sheltered - and too anti-social and anti-market - to even begin to recognize the lethal bugs they have been trying to introduce into Bitcoin's specification and our community.
Users decide on specifications. Devs merely provide implementations.
Guys like Greg think that they're important because they can do implemenation-level stuff (like avoiding memory leaks in C++ code).
But they are total failures when it comes to specification-level stuff (ie, they are incapable of figuring out how to "grow" a potentially multi-trillion-dollar market by maximally leveraging available technology).
Core/Blockstream is living in a fantasy world. In the real world everyone knows (1) our hardware can support 4-8 MB (even with the Great Firewall), and (2) hard forks are cleaner than soft forks. Core/Blockstream refuses to offer either of these things. Other implementations (eg: BU) can offer both.
https://np.reddit.com/btc/comments/5ejmin/coreblockstream_is_living_in_a_fantasy_world_in/
Greg, Adam, Luke-Jr and Theymos apparently lack the social and economic awareness and human decency to feel any guilt or shame for the massive damage they are attempting to inflict on Bitcoin - and on the world.
Their ignorance is no excuse
Any dev who is ignorant enough to attempt to propose adding such insidious bugs to Bitcoin needs to be rejected by the Bitcoin community - no matter how many years they keep on loudly insisting on trying to sabotage Bitcoin like this.
The toxic influence and delusional lies of AXA-funded Blockstream CTO Greg Maxwell, CEO Adam Back, attack dog Luke-Jr and censor Theymos are directly to blame for the slow-motion disaster happening in Bitcoin right now - where Bitcoin's market cap has continued to fall from 100% towards 60% - and is continuing to drop.
When bitcoin drops below 50%, most of the capital will be in altcoins. All they had to do was increase the block size to 2mb as they promised. Snatching defeat from the jaws of victory.
https://np.reddit.com/btc/comments/68219y/when_bitcoin_drops_below_50_most_of_the_capital/
u/FormerlyEarlyAdopter : "I predict one thing. The moment Bitcoin hard-forks away from Core clowns, all the shit-coins out there will have a major sell-off." ... u/awemany : "Yes, I expect exactly the same. The Bitcoin dominance index will jump above 95% again."
https://np.reddit.com/btc/comments/5yfcsw/uformerlyearlyadopter_i_predict_one_thing_the/
Market volume (ie, blocksize) should be decided by the market - not based on some arbitrary number that some ignorant dev pulled out of their ass
For any healthy cryptocurrency, market price and market capitalization and market volume (a/k/a "blocksize") are determined by the market - not by any dev team, not by central bankers from AXA, not by economically ignorant devs like Adam and Greg (or that other useless idiot - Core "Lead Maintainer" Wladimir van der Laan), not by some drooling pathological delusional authoritarian freak like Luke-Jr, and not by some petty tyrant and internet squatter and communmity-destroyer like Theymos.
The only way that Bitcoin can survive and prosper is if we, as a community, denounce and reject these pathological "centralized blocksize" control freaks like Adam and Greg and Luke and Theymos who are trying to use tricks like fiat and censorship and lies (in collusion with their army of trolls organized and unleashed by the Dragons Den) to impose their ignorance and insanity on our currency.
These losers might be too ignorant and anti-social to even begin to understand the fact that they are attempting to sabotage Bitcoin.
But their ignorance is no excuse. And Bitcoin is getting ready to move on and abandon these losers.
There are many devs who are much better than Greg, Adam and Luke-Jr
A memory leak is an implementation error, and a centrally planned blocksize is a specification error - and both types of errors will be avoided and removed by smart devs who listen to the community.
There are plenty of devs who can write Bitcoin implementations in C++ - plus plenty of devs who can write Bitcoin implementations in other languages as well, such as:
Greg, Adam, Luke-Jr and Theymos are being exposed as miserable failures
AXA-funded Blockstream CTO Greg Maxwell, CEO Adam Back, their drooling attack dog Luke-Jr and their censor Theymos (and all the idiot small-blockheads, trolls, and shills who swallow the propaganda and lies cooked up in the Dragons Den) are being exposed more and more every day as miserable failures.
Greg, Adam, Luke-Jr and Theymos had the arrogance and the hubris to want to be "trusted" as "leaders".
But Bitcoin is the world's first cryptocurrency - so it doesn't need trust, and it doesn't need leaders. It is decentralized and trustless.
C++ devs should not be deciding Bitcoin's volume. The market should decide.
It's not suprising that a guy like "One-Meg Greg" who adopts a nick like u/nullc (because he spends most of his life worrying about low-level details like how to avoid null pointer errors in C++ while the second-most-powerful fiat finance corporation in the world AXA is throwing tens of millions of dollars of fiat at his company to reward him for being a "useful idiot") has turned to be not very good at seeing the "big picture" of Bitcoin economics.
So it also comes as no suprise that Greg Maxwell - who wanted to be the "leader" of Bitcoin - has turned out to be one of most harmful people in Bitcoin when it comes to things like growing a potentially multi-trillion-dollar market and economy.
All the innovation and growth and discussion in cryptocurrencies is happening everywhere else - not at AXA-funded Blockstream and r\bitcoin (and the recently discovered Dragons Den, where they plan their destructive social engineering campaigns).
Those are the censored centralized cesspools financed by central bankers and overrun by loser devs and the mindless trolls who follow them - and supported by inefficient miners who want to cripple Bitcoin with centrally planned blocksize (and dangerous "Anyone-Can-Spend" SegWit).
Bitcoin is moving on to bigger blocks and much higher prices - leaving AXA-funded Blockstream's crippled censored centrally planned shit-coin in the dust
Let them stagnate in their crippled shit-coin with its centrally planned, artificial, arbitrary 1MB 1.7MB blocksize, and SegWit's Anyone-Can-Spend hack kludge poison-pill.
Bitcoin is moving on without these tyrants and liars and losers and sociopaths - and we're going to leave their crippled censored centrally planned shit-coin in the dust.
Core/Blockstream are now in the Kübler-Ross "Bargaining" phase - talking about "compromise". Sorry, but markets don't do "compromise". Markets do COMPETITION. Markets do winner-takes-all. The whitepaper doesn't talk about "compromise" - it says that 51% of the hashpower determines WHAT IS BITCOIN.
https://np.reddit.com/btc/comments/5y9qtg/coreblockstream_are_now_in_the_k%C3%BCblerross/
Core/Blockstream is living in a fantasy world. In the real world everyone knows (1) our hardware can support 4-8 MB (even with the Great Firewall), and (2) hard forks are cleaner than soft forks. Core/Blockstream refuses to offer either of these things. Other implementations (eg: BU) can offer both.
https://np.reddit.com/btc/comments/5ejmin/coreblockstream_is_living_in_a_fantasy_world_in/
1 BTC = 64 000 USD would be > $1 trillion market cap - versus $7 trillion market cap for gold, and $82 trillion of "money" in the world. Could "pure" Bitcoin get there without SegWit, Lightning, or Bitcoin Unlimited? Metcalfe's Law suggests that 8MB blocks could support a price of 1 BTC = 64 000 USD
https://np.reddit.com/btc/comments/5lzez2/1_btc_64_000_usd_would_be_1_trillion_market_cap/
Bitcoin Original: Reinstate Satoshi's original 32MB max blocksize. If actual blocks grow 54% per year (and price grows 1.542 = 2.37x per year - Metcalfe's Law), then in 8 years we'd have 32MB blocks, 100 txns/sec, 1 BTC = 1 million USD - 100% on-chain P2P cash, without SegWit/Lightning or Unlimited
https://np.reddit.com/btc/comments/5uljaf/bitcoin_original_reinstate_satoshis_original_32mb/
submitted by ydtm to btc [link] [comments]

The real reason why UAHF spec won't require replay prevention.

Instead of making their new sighash optional, they could easily make it mandatory and prevent unintentional replays...
I think I found out why.
  1. Alice is a long time hodler of bitcoin, she sees that segwit has done great things for bitcoin and decides to move her coins from her old paper wallet to a Bech32 scanned P2WPKH address that the new Trezor interface (in the future) let's her send to. The paper wallet sweeping app can send to P2WPKH properly. So she is able to simply send her 100000 BTC to her shiny new Segwit Trezor... yaaaaay!
  2. Bob sees the transaction being broadcasted without any OP_RETURN nonsense, and smirks to himself.
  3. Bob takes the txid of the transaction Alice sent and the index of the segwit output. Slaps on a null scriptSig, and adds an output spending the whole entirety of the output to his P2PKH utxo, and broadcasts Alice's transaction AND Bob's new transaction on the BCC blockchain where Segwit will not be activated, so Alice's P2WPKH is merely an ANYONE_CAN_PAY utxo.
So basically, any users that wish to use Segwit after the lockin period in late August will need to be certain to include the stupid childish OP_RETURN replay protection OR face having your segwit funds be stolen on the BCC side.
Also, to take it one step further, a miner could easily just steal the output and put its entirety into fees which they would use to line their own pockets and mix the coins in to make it look like the miners themselves didn't steal it.
You know, I was starting to support UAHF's actions because they seemed to be amicably splitting off and saying their goodbyes, though I thought it very strange they were making replay prevention optional....... then it hit me. This was their intention all along. A final middle finger to Segwit users.
UAHF needs to remedy this. Or else they lose all respect.
submitted by kinoshitajona to Bitcoin [link] [comments]

Configure correctly CMake with sumbodule project github and C++

Hy Guys,

I'm java programmer and I'm learning a C++ with CMake with a my project on Bitcoin core, now If want use the submodule GitHub for configuring my external project but I want to include the submodule correctly in the my CMake file configuration, can you help me to understand this?

cmake_minimum_required(VERSION 3.9) project(SpyCBlock) set(CMAKE_CXX_STANDARD 17) # Locate GTest enable_testing() find_package(GTest REQUIRED) include_directories(${GTEST_INCLUDE_DIRS}) #Glog find_package(glog 0.3.5 REQUIRED) ## Json library find_package(nlohmann_json 3.2.0 REQUIRED) # Link runTests with what we want to test and the GTest and pthread library add_executable( SpyCBlockTests test/StructureBitcoinCoreTest.cpp test/DAOBlockchainTest.cpp test/SHABitcoinCoreTest.cpp test/SerealizationTest.cpp test/JsonSerializationTest.cpp test/DAOBlkToJsonTest.cpp test/DAOJsonTest.cpp test/NullDataTransactionsTest.cpp test/ExceptionCompactsizeTest.cpp test/ConfiguratorSingletonTest.cpp util/uint256.cpp util/strencodings.cpp util/prevector.cpp cryptobitcoin/Sha256.cpp cryptobitcoin/Sha256Hash.cpp cryptobitcoin/Utils.cpp structure/block/block.cpp structure/block/blockHeader.cpp structure/transaction/RawTransaction.cpp structure/transaction/TransactionOutput.cpp structure/transaction/TransactionInput.cpp structure/script/scriptCode.cpp structure/type/Outpoint.cpp structure/type/DVarInt.cpp structure/type/DScript.cpp structure/type/Outpoint.cpp persistence/DAOBlockchain.cpp persistence/DAOException.cpp persistence/json/DAOBlkToJson.cpp persistence/json/DAOJson.cpp persistence/SerializationUtil.cpp crypto/UtilCrypto.cpp crypto/CryptoCore.cpp core/ConfiguratorSingleton.cpp #cpp-properties file include include/cpp-properties/src/Properties.cpp include/cpp-properties/src/PropertiesParser.cpp include/cpp-properties/src/PropertiesUtils.cpp #rapidjson include/rapidjson/include/rapidjson/writer.h ) add_executable( ${PROJECT_NAME} core/ParserMain.cpp core/SpyCBlock.cpp core/ConfiguratorSingleton.cpp util/uint256.cpp util/strencodings.cpp util/prevector.cpp structure/block/block.cpp structure/block/blockHeader.cpp structure/transaction/RawTransaction.cpp structure/transaction/TransactionOutput.cpp structure/transaction/TransactionInput.cpp structure/script/scriptCode.cpp structure/type/Outpoint.cpp structure/type/DVarInt.cpp structure/type/DScript.cpp structure/type/Outpoint.cpp persistence/DAOException.cpp persistence/DAOBlockchain.cpp persistence/DAOException.cpp persistence/SerializationUtil.cpp persistence/json/DAOBlkToJson.cpp persistence/json/DAOJson.cpp crypto/UtilCrypto.cpp crypto/CryptoCore.cpp cryptobitcoin/Sha256.cpp cryptobitcoin/Sha256Hash.cpp cryptobitcoin/Utils.cpp #cpp-properties file include include/cpp-properties/src/Properties.cpp include/cpp-properties/src/PropertiesParser.cpp include/cpp-properties/src/PropertiesUtils.cpp ) #using glog target_link_libraries(${PROJECT_NAME} glog::glog) target_link_libraries(SpyCBlockTests glog::glog) #using gtest target_link_libraries(SpyCBlockTests ${GTEST_LIBRARIES} pthread) ##using filesystem target_link_libraries(${PROJECT_NAME} stdc++fs) target_link_libraries(SpyCBlockTests stdc++fs) ##Json library target_link_libraries(${PROJECT_NAME} nlohmann_json::nlohmann_json) 

The Cmake work, but I think is a bad configuration.
cpp-properties is a submodule and its location is /include/cpp-properties

ps: Sorry my more questions today
submitted by crazyjoker96 to cpp_questions [link] [comments]

Configure correctly sumbodul github with Cmake and C++

Hy Guys,

I'm java programmer and I'm learning a C++ with CMake with a my project on Bitcoin core, now If want use the submodule GitHub for configuring my external project but I want to include the submodule correctly in the my CMake file configuration, can you help me to understand this?

cmake_minimum_required(VERSION 3.9) project(SpyCBlock) set(CMAKE_CXX_STANDARD 17) # Locate GTest enable_testing() find_package(GTest REQUIRED) include_directories(${GTEST_INCLUDE_DIRS}) #Glog find_package(glog 0.3.5 REQUIRED) ## Json library find_package(nlohmann_json 3.2.0 REQUIRED) # Link runTests with what we want to test and the GTest and pthread library add_executable( SpyCBlockTests test/StructureBitcoinCoreTest.cpp test/DAOBlockchainTest.cpp test/SHABitcoinCoreTest.cpp test/SerealizationTest.cpp test/JsonSerializationTest.cpp test/DAOBlkToJsonTest.cpp test/DAOJsonTest.cpp test/NullDataTransactionsTest.cpp test/ExceptionCompactsizeTest.cpp test/ConfiguratorSingletonTest.cpp util/uint256.cpp util/strencodings.cpp util/prevector.cpp cryptobitcoin/Sha256.cpp cryptobitcoin/Sha256Hash.cpp cryptobitcoin/Utils.cpp structure/block/block.cpp structure/block/blockHeader.cpp structure/transaction/RawTransaction.cpp structure/transaction/TransactionOutput.cpp structure/transaction/TransactionInput.cpp structure/script/scriptCode.cpp structure/type/Outpoint.cpp structure/type/DVarInt.cpp structure/type/DScript.cpp structure/type/Outpoint.cpp persistence/DAOBlockchain.cpp persistence/DAOException.cpp persistence/json/DAOBlkToJson.cpp persistence/json/DAOJson.cpp persistence/SerializationUtil.cpp crypto/UtilCrypto.cpp crypto/CryptoCore.cpp core/ConfiguratorSingleton.cpp #cpp-properties file include include/cpp-properties/src/Properties.cpp include/cpp-properties/src/PropertiesParser.cpp include/cpp-properties/src/PropertiesUtils.cpp #rapidjson include/rapidjson/include/rapidjson/writer.h ) add_executable( ${PROJECT_NAME} core/ParserMain.cpp core/SpyCBlock.cpp core/ConfiguratorSingleton.cpp util/uint256.cpp util/strencodings.cpp util/prevector.cpp structure/block/block.cpp structure/block/blockHeader.cpp structure/transaction/RawTransaction.cpp structure/transaction/TransactionOutput.cpp structure/transaction/TransactionInput.cpp structure/script/scriptCode.cpp structure/type/Outpoint.cpp structure/type/DVarInt.cpp structure/type/DScript.cpp structure/type/Outpoint.cpp persistence/DAOException.cpp persistence/DAOBlockchain.cpp persistence/DAOException.cpp persistence/SerializationUtil.cpp persistence/json/DAOBlkToJson.cpp persistence/json/DAOJson.cpp crypto/UtilCrypto.cpp crypto/CryptoCore.cpp cryptobitcoin/Sha256.cpp cryptobitcoin/Sha256Hash.cpp cryptobitcoin/Utils.cpp #cpp-properties file include include/cpp-properties/src/Properties.cpp include/cpp-properties/src/PropertiesParser.cpp include/cpp-properties/src/PropertiesUtils.cpp ) #using glog target_link_libraries(${PROJECT_NAME} glog::glog) target_link_libraries(SpyCBlockTests glog::glog) #using gtest target_link_libraries(SpyCBlockTests ${GTEST_LIBRARIES} pthread) ##using filesystem target_link_libraries(${PROJECT_NAME} stdc++fs) target_link_libraries(SpyCBlockTests stdc++fs) ##Json library target_link_libraries(${PROJECT_NAME} nlohmann_json::nlohmann_json) 
cpp-properties is a submodule and its location is /include/cpp-properties

The Cmake work, but I think is a bad configuration.
submitted by crazyjoker96 to cmake [link] [comments]

Building a contributions data

For bitcoin instead of trying to construct a Tezos account list I think it would be better right now to construct a list of all potential p2sh addresses. This can be started right now. With this data you can determine what was contributed by a tezos address and if necessary that could be turned into an on chain proof system allowing for claiming of funds at any point in time after launch.
Preferably this data would be fetched from the blockchain directly but while I wait for my bitcoin node to sync up here is a node script to list all the p2sh addresses in the first bitcoin block as well as the sum of the outputs to that address fetched from blockchain.info:
 'use strict'; var https = require('https'); let getAddresses = (data) => { let txarr = data.blocks[0].tx; let set = {}; txarr.forEach( (tx) => { tx.out.forEach( (out) => { if(out.addr && out.addr[0] == "3") { //console.log(out.addr+ ","+out.value); if(!set.hasOwnProperty(out.addr)) set[out.addr] = 0; set[out.addr] += out.value; } }) }); console.log(JSON.stringify(set,null,2)); } var options = { host: 'blockchain.info', path: 'https://blockchain.info/block-height/473623?format=json', headers: {'User-Agent': 'request'} }; https.get(options, function (res) { var json = ''; res.on('data', function (chunk) { json += chunk; }); res.on('end', function () { if (res.statusCode === 200) { try { getAddresses(JSON.parse(json)); } catch (e) { console.log('Error parsing JSON!'); } } else { console.log('Status:', res.statusCode); } }); }).on('error', function (err) { console.log('Error:', err); }); 
Please do not spam them with requests. blockchain.info pulling their api if many people repeatedly run something like this especially if it is extended to download all of the fundraiser block data.
submitted by JonnyLatte to nTezos [link] [comments]

What has Dash ever copied from others besides the original BTC codebase?

In the spirit of not biting the hand that feeds us, I'm starting this thread to raise awareness of how much Dash copies from Bitcoin Core.
It's disappointing to see even some Dash Mods don't understand how much Dash benefits from all the hard work of BTC Core, so let's look at precisely what Dash 12.3 has copied from Bitcoin.
What has Dash ever copied from others besides the original BTC codebase?
Dash copies ("backports") 1000s of BTC Core commits on every major release.
Do you know how to use github? If you do, the scale of what Dash has copied from BTC is perfectly clear from looking at https://github.com/dashpay/dash/graphs/contributors
You can see most so-called Dash commits were written by Bitcoin devs, and only one Dash dev (UdjinM6) with a significant number of original (IE non-backported) commits.
Here are the specifics on all the latest things in Dash 12.3 copied from BTC as well as a statement of Dash's intention to continue copying from BTC for the foreseeable future:
We backported many performance improvements and refactoring from Bitcoin Core and aligned most of our codebase with version 0.14.
+Most notable ones besides various performance and stability improvements probably are
+Compact Block support (BIP 152),
+Mining transaction selection ("Child Pays For Parent"),
+Null dummy soft fork (BIP 147, without SegWit), +Nested RPC Commands in Debug Console and
+Support for JSON-RPC Named Arguments.
+You can read more about all changes in Bitcoin Core 0.13 and 0.14 in following documents: +- release-notes-0.13.0.md; +- release-notes-0.13.1.md; +- release-notes-0.13.2.md; +- release-notes-0.14.0.md; +- release-notes-0.14.1.md; +- release-notes-0.14.2.md.
+Note that some features were already backported earlier (per-UTXO fix, -assumevalid, GUI overlay etc.) and some were not backported at all +(SegWit and feefilter, you can read more about why we did so here and here). +The alert system was also kept in place for now.

We are going to continue backporting the most notable fixes and improvements from Bitcoin Core versions 0.15 and 0.16 in future releases.

Source: https://github.com/dashpay/dash/pull/2045/files
Here is a tiny part of the list of the latest things Dash has copied from BTC Core
I'd post the entire list but Reddit says "(THIS IS TOO LONG (MAX: 10000)" LOL!
https://github.com/UdjinM6/dash/blob/369414a04258cd4ed9f520f87fa2a9889f17785d/doc/release-notes/dash/release-notes-0.12.3-backports.md

12.3 backports and related fixes:

bc45a2f87 Backport compact blocks functionality from bitcoin (#1966)
8b4c419ed Revert "Merge #7542: Implement "feefilter" P2P message" (#2025)
a4b313fd3 Fix std in DBG macro
6a6e4cdc1 Remove remaining using namespace std
08b5c69ef Merge #9643: [refactor] Remove using namespace from wallet/ & util*
ccca7af09 Merge #9476: [refactor] Remove using namespace from rpc/ & script/ sources
4ac4e96e8 Merge #9765: Harden against mistakes handling invalid blocks
662ec024a Make peer id logging consistent ("peer=%d" instead of "peer %d")
592d8f073 Use a temp pindex to avoid a const_cast in ProcessNewBlockHeaders
15a8fcf99 Add a CValidationInterface::NewPoWValidBlock callback
d28172f57 Call AcceptBlock with the block's shared_ptr instead of CBlock&
c99dd9733 [qa] Avoid race in preciousblock test.
807ae74c2 Make CBlockIndex*es in net_processing const
1d1c31052 Fix cmd args handling for -bip9params
64817fe1d [qa] Fix race condition in sendheaders.py
b2bc78099 Fix argument to wait_until
026f2e2a8 Merge #8446: [Trivial] BIP9 parameters on regtest cleanup
e326bda69 Tests: refactor compact size serialization in mininode
2c810d2c3 Allow changing BIP9 parameters on regtest
45151bd13 Move context-required checks from CheckBlockHeader to Contextual...
cef919f18 Merge #9486: Make peer=%d log prints consistent
55ef4d0a9 [wallet] Add include_unsafe argument to listunspent RPC
e1e03f42c [wallet] Add IsAllFromMe: true if all inputs are from wallet
611b31ece Merge #9650: Better handle invalid parameters to signrawtransaction
ff335e47f [qa] test_framework: Add wrapper for stop_node
64e1bfacd Add BIP32 to bips.md
4bb2af8d1 Merge #9114: [depends] Set OSX_MIN_VERSION to 10.8
61af31531 Merge #8976: libconsensus: Add input validation of flags (#1891)
00a0bc710 Remove "TODO: fix off-by-one"
625252fb4 Allow to pass redirect_stderr=True to initialize_chain and use in wallet-dump.py
d56ac5a74 Fix import-rescan.py and add workaround for pruning mode
submitted by Dash_2_The_Future to dashpay [link] [comments]

My visits to the darkest sites on the deep web.

Most of my research will now be posted on /rStranded
*****PART 2 IS OUT https://www.reddit.com/rStranded/comments/3dwdj2/the_deeb_webs_darkest_sites_part_2_furthe *****
This is originally a post I made on /nosleep. Due to demand and the fact it got removed for not being for the type of subreddit /nosleep is, I will be posting it here.
I've always had a really sparked interest in what is commonly known as the Deep Web. For an explanation on the Deep Web that I have found to be helpful, feel free to go here. The point of this post is not, though, to act as a guide to the deep web, or to provide an explanation of what it is. NoSleep is not /deepweb or /advice, but a place to share horror stories. And though the deep web has some good uses, it also has an incredibly dark side too it. The dark web is a small corner of the deep web, containing the stereotypical content (bulk drugs, CP, etc.) that the deep web is notorious for. I took my first steps into this little excavation of mine into the darkest parts of anonymous sites under the surface of web browsing in an attempt to undermine the stereotype that the deep web is more a home to dark, illegal websites then anything good. Well, I came out of this with more then I could have ever expected, and now my view on humanity in general has forever been changed. The start of the... "trip"? It took me quite a while (3-4 weeks) to get enough information to start really delving deep into what I will now refer to as the dark web, the small corner of the deep web that is basically the 'house of horrors'. Lots of talking around, honing information from chatrooms, and taking lots of notes. Even had to make a couple of phone calls to some more then shady individuals, not a comfortable experience. By the end of my trek of gathering as much information possible at the time and getting a good contact list, I took my first steps into the, 'outer layer' of the dark web, so to speak. The hard part is that once you get deeper, a lot of sites have ever changed URL's, extensive invitation queue's, and at times, pricey entrance costs that may or may not end up as cash spent on a phony operation. A lot of it is luck, meeting people at the right time and place, and taking good notes. I had a good streak of luck and took good notes, enough to get me to the places I entered. But what I did notice is that once I got into the first site that I will next talk about, it became much easier to get into other sites, as it was much more freely talked about and information was passed around much more. Chatrooms in the dark web = information honey hole. 1st Site: centrix{} I knew I had broken the barrier when I got into centrix{}. I'm just going to call it centrix and leave out those annoying little brackets that are annoying to type. Back on track, centrix was one of the more well-known, 'general markets', so to speak. A good example to compare it too would be Agoratha or Silk Road. Now, centrix, from what I hoarded via lots of questions on the chat room over the course of a couple days, has been around for about 11 months and has been untouched by any means of being shut down. Which surprises me, because it has everything from Agoratha or Silk Road, but to a much greater extent and a lot more variety. What some sites dedicate their whole selling product to be, centrix had sub-categories for. Just a brief few examples: -Snuff films -Bulk drugs, all varieties -Fake everything, ID's/licenses/you name it -A very censored section of CP -Various illegally obtained memberships (Netflix, porn, etc.) The list goes on. Another thing that is a bit chilling is the fact that they took a great effort to crack down on scams. The big deal on sites like Agoratha or Silk Road, they have a lot of scam vendors. This site didn't, and they had a lot of proof to back it up that I will not go into detail on. (samples, intros, etc.) I also met a guy in a chatroom that was nice, as far as that goes for an active dark web user like himself, who verified/hashed some of the links I had collected and vaguely sent me in the direction of other sites for my personal use. This was a great help, and led me to my next site, which from the illegality and general morale of the site, is what I consider the next layer or gate into the dark web. 2nd Site: BrinkWarehouse.otc Yay, a site with a normal-ish name. BrinkWarehouse was actually quite fascinating, not horrific to an extent, but had a different kind of dark backlash. BrinkWarehouse, a virtual warehouse of textual guides, notes, leaked documents, torrented books (one that was released online a day after it was published, quite a popular author). Now, at a summary this might seem alright, but take into account that the guides included things like "How to make a drone-based homemade explosive" and "How to kidnap adolescence in their sleep". Illegal leaked documents galore, anywhere from U.S. classified cases to foreign affairs. Also included guides on illegally modifying weapons, joining terrorist groups, guides to scripting and nulling bank accounts, so on and so forth. Not a fun site. The next site I headed to is where it starts to get formally creepy, and where I found it necessary to post this on NoSleep. The Site with No Name I got access to this site, which I consider to be the start of the darkest of the dark web of the deep web (phew, that is a mouth full), from francestern344, who was in a chatroom on chit.chat, a very common deep web chatroom site that most of you have probably already stopped in. Well, talk comes to talk, and we end of up the topic of snuff films. How common they are, where they are usually filmed and why, etc. I get his trust, we resume this chat in a private room that he had (0.10 BTC for a private chatroom), and keep in mind that only getting information was my main reason for chatting, I am not 'into' snuff films, though they do fascinate me. We talked for a good 20 minutes before, without me having to even ask, hooked me up with a site. We are just going to use a tidbit of the sites all-# URL to name it, so 5611 it is. Now, this site, 5611, required an invite, extensive registration, questioning, and a 1-on-1 meeting with what I assumed was a site directoadmin. He/she was one harsh motherfucker, and the stern punishments for breaking the sites rules was laid out. The guy who invited me, francestern344, I guess was a long-timer on 5611, who had permission to let me take a tour of the site. Now, I did ask for a formal site name for future reference (aka so I didn't have to name it 5611), and he said that the site had no name, and that it was purely based to display it's content and moderate membership. The title, he said, would only make it easier to identity, which they did not want to happen. 5611 had a small membership that, he said, the runners of the site tried to cater too very fondly, as membership is 1.588 BTC monthly, approx. $355 USD. Upon entering the site, I had to check the "Are you older then 18" box for the 5th time since I started getting signed up. Finally, I was in. The sites design was bland and blocky, with a pure white background and very blocky, close together writing. In the top right corner, there where the options to log out, add funds to my balance, and then a small wallet emoticon that displayed an empty BTC client-side balance. But that was barely on my mind, my mind was on the center of the screen. In a single row down the center of the screen, single frames with captions and a description took up most of the screen. The top one had a still of a table with various blades and blunt weapons laid out, the title "24 yr F, sleeping, sugg. death" with a 2.25 BTC price tag along the side. A timer in green text was counting down. "11:51" "11:50" "11:49". Under the timer, in the same green font, was "78/100". A couple seconds later, the 78 turned into a 79. Realization hit me in the face like a bat. This was a paid snuff site. With a shaky hand, I scrolled down through the seemingly endless snapshots and captions. One caught my eye: "QUICK WATCH. HOMELESS. 0.22 BITCOIN. LARGE VIEW. LOW Q" It was like an attention whoring YouTube title, but it seemed to be working. In the eerie green font, 783/1000 was displayed, a jaw-dropping number in my eyes. I decided this needed to be documented, so I did a quick transaction, put .30 BTC in my site wallet, and clicked on the arrow to enter. It took a minute or two to complete the transaction, and after about a 5 minute buffer, I was in the 'showing'. There was no chatbox, only a slightly lighter border of grey and static. The same green timer was now in the bottom right of the screen. "3" "2" "1". The squared blurred revealing a city street. What seemed to be Arabic writing was on various shop signs and advertisements. Light from a streetpost gave a fuzzy glow to the scene. The cameraman, from the position of the camera, seemed to be leaning against a wall, the shot focused on a dinky red junker on the streets curb. From the side of the cameras view, a gloved finger points towards the entrance of a dark alley, where a man lays on his side, like a breathing pile of rags, obviously homeless and alone. The finger makes a motion towards the car, and three men quietly exit the car and walk along the storefronts towards the sleeping homeless figure. The quality is totally shit, but the scene can still be made out and is enhancing by my horrid imagination about what is to come. About 5 meters from the homeless victim, the lanky group of thugs pull out plain white theatre masks from their jackets, take out various small weapons, and pounce around the corner on to the innocent, unsuspecting victim. The camera picks up the quick shuffling of feet as the camera man runs towards the scene, catching the thugs thrashing and stomping the man from his slumber. "Cut him up." The camera mans thickly accented voice commands the thugs, who begin to slash the victim at a wild speed, like hyenas tearing into caught prey. Blood sprays onto the wall and onto the thugs white masks. It is horrible, my stomach barely holds on. I can't take it. Logging off Tor, I take a few more security measures and shut off my computer, taking some deep breathes and sipping from a Coors light. My last visit on the dark web: CandyPalace I logged on about a week later, and never thought to go back on 5611. I never contacted anyone from my past sites, and I knew in my heart that this would be my last visit to any site on the deep web. I was thoroughly encouraged to not go on, because with 5611, that had really been in my mind that last straw. I had proven to myself that the dark web, even though it has some good parts, is really just a beacon of humanities horrific actions. I had proven to myself that sites like 5611 and the other sites exist. But I just felt the need to cover the last huge part of the dark web that is in my mind the worst of it all. Child pornography. CandyPalace is a huge site, do some digging and get some sources, you will find it. From the videos, I have come to the conclusion that it is all hosted in one location in a foreign country. I always wondered that if there are all these snuff films and child sex slave dungeons that are often spoken about, that there would have to be a suitable amount of missing children cases and unsolved murder cases to go along with them. Some research and asking around concluded that many of the filmed murders and child porn director rings are in fact in foreign countries, where getting away with these kinds of actions is a 'piece of cake' in the words of an aspiring director in a CandyPalace chat room. I will not go into specific detail about any one video on CandyPalace, only will lay out some basic stats and descriptions and let you find the rest if you so please: -The main chatroom had several hundred chatters in total between the various sub-chats. -They actually had a very detailed profile of each child, an example was Tatasa, 9 years old, black hair, and then included a list of, if I remember correctly, 83 videos she starred in and counting. -The children where usually smothered in make-up and, besides for what seemed like a designated 2-3 'stars', not extremely physically hurt via evident beating. -Double penetration, binding, gay, forced 1-1, knife, roleplay, chamber, and dungeon where the top video tags. Each video has 1-2+ tags. If I remember correctly, there where a total of 17 'stars'. Nobody ever brought up anything about if they are kidnapped/imported/imprisoned. All anybody cared about was watching, so getting information on that topic was hard. Most of the scenes are filmed in various sets, such as era-styled dungeons, surgery rooms, etc. No grimy bedrooms or warehouses or basements. Nothing that fits the common stereotype. It was basically PornHub with a pink-white-black color scheme and 6-12 year olds. It is a nightmare. Conclusion I never look at people the same. Throughout taking this research-oriented trip through the dark web, my view on humanity has been changed. Every video I watched in the name of research chinked away at my emotions, often left me crying. Curiosity broke me, and it has been nearly a year since I have full recovered. This is my, I guess case file for my research on this subject. Now before you launch Tor and find these sites, please know. There is nothing enjoyable, entertaining, or at all suitable content on this network. You will be left in tears, you will be scarred, and worst of all... you will never view others again. Please refrain from PM'ing me about this subject unless you have certain details or past experiences you would like to privately share. EDIT Wow, woke up to 34 comments in my inbox! :D Thank you guys for all the feedback, good to know that at least I went through this for something. EDIT This worked out much better than I anticipated. If this is not allowed, let me know, but I have created a strawpoll here, so if you guys really want more stories of different sites on the dark web that I looked through, please let me know. I also have done studying into the dark side of craigslist, etc. EDIT So, you guys voted that you want to see more insights on other dark web sites. I was not intending for this to be a series, but I guess it is turning into one in some sense. I will hopefully compose a second post that mainly consists of sights and their descriptions. Here is a link to, if you want, vote on the types of sites you want me to talk about. I have a set few I will already include, but this is more informative then for my own personal writing experience, so I want you guys to select what you want to know about.
submitted by rStranded to deepweb [link] [comments]

ICO List Script Nulled Download Free Bitcoin Cloud Mining Script Free Earn 0.16 BTC Per Hour  Automated Faucet Collector  Captcha No Problem - BTC Miner & Script HARVEYYY's BITCOIN SCRIPT -Start Making $$$ Everyday With NO EFFORT - Make Money Online With Bitcoin Automatic Bitcoin Doubler Premium Script Build your own Bitcoin Doubler website

Nulled Scripts BitWallet – Bitcoin Wallet Platform. April 29, 2019. BitWallet – Bitcoin Wallet Platform download free. Nulled Place offer it free because we care you. If any link you found not work please write us. if BitWallet – Bitcoin Wallet Platform work fine then go to real buyer for purchase it. We offer this for education purpose to test it before buy it. Bitwallet is a Bitcoin ... Author Topic: Bitcoin Scripts for Wordpress - Nulled - Others Scripts - Download instant (Read 3014 times) 0 Members and 1 Guest are viewing this topic. caminhoneirosunidos. Newbie; Joined: Nov 2017; Posts: 2; Karma: +0/-0; Bitcoin Scripts for Wordpress - Nulled - Others Scripts - Download instant « on: November 24, 2017, 03:21:29 PM » I'm selling famous scripts that sell fake mining power ... bitcoin script nulled free download. Qt Bitcoin Trader Supported Exchanges: HitBTC, Bittrex, Binance, Bitfinex, BTC-e, Bitstamp, GOC io, Indacoin, YoBit ne Ever wondered how rich the top bitcoin holders are? Bitcoin richlist is a simple script that displays the top bitcoin holders by wealth. Demo: https://codecanyon.net ... Bitcoin Lottery Script Nulled Bitcoin . Bitcoin Lottery Script Nulled . Mar 29, 2018 DTN Staff. twitter. pinterest. google plus. facebook. Freebitco.in - Free Bitcoin Wallet, Faucet, Lottery And Dice! ...

[index] [10253] [23524] [30902] [29277] [35889] [21258] [1314] [16112] [17200] [5355]

ICO List Script Nulled Download Free

Such as Bitcoin Earning [Using Many methods to Earn, just for Educational Purpose], Earn Money Online And Found Great Info on how to Working Online as Partime Program. A lot more you can use the ... This video is unavailable. Watch Queue Queue. Watch Queue Queue bitcoin cloud mining, bitcoin cloud mining script, bitcoin cloud mining script nulled, bitcoin mining script php, bitcoin mining software, bitcoin mining website, bitcoin php scripts, Bitcoin ... Scripts Nulled Download Script Faceut List Bitcoin, Ethereum, Dash, Dogecoin, Litecoin e Other Download Free? www.btcdownloads.com. Bitcoin doubler Script has deposit and payout process is fully Automated using Coinpayments API 10.Cashout limits & management-Minimum deposit limit can be setup from admin panel, If any member ...

#