wallet - How do I use walletnotify? - Bitcoin Stack Exchange

How can I get this script to work for Litecoin

What would I need to do to get this script to work for Litecoin 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]

Homelab collective ressources post!

Hey guys!
I'm fairly new to this sub and to having a home lab in general and I found this community to be so kind and helping, I wanted to give back what I've learned. I'm seeing a lot of questions asked around on improvements and on what to do with x extra hardware so I thought it would be nice to have a thread to regroup that.
I'll put here some stuff I gathered and the most common questions I've seen, feel free to contribute and i'll update the post along.
Latest Additions
Homelab Dashboard
Posts about dashboards have been growing lately and here are some of the best that were kind enough to provide us with their sources.
User Screenshot Source
yours truly http://imgur.com/a/GhCNH https://github.com/Gabisonfire/dashboard-q
lastditchefrt http://i.imgur.com/5zQdao4.png https://github.com/d4rk22/Network-Status-Page
_SleepingBag_ http://i.imgur.com/Ql9ZM4W.png https://github.com/jsank/homelabdash
NiknakSi https://niknak.org/extras/sysinfo TBA
DainBramaged http://imgur.com/jYNlUEQ https://github.com/gordonturneBigBoard
michaelh4u https://i.imgur.com/XkZwMKj.png https://github.com/michaelh4u/homelabfrontpage
spigotx http://imgur.com/a/1zMht https://github.com/spigotx/HomeLab2
SirMaster https://nicko88.com/ https://github.com/dashbad/plex-server-status
yourofl10 http://imgur.com/a/AyROa TBA
TheBobWiley http://imgur.com/a/oU6d3 https://github.com/TheBobWiley/ManageThis-LandingPages
0110010001100010 http://i.imgur.com/iwtQcsL.jpg https://github.com/danodemano/monitoring-scripts
mescon & SyNiK4L https://i.imgur.com/gqdVM6p.jpg https://github.com/mescon/Muximux
ak_rex http://i.imgur.com/a/RJkrT https://github.com/ak-rex/homelab-dashboard
Or build yours from scratch: PRTG API, ELK, Grafana, freeboard, JumpSquares
Some other resources: Custom Monitoring Scripts by 0110010001100010
Credits to apt64 for his original post
= Pi specific =
= Download Automation =
= Virtualization =
= Monitoring =
= Media Center =
= Remote access =
= VOIP =
= Networking =
= File Servers/Storage/RAID =
= Cameras =
= Documentation =
= Dynamic DNS =
= Backup =
= Creating network diagrams =
= Guides =
= Misc =
That's all I could come up with on top of my head + some research, passing over to you guys so we can get a nice complete list!
Let's try and stick with free(or mostly) softwares, let me know if you guys feel otherwise.
submitted by Gabisonfire to homelab [link] [comments]

BAT Community Weekly Update: 02/16/2018 to 02/22/2018 — Bart Baker (10M subs) promotes Brave, interview with Brendan, big YouTube channels coming onboard, ETHDenver reflections, Ethereum wallet + hardware wallet support coming to Brave

Welcome to this week's community update! Now back from ETHDenver and seeing big adoption among major YouTube channels. Check it out! Thanks to MurphD for his invaluable contributions.
Short interview with Brendan Eich about BAT, Brave and JavaScript /w Panama Crypto
“The Basic Attention Token (BAT) forms the basis of a blockchain-based digital advertising platform. The BAT reconnects users directly to content creators, and reduces ad fraud and improves reporting for advertisers, without compromising user privacy and anonymity. The BAT platform cuts out all the parasitic middlemen in between brands, publishers and users, to make a much more efficient and accountable ecosystem.”
Read the full interview: https://medium.com/@Panama_TJ/brave-short-interview-c02a5b59a877
HowToBasic (10,300,000 subscribers) is now a verified YouTube Creator!
We’re seeing more and more channels come onboard, both large and small. HowToBasic has become famous with its… intriguing videos… now with 10.3 million subscribers!
Bart Baker (10 million subscribers) asks his audience to download Brave; video then locked by YouTube
This week, Bart Baker made a video calling out to his audience to support his channel with Brave’s referral program. However, shortly after uploading the video, it was removed by YouTube. Bart, understandably, was very upset with the situation and followed up on Twitter. You can follow the whole situation here:
  1. Tweet: https://twitter.com/BartBakestatus/966068674636406785
  2. Situation covered on /YouTube: https://www.reddit.com/youtube/comments/7z01a4/bart_baker_10_million_subs_makes_video_about/
  3. Post on /BATProject with helpful links: https://www.reddit.com/BATProject/comments/7yzp45/youtuber_bartbaker_10_million_subscribers/
  4. Reuploaded video: https://www.youtube.com/watch?v=Zjj1m4LX5uM
We wholeheartedly support Bart in his efforts to remonetize his videos and to continue creating the content that makes millions of people laugh around the world. Let’s show him some support. (Also check the #SaveBartBeBrave hashtag on Twitter.)
“The Best Ethereum Wallet Ever”: Ethereum Wallet coming to Brave with hardware wallet support
BAT/Brave’s hacking team at ETHDenver put their minds together and built an Ethereum wallet with hardware support for Brave. Features: 1-click wallet creation; 1-click shortcut to transfer funds from the ETH wallet into @Brave $BAT wallet; Hardware wallet support; Open source; Brave is up-to-date with the latest upstream Chromium release + sandboxing x-platforms; Automatically watches BAT token contract.
See a video demo and full description here: https://devpost.com/software/best-ethereum-wallet-ever
The BAT/Brave team made an appearance at ETHDenver last week. It was a great experience and the team was excited to meet with countless fans and members of the community. Jennie, Luke and some cherished BAT community members (special shoutouts to miyayes, dragespir) answered hundreds of questions at the BAT/Brave booth.
The BAT/Brave booth was especially popular; publishers, advertisers as well as users were lining up to speak with the team and learn more. We had many people come and express their love for Brave, as well as newcomers of all kinds!
BAT/Brave also had two hacking teams at the event, (1) one of which created a fun retro game called Vapor (https://devpost.com/software/vapor) while (2) the other implemented an Ethereum wallet into Brave (see above).
Luke participated in a panel on designing cryptoeconomic models, see the video here: link here
Check out this link to see all the videos from ETHDenver: https://www.facebook.com/pg/ETHDenvevideos/
Zengineering Podcast: Episode 052 — with Jonathan Sampson, on Brave, Basic Attention Token and Browser Security
“In this episode, Jonathan walks us through the history of the internet and web browsers. We discuss Brave’s CEO, Brendan Eich, the prolific architect of the JavaScript programming language, and a founder and former CTO of the Mozilla Corporation. This story is compelling and important to the state of the modern web, modern software, and the entire planets intoxication with digital communication.
We dive deeply into web technologies, the digital advertising revolution, internet search, the history of web browsers, an intense appreciation of digital privacy, the future of technology, and digital crypto-currencies like Bitcoin and Basic Attention Token (a foundational component of what the Brave team is working on). We believe Brave Browser and its team are doing something that is both technologically innovative and deeply important for our digitized world.”
Listen now: https://zengineeringpodcast.com/episode-052-with-jonathan-sampson-on-brave-basic-attention-token-and-browser-security-bb719b515d4b

BAT/Brave Mentions:

Brave Browser Readers Just Gave Us Some Eth – is This Actually Working?
That’s our dashboard, so it’s not much and at current BAT prices … but it is something, and it is free. https://www.trustnodes.com/2018/02/11/brave-browser-readers-just-gave-us-eth-actually-working
The key to massive innovation in crypto
BAT is mentioned on a great article on Hacker Noon.
BAT and You; What I learned from the BAT team at ETHDenver
What’s Brave, YouTubers’ new favorite browser?
Brave is an open-source web browser that YouTubers are using in wake of the platform’s evolving policies. Included within the browser is Brave Payments, which the company introduced in beta in September 2016. The idea behind the Payments tool is that users should be allowed to choose who can financially benefit from their clicks without having to sift through ads — or feeling guilty about using ad blockers.

News You Should Know:

Google's new ad-blocking rules show its massive power online, and some smaller players are concerned
Google's dominance of the online ads business — in conjunction with the dominance of its Chrome browser and its influence on the group that selected which ads count as "intrusive" — raises some thorny questions. https://www.cnbc.com/2018/02/17/google-chrome-ad-blocking-reactions.html
Chrome's default ad blocker strengthens Google's data-driven advertising platforms
Google's browser now blocks certain ad formats by default. This move is less about improving the browsing experience and more about forcing publishers and advertisers to switch to Google’s data-driven advertising platforms.
Something to think about

Brave Team Tweets:

  • Twitch coming in the next few weeks CryptoBlockchainBTCETH @CrytpoBlock Does your team have an estimate for when Twitch will be fully integrated with BAT and Brave? //REPLY [email protected] Weeks not months, my best thought. 9:19 PM - Feb 17, 2018
  • BrendanEich‏ @BrendanEich Content owners are paid in the fiats they use by @upholdinc for regions in which Uphold operates. Conversion from BAT is part of their service. 10:58 PM - 17 Feb 2018 Direct photo link: https://twitter.com/BrendanEich/status/965073049757208577/photo/1 Second photo link 2: https://twitter.com/BrendanEich/status/965072057854652417/photo/1
  • BAT / Brave is a piece to cake compared to how ads work now BrendanEich @BrendanEich Compared to ad tech (the “Lumascape”), it is a piece of cake. Note users need not study it to find Brave easy to use. pic.twitter.com/oEA6NcMOy6 6:12 PM - Feb 18, 2018
  • There’s always a middleman in the ad space: BrendanEich @BrendanEich At least one middle-person in any advertisepublisher relation: the user. Brave is the user agent, we take fixed fee always less than user share (70% revenue to user for private opt-in ads; 15% to user & 70 to pub if both consent to in-page ads), & no user data goes off device. 6:20 PM - Feb 18, 2018
  • What’s the point of BAT, and do users of the web have rights? BrendanEich @BrendanEich The point is to send revenue back to your favored sites & creators anonymously — Web is not going to fund itself. Replace the ad tech complex with private/anon analytics, self- or (bigger idea) auto-funded.
  • BrendanEich @BrendanEich Users have rights to block ads/trackers/scripts, but many see ecosystem problem of free-riding that way. Some can afford to pay & Brave enables anonymous contributuons, automated and/or pinned by user. Not all can afford, so private BAT ad option is coming, to pay for contribs. 6:53 PM - Feb 18, 2018
  • Future features preview: BrendanEich @BrendanEichWe do WebTorrent IPFS & dat: coming soon. We are not only for browsing one new & incompatible web. Web is here and evolves. 8:02 PM - Feb 20, 2018

Roaring Fans on Twitter:

  • Nick Summers @nicksum18 ..And the home of the @Brave !! For those of you who have not yet tried the new Brave browser, this is one days worth of benefits;$BAT #BEBRAVE #[email protected] @BraveSampson 9:15 PM - Feb 16, 2018
  • Shilly Mo'Filly @EzMrcz Awesome, just got notified from @brave that $BAT payments are going out to my favorite content contributors soon! Thanks again for creating awesome stuff, enjoy the @AttentionToken :D Can't wait until more and more people adopt the idea of giving directly to the creators! 1:35 PM - Feb 16, 2018
  • Janus @Janus_Token Some of the inspiration for incorporating $Kreds cryptocurrency in our media sites came from economic models like $BAT true utility can be game changing. Kudos to @AttentionToken for inspiring valid altcoin use cases. 12:26 AM - Feb 17, 2018
  • Kevin [LTC] [BAT] @wholelotamoney $BAT in Denver being a proud sponsor of #ETHDenver @EthereumDenver Fantastic browser and great [email protected] @brave @BrendanEich 9:48 AM - Feb 17, 2018
  • Miyayes @miyayesereum Re. Botting: 1. Fraud/bot detection running in native app (browser) will always be better than through in-page JS; 2. KYC for payouts; 3. Can't summon ads en masse by nav to a site; low freq ads only show at specific times during browsing xp. Erase old ad model from your mind. 7:40 PM - Feb 19, 2018
  • Fabrice Desré @fabricedesre I just paid publishers with @AttentionToken from @brave . That was much easier than any other subscription mechanism. 5:50 PM - Feb 20, 2018
submitted by CryptoJennie to BATProject [link] [comments]

11-28 21:33 - 'Thanks for your detailed response! / [quote] [The link you provided] seems to be very specifically talking about how he wants "transaction types" to be flexible, and so he coded in the possibility for scripts to be created that co...' by /u/AD1AD removed from /r/Bitcoin within 2-12min

Thanks for your detailed response!
I linked to a quote from Satoshi where he talks about how much effort he went through when designing Bitcoin to make sure it could be upgraded via soft-forks, and in the link, it's almost uncanny how well his description of potential future upgrades he envisioned matches how SegWit was implemented (he even talks about how transaction version upgrades -- like SegWit -- can be ignored by older nodes that don't understand them yet, without problems).
[The link you provided]1 seems to be very specifically talking about how he wants "transaction types" to be flexible, and so he coded in the possibility for scripts to be created that could be evaluated by the network. Does segwit take advantage of those scripts?
My understanding is that segwit puts the merkle root of the witness data in the coinbase transaction, and uses addresses that are treated by default as anyone-can-spend address until you reference the witness data broadcast separate from the block itself. Does any of that have to do with these transaction scripts he's referencing?
In that very same link, Satoshi talks about how Bitcoin's core design was "set in stone" from the very beginning, essentially doing his utmost to discourage what are now known as "hard forks" a la BCH. It is worth reading the full comment directly, in my opinion. In fact, over the years, Satoshi spent a lot of time and effort to discourage alternative forks of Bitcoin, and would say things like "I don't think a separate implementation will ever be a good idea" (because he considered network consensus so sacrosanct). BCH proponents consistently ignore inconvenient truths like this.
He's almost definitely not discouraging hard forks in that link... he's discouraging "a second, compatible implementation" (emphasis mine). By which it looks like he means a second client software that is compatible with the Bitcoin network, which is the opposite of a hard fork (which becomes incompatible by default and results in its own network). He's discouraging the attempt at a second compatible implementation because of the possibility that if "the second version screwed up, the user experience would reflect badly on both". That isn't the case with BCH, which made a clean break.
It's important to remember that Satoshi was the one who put the blocksize limit consensus rule in place in the first place, and in every instance where someone tried to raise it, he chimed in to say that he disagreed and that it should only be raised if the network truly needed it (and only with a long lead time and with extensive precautions taken to notify all users of the change). He was actually surprisingly fanatical about keeping blocks (and the blockchain in general) as small as possible, and if you go digging through his writings, you'll see tons of cases where he was adamantly opposing blockchain bloat and championing keeping Bitcoin as lightweight as we possibly can.
Yes, he put it there as an anti-spam/anti-DoS measure, right? Do you have a reference to what he considered the sort of situation that would constitute "if the network truly needed it"?
The most relevant quote I can find is this one:
It can be phased in, like: if (blocknumber > 115000) maxblocksize = largerlimit It can start being in versions way ahead, so by the time it reaches that block number and goes into effect, the older versions that don’t have it are already obsolete.
Where he seems to treat it as a non-issue. What could possibly more constitute the the network "truly needing" a blocksize increase than the blocks being full?
In fact, when BitDNS was first proposed (which eventually evolved into Namecoin), people started discussing the possibility of merging this functionality directly into Bitcoin. They even proposed a generalized state machine (just like Ethereum) and many were of the opinion that this, too, should be added to Bitcoin. Satoshi weighed in to say that he was strongly opposed to doing this, because (in his words): "piling every proof of work quorum into a single dataset doesn't scale" and he went on to say that over time, Bitcoin users might (and apparently in his opinion should) become "increasingly tyrannical" about limiting the size of Bitcoin's chain so as to keep it lightweight and thus available (and affordable) for as many users as possible to join in and participate on the network.
Right, that makes sense, and at the end you mention that it would be being kept lightweight so that it would be "available (and affordable) for as many users as possible to join in and participate on the network".
Doesn't that last sentence apply to transactions at least as much as, if not more than running nodes? As in, the majority of block space should to go to transactions so that the transaction capacity could be maximized? And isn't transaction capacity now being limited by the blocksize?
Satoshi thought that lite client (SPV) security would be a good way to allow users to get most of the benefits of Bitcoin without running a full node themselves, but he said that this would make sense when the network got to be "very large", and the exact figure he mentioned for such a scenario was 100,000 nodes (which we're sadly woefully short of at the moment).This is why some people (like Luke-Jr) argue that the current blocksize limit is already too high; the network node count is very much on the low side, right now, and it seems like Satoshi would probably agree with his take on the subject.
It seems like you're arguing here that because we don't have enough full nodes running, we should reduce transaction capacity. But isn't transaction capacity necessary for adoption? In which case we should go the opposite direction?
I guess what it really comes down to is: Do you think that the number of nodes would not increase as adoption increases? Sure, a smaller percentage of users might run full nodes as blocks got bigger (if blocksize outpaced moore's law), but bigger blocks would imply higher adoption rate, and as long as adoption rate increase (percentage-wise) outpaced the decrease in those who run nodes, then we would end up with a net increase in nodes.
Beyond mere blocksizes, there are other aspects of BCH that would almost certainly invoke the wrath of Satoshi. For one, the cumulative chain difficulty is massively lower than that of the real Bitcoin network, and even though most of the proponents of BCH spent incredible amounts of effort arguing that "hashrate defines Bitcoin" (which, in my opinion, is total bunk), by this criteria BCH is as far as you can get from Bitcoin and it should have died long ago. Of course, they don't like to acknowledge this nowadays.
Sure, anyone who argues that hashrate defines Bitcoin (or probably more accurately, total accumulated proof of work defines Bitcoin), and then defines Bitcoin Cash as Bitcoin is contradicting themselves. But how would its lack of lacking the most accumulated proof of work invoke the wrath of Satoshi? It seems like he would just says "Bitcoin Cash is not Bitcoin until, if ever, it overtakes the current Bitcoin in accumulated proof of work."
Finally, mining of BCH is incredibly centralized; it seems that almost all (if not all) mining pools that mine it are subsidiaries of Bitmain.
Do you have a source for this? Specifically about most mining pools that mine bch being subsidiaries of Bitmain?
Context Link
Go1dfish undelete link
unreddit undelete link
Author: AD1AD
1: https://bitcointalk.org/index.php?topic=195.msg1611#msg1611
submitted by removalbot to removalbot [link] [comments]

Monday Monero Missives (weekly report) - October 6th, 2014

Original post is here
Monero Monday Missives
October 6th, 2014
Hello, and welcome to our thirteenth Monero Monday Missive! You'll notice a slight change in name - as of today we will be putting out a Missive every Monday. We want to start shifting the Missive from an announcement platform to a "week in review" platform. Traditionally the Missives have been a place for announcements, but all that is about to change.
Major Updates
1. We are happy to announce the launch of the official Monero forum. You can find it at https://forum.monero.cc
Instead of using something existing and off-the-shelf we wrote our own. There were several reasons for this, but the primary reason is that there is functionality we required that simply does not exist in existing forum software. Additionally, the nature of forums has hardly changed in well over 20 years (phpBB was released in 2000, SMF that is used on Bitcointalk was released in 2003). The forum software will be open-sourced and released soon. You will find the following features on the new forum of interest:
3. We have have been working hard in the background on the codebase, and the following additions are available in the source repository:
4. The Monero Research Lab is glad to release a new Research Bulletin, MRL-0003, entitled "Monero is Not That Mysterious". In it, the Monero ring signatures are broken down and analysed both cryptographically and mathematically. In conjunction with that, we are happy to announce the release of MiniNero, a Python implementation of the Monero ring signatures. This is a very basic reimplementation that produces valid ring signatures that are nearly Monero compatible, although slight differences occur due to the hashing and packing algorithms. You can find the MiniNero source code on Github: https://github.com/monero-project/mininero
5. Monero has been added to the Cryptsy voting list, and within a few short days it has shot up to number 2 on the voting list. Thanks to all that have voted and continue to vote!
Dev Diary
Core: file checkpointing. This is in the form of a checkpoints.json file added to the config_folder. This file is checked every 10 minutes, and new checkpoints are always enforced (it is assumed that if an attacker has write access to your config_folder they can just modify your blockchain without needing to do anything else). At its simplest, the file follows this format:
{ "hashlines": [{ "hash": "7cb10e29d67e1c069e6e11b17d30b809724255fee2f6868dc14cfc6ed44dfb25", "height": 22231 },{ "hash": "bbd604d2ba11ba27935e006ed39c9bfdd99b76bf4a50654bc1e1e61217962698", "height": 202612 }] } 
Core: DNS checkpointing. This scans TXT records on the domains checkpoints.moneropulse.net/org/se/co every hour and, unless an enforce flag is set, notifies the user where checkpoints do not match. The records are all DNSSEC secured, although there is still some work to be done to provide cross-platform root trust anchors.
Build: the build system is a little precarious at the moment. We are working hard on improving it so that builds are easier and less problematic. Our focus is always on making sure the that "usual" dynamic build works, and static builds are thus a secondary concern. At this stage, static builds require a bit of massaging that we hope to have sorted out by the next tagged release.
Core: dga has kindly spend some time annotating and documenting the PoW algorithm in code. If you are working with the PoW algorithm you may find his notes in slow_hash.c to be extremely useful and revealing.
Until next week!
submitted by fluffyponyza to Monero [link] [comments]

Blockchain Development with PHP! CodingTricksHub - YouTube How to earn Free Bitcoins in 2018 legit Bitcoin: Beyond The Bubble - Full Documentary - YouTube Cryptocurrency Mining Script - ICO mining script PHP - dogecoin cloud mining script

Start your own Bitcoin Mining Website, by using bitcoin cloud mining script. bitcoin cloud mining script nulled is a complete software helping you to start, manage & manitain a bitcoin mining program. bitcoin mining script also support bitcoin mining calculator. A block notification is sent every time a new block is added to the blockchain, and matches the height and number of confirmations set in the notification request. hash - The block hash. confirmations - The number of confirmations of this block. height - The block height. timestamp - The unix timestamp indicating when the block was added. But I don't see any wallet notify event in debug.log file. Please correct me If I am guessing wrong that one of the possible reason could be the db is in synchronization process with the main block chain testnet database. Once synchronization is completed then it will issue walletnotify command. I have bitcoin daemon and I want to use the walletnotify option with a json-rpc call. Some of the examples use a "transaction.sh" file for walletnotify. What is it for? What do I have to write in ... Introduction. In this tutorial, we will be taking a closer look at bitcoin's ZeroMQ messaging interface. This interface is useful for developing applications which might require data related to block and transaction events from a Bitcoin core node. Some applications which include block explorers, wallets and reporting dash boards to name just a few.

[index] [27155] [31871] [34102] [6897] [29900] [21772] [20787] [276] [31892] [37123]

Blockchain Development with PHP!

Bitcoin für Anfänger einfach erklärt! [auf Deutsch] Bitcoin-Börse (erhalte 10€ in BTC) https://finanzfluss.de/go/bitcoin-boerse *📱 Sicheres Bitcoin-Wallet... So ICO mining script php that it become like collaboration process where (Iaas) Infrastructure as a service in cloud and also miner can become the part of the crypto currency mining. Blockchain, Cryptocurrency. Bitcoin, Ethereum. Buzzwords? Trendy topics? Sure. As a developer, I'm not very interested in the hype or the crazy speculation. But I want to understand the underlying ... Your IP is blocked. If in past your IP was made by any antifraud system as Suspicious our system will block your IP automatically If in past your IP was made by any antifraud system as Suspicious ... Thanks for watching! For donations: Bitcoin - 1CpGMM8Ag8gNYL3FffusVqEBUvHyYenTP8