Simple Bitcoin JSON-RPC client based on GuzzleHttp - GitHub

Upcoming Major Riecoin 0.20 Upgrade

Upcoming Major Riecoin 0.20 Upgrade
A new major Riecoin upgrade is planned, and includes a hard fork. Below is a summary of the changes so far and the hard fork improvements. More details can be found on BitcoinTalk. Feel free to ask Pttn there or on Discord if you have questions regarding the update.
The first step of this upgrade was to update the base code to Bitcoin’s 0.20, which is done. You can find the experimental code at the Github repository. Experimental binaries can also be downloaded here. Despite their prerelease status, they should work fine, though please backup your wallets if you plan to use 0.20, just in case.
Pool operators and other advanced Riecoin users should start looking into the changes and update their software accordingly, as well as closely follow the Riecoin Core development.
Here is a list of notable changes from 0.16.3.1.
The next step will be the hard fork, in order to improve Riecoin in multiple ways. Here is the list of planned changes.
Once the development is advanced enough, a date will be chosen for the hard fork. Testnet will be hardforked first to ensure the well functioning of the implementation. Stay tuned!
submitted by PttnMe to RieCoin [link] [comments]

A giant Faucet for HTML5 Canvas JavaScript


An example of a pseudo 3d effect using rectangle particles as water droplets
This is a giant Faucet for HTML5 Canvas JavaScript. With a mouse click the faucet will turn on and water particles will start pouring out until it is closed again. When it hits some vertical offset, the water will dissipate outwards with each particle getting slightly bigger as a front perspective view for a pseudo-3d effect. Particle clean-up/removal occurs when reaching the bottom canvas border to keep things running smoothly. Little mists near the spout hole are generated with random vx and vy velocity, with text indication on each side as on/off along with sound effects. The faucet image was modified using Adobe Photoshop.
A use case scenario would be a literal tongue-in-cheek faucet for said crypto-currency. The way you would dispense a set number of coins would require running a server with a full active node in Linux. Then by using a backend script such as a modified variation of bitcoinPHP, python, or nodeJS can be used to validate a user's wallet address by which a set amount can be safely sent with integrated SSL (secure socket layer) protocols via Remote Procedure Calls or RPCs. It's another fun way of 'spicing' up these kinds of projects, if that's your thing.
submitted by Chancellor-Parks to html5 [link] [comments]

Groestlcoin 6th Anniversary Release

Introduction

Dear Groestlers, it goes without saying that 2020 has been a difficult time for millions of people worldwide. The groestlcoin team would like to take this opportunity to wish everyone our best to everyone coping with the direct and indirect effects of COVID-19. Let it bring out the best in us all and show that collectively, we can conquer anything.
The centralised banks and our national governments are facing unprecedented times with interest rates worldwide dropping to record lows in places. Rest assured that this can only strengthen the fundamentals of all decentralised cryptocurrencies and the vision that was seeded with Satoshi's Bitcoin whitepaper over 10 years ago. Despite everything that has been thrown at us this year, the show must go on and the team will still progress and advance to continue the momentum that we have developed over the past 6 years.
In addition to this, we'd like to remind you all that this is Groestlcoin's 6th Birthday release! In terms of price there have been some crazy highs and lows over the years (with highs of around $2.60 and lows of $0.000077!), but in terms of value– Groestlcoin just keeps getting more valuable! In these uncertain times, one thing remains clear – Groestlcoin will keep going and keep innovating regardless. On with what has been worked on and completed over the past few months.

UPDATED - Groestlcoin Core 2.18.2

This is a major release of Groestlcoin Core with many protocol level improvements and code optimizations, featuring the technical equivalent of Bitcoin v0.18.2 but with Groestlcoin-specific patches. On a general level, most of what is new is a new 'Groestlcoin-wallet' tool which is now distributed alongside Groestlcoin Core's other executables.
NOTE: The 'Account' API has been removed from this version which was typically used in some tip bots. Please ensure you check the release notes from 2.17.2 for details on replacing this functionality.

How to Upgrade?

Windows
If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer.
OSX
If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), run the dmg and drag Groestlcoin Core to Applications.
Ubuntu
http://groestlcoin.org/forum/index.php?topic=441.0

Other Linux

http://groestlcoin.org/forum/index.php?topic=97.0

Download

Download the Windows Installer (64 bit) here
Download the Windows Installer (32 bit) here
Download the Windows binaries (64 bit) here
Download the Windows binaries (32 bit) here
Download the OSX Installer here
Download the OSX binaries here
Download the Linux binaries (64 bit) here
Download the Linux binaries (32 bit) here
Download the ARM Linux binaries (64 bit) here
Download the ARM Linux binaries (32 bit) here

Source

ALL NEW - Groestlcoin Moonshine iOS/Android Wallet

Built with React Native, Moonshine utilizes Electrum-GRS's JSON-RPC methods to interact with the Groestlcoin network.
GRS Moonshine's intended use is as a hot wallet. Meaning, your keys are only as safe as the device you install this wallet on. As with any hot wallet, please ensure that you keep only a small, responsible amount of Groestlcoin on it at any given time.

Features

Download

iOS
Android

Source

ALL NEW! – HODL GRS Android Wallet

HODL GRS connects directly to the Groestlcoin network using SPV mode and doesn't rely on servers that can be hacked or disabled.
HODL GRS utilizes AES hardware encryption, app sandboxing, and the latest security features to protect users from malware, browser security holes, and even physical theft. Private keys are stored only in the secure enclave of the user's phone, inaccessible to anyone other than the user.
Simplicity and ease-of-use is the core design principle of HODL GRS. A simple recovery phrase (which we call a Backup Recovery Key) is all that is needed to restore the user's wallet if they ever lose or replace their device. HODL GRS is deterministic, which means the user's balance and transaction history can be recovered just from the backup recovery key.

Features

Download

Main Release (Main Net)
Testnet Release

Source

ALL NEW! – GroestlcoinSeed Savior

Groestlcoin Seed Savior is a tool for recovering BIP39 seed phrases.
This tool is meant to help users with recovering a slightly incorrect Groestlcoin mnemonic phrase (AKA backup or seed). You can enter an existing BIP39 mnemonic and get derived addresses in various formats.
To find out if one of the suggested addresses is the right one, you can click on the suggested address to check the address' transaction history on a block explorer.

Features

Live Version (Not Recommended)

https://www.groestlcoin.org/recovery/

Download

https://github.com/Groestlcoin/mnemonic-recovery/archive/master.zip

Source

ALL NEW! – Vanity Search Vanity Address Generator

NOTE: NVidia GPU or any CPU only. AMD graphics cards will not work with this address generator.
VanitySearch is a command-line Segwit-capable vanity Groestlcoin address generator. Add unique flair when you tell people to send Groestlcoin. Alternatively, VanitySearch can be used to generate random addresses offline.
If you're tired of the random, cryptic addresses generated by regular groestlcoin clients, then VanitySearch is the right choice for you to create a more personalized address.
VanitySearch is a groestlcoin address prefix finder. If you want to generate safe private keys, use the -s option to enter your passphrase which will be used for generating a base key as for BIP38 standard (VanitySearch.exe -s "My PassPhrase" FXPref). You can also use VanitySearch.exe -ps "My PassPhrase" which will add a crypto secure seed to your passphrase.
VanitySearch may not compute a good grid size for your GPU, so try different values using -g option in order to get the best performances. If you want to use GPUs and CPUs together, you may have best performances by keeping one CPU core for handling GPU(s)/CPU exchanges (use -t option to set the number of CPU threads).

Features

Usage

https://github.com/Groestlcoin/VanitySearch#usage

Download

Source

ALL NEW! – Groestlcoin EasyVanity 2020

Groestlcoin EasyVanity 2020 is a windows app built from the ground-up and makes it easier than ever before to create your very own bespoke bech32 address(es) when whilst not connected to the internet.
If you're tired of the random, cryptic bech32 addresses generated by regular Groestlcoin clients, then Groestlcoin EasyVanity2020 is the right choice for you to create a more personalised bech32 address. This 2020 version uses the new VanitySearch to generate not only legacy addresses (F prefix) but also Bech32 addresses (grs1 prefix).

Features

Download

Source

Remastered! – Groestlcoin WPF Desktop Wallet (v2.19.0.18)

Groestlcoin WPF is an alternative full node client with optional lightweight 'thin-client' mode based on WPF. Windows Presentation Foundation (WPF) is one of Microsoft's latest approaches to a GUI framework, used with the .NET framework. Its main advantages over the original Groestlcoin client include support for exporting blockchain.dat and including a lite wallet mode.
This wallet was previously deprecated but has been brought back to life with modern standards.

Features

Remastered Improvements

Download

Source

ALL NEW! – BIP39 Key Tool

Groestlcoin BIP39 Key Tool is a GUI interface for generating Groestlcoin public and private keys. It is a standalone tool which can be used offline.

Features

Download

Windows
Linux :
 pip3 install -r requirements.txt python3 bip39\_gui.py 

Source

ALL NEW! – Electrum Personal Server

Groestlcoin Electrum Personal Server aims to make using Electrum Groestlcoin wallet more secure and more private. It makes it easy to connect your Electrum-GRS wallet to your own full node.
It is an implementation of the Electrum-grs server protocol which fulfils the specific need of using the Electrum-grs wallet backed by a full node, but without the heavyweight server backend, for a single user. It allows the user to benefit from all Groestlcoin Core's resource-saving features like pruning, blocks only and disabled txindex. All Electrum-GRS's feature-richness like hardware wallet integration, multi-signature wallets, offline signing, seed recovery phrases, coin control and so on can still be used, but connected only to the user's own full node.
Full node wallets are important in Groestlcoin because they are a big part of what makes the system be trust-less. No longer do people have to trust a financial institution like a bank or PayPal, they can run software on their own computers. If Groestlcoin is digital gold, then a full node wallet is your own personal goldsmith who checks for you that received payments are genuine.
Full node wallets are also important for privacy. Using Electrum-GRS under default configuration requires it to send (hashes of) all your Groestlcoin addresses to some server. That server can then easily spy on your transactions. Full node wallets like Groestlcoin Electrum Personal Server would download the entire blockchain and scan it for the user's own addresses, and therefore don't reveal to anyone else which Groestlcoin addresses they are interested in.
Groestlcoin Electrum Personal Server can also broadcast transactions through Tor which improves privacy by resisting traffic analysis for broadcasted transactions which can link the IP address of the user to the transaction. If enabled this would happen transparently whenever the user simply clicks "Send" on a transaction in Electrum-grs wallet.
Note: Currently Groestlcoin Electrum Personal Server can only accept one connection at a time.

Features

Download

Windows
Linux / OSX (Instructions)

Source

UPDATED – Android Wallet 7.38.1 - Main Net + Test Net

The app allows you to send and receive Groestlcoin on your device using QR codes and URI links.
When using this app, please back up your wallet and email them to yourself! This will save your wallet in a password protected file. Then your coins can be retrieved even if you lose your phone.

Changes

Download

Main Net
Main Net (FDroid)
Test Net

Source

UPDATED – Groestlcoin Sentinel 3.5.06 (Android)

Groestlcoin Sentinel is a great solution for anyone who wants the convenience and utility of a hot wallet for receiving payments directly into their cold storage (or hardware wallets).
Sentinel accepts XPUB's, YPUB'S, ZPUB's and individual Groestlcoin address. Once added you will be able to view balances, view transactions, and (in the case of XPUB's, YPUB's and ZPUB's) deterministically generate addresses for that wallet.
Groestlcoin Sentinel is a fork of Groestlcoin Samourai Wallet with all spending and transaction building code removed.

Changes

Download

Source

UPDATED – P2Pool Test Net

Changes

Download

Pre-Hosted Testnet P2Pool is available via http://testp2pool.groestlcoin.org:21330/static/

Source

submitted by Yokomoko_Saleen to groestlcoin [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]

⚡ Lightning Network Megathread ⚡

Last updated 2018-01-29
This post is a collaboration with the Bitcoin community to create a one-stop source for Lightning Network information.
There are still questions in the FAQ that are unanswered, if you know the answer and can provide a source please do so!

⚡What is the Lightning Network? ⚡

Explanations:

Image Explanations:

Specifications / White Papers

Videos

Lightning Network Experts on Reddit

  • starkbot - (Elizabeth Stark - Lightning Labs)
  • roasbeef - (Olaoluwa Osuntokun - Lightning Labs)
  • stile65 - (Alex Akselrod - Lightning Labs)
  • cfromknecht - (Conner Fromknecht - Lightning Labs)
  • RustyReddit - (Rusty Russell - Blockstream)
  • cdecker - (Christian Decker - Blockstream)
  • Dryja - (Tadge Dryja - Digital Currency Initiative)
  • josephpoon - (Joseph Poon)
  • fdrn - (Fabrice Drouin - ACINQ )
  • pmpadiou - (Pierre-Marie Padiou - ACINQ)

Lightning Network Experts on Twitter

  • @starkness - (Elizabeth Stark - Lightning Labs)
  • @roasbeef - (Olaoluwa Osuntokun - Lightning Labs)
  • @stile65 - (Alex Akselrod - Lightning Labs)
  • @bitconner - (Conner Fromknecht - Lightning Labs)
  • @johanth - (Johan Halseth - Lightning Labs)
  • @bvu - (Bryan Vu - Lightning Labs)
  • @rusty_twit - (Rusty Russell - Blockstream)
  • @snyke - (Christian Decker - Blockstream)
  • @JackMallers - (Jack Mallers - Zap)
  • @tdryja - (Tadge Dryja - Digital Currency Initiative)
  • @jcp - (Joseph Poon)
  • @alexbosworth - (Alex Bosworth - yalls.org)

Medium Posts

Learning Resources

Books

Desktop Interfaces

Web Interfaces

Tutorials and resources

Lightning on Testnet

Lightning Wallets

Place a testnet transaction

Altcoin Trading using Lightning

  • ZigZag - Disclaimer You must trust ZigZag to send to Target Address

Lightning on Mainnet

Warning - Testing should be done on Testnet

Atomic Swaps

Developer Documentation and Resources

Lightning implementations

  • LND - Lightning Network Daemon (Golang)
  • eclair - A Scala implementation of the Lightning Network (Scala)
  • c-lightning - A Lightning Network implementation in C
  • lit - Lightning Network node software (Golang)
  • lightning-onion - Onion Routed Micropayments for the Lightning Network (Golang)
  • lightning-integration - Lightning Integration Testing Framework
  • ptarmigan - C++ BOLT-Compliant Lightning Network Implementation [Incomplete]

Libraries

Lightning Network Visualizers/Explorers

Testnet

Mainnet

Payment Processors

  • BTCPay - Next stable version will include Lightning Network

Community

Slack

IRC

Slack Channel

Discord Channel

Miscellaneous

⚡ Lightning FAQs ⚡

If you can answer please PM me and include source if possible. Feel free to help keep these answers up to date and as brief but correct as possible
Is Lightning Bitcoin?
Yes. You pick a peer and after some setup, create a bitcoin transaction to fund the lightning channel; it’ll then take another transaction to close it and release your funds. You and your peer always hold a bitcoin transaction to get your funds whenever you want: just broadcast to the blockchain like normal. In other words, you and your peer create a shared account, and then use Lightning to securely negotiate who gets how much from that shared account, without waiting for the bitcoin blockchain.
Is the Lightning Network open source?
Yes, Lightning is open source. Anyone can review the code (in the same way as the bitcoin code)
Who owns and controls the Lightning Network?
Similar to the bitcoin network, no one will ever own or control the Lightning Network. The code is open source and free for anyone to download and review. Anyone can run a node and be part of the network.
I’ve heard that Lightning transactions are happening “off-chain”…Does that mean that my bitcoin will be removed from the blockchain?
No, your bitcoin will never leave the blockchain. Instead your bitcoin will be held in a multi-signature address as long as your channel stays open. When the channel is closed; the final transaction will be added to the blockchain. “Off-chain” is not a perfect term, but it is used due to the fact that the transfer of ownership is no longer reflected on the blockchain until the channel is closed.
Do I need a constant connection to run a lightning node?
Not necessarily,
Example: A and B have a channel. 1 BTC each. A sends B 0.5 BTC. B sends back 0.25 BTC. Balance should be A = 0.75, B = 1.25. If A gets disconnected, B can publish the first Tx where the balance was A = 0.5 and B = 1.5. If the node B does in fact attempt to cheat by publishing an old state (such as the A=0.5 and B=1.5 state), this cheat can then be detected on-chain and used to steal the cheaters funds, i.e., A can see the closing transaction, notice it's an old one and grab all funds in the channel (A=2, B=0). The time that A has in order to react to the cheating counterparty is given by the CheckLockTimeVerify (CLTV) in the cheating transaction, which is adjustable. So if A foresees that it'll be able to check in about once every 24 hours it'll require that the CLTV is at least that large, if it's once a week then that's fine too. You definitely do not need to be online and watching the chain 24/7, just make sure to check in once in a while before the CLTV expires. Alternatively you can outsource the watch duties, in order to keep the CLTV timeouts low. This can be achieved both with trusted third parties or untrusted ones (watchtowers). In the case of a unilateral close, e.g., you just go offline and never come back, the other endpoint will have to wait for that timeout to expire to get its funds back. So peers might not accept channels with extremely high CLTV timeouts. -- Source
What Are Lightning’s Advantages?
Tiny payments are possible: since fees are proportional to the payment amount, you can pay a fraction of a cent; accounting is even done in thousandths of a satoshi. Payments are settled instantly: the money is sent in the time it takes to cross the network to your destination and back, typically a fraction of a second.
Does Lightning require Segregated Witness?
Yes, but not in theory. You could make a poorer lightning network without it, which has higher risks when establishing channels (you might have to wait a month if things go wrong!), has limited channel lifetime, longer minimum payment expiry times on each hop, is less efficient and has less robust outsourcing. The entire spec as written today assumes segregated witness, as it solves all these problems.
Can I Send Funds From Lightning to a Normal Bitcoin Address?
No, for now. For the first version of the protocol, if you wanted to send a normal bitcoin transaction using your channel, you have to close it, send the funds, then reopen the channel (3 transactions). In future versions, you and your peer would agree to spend out of your lightning channel funds just like a normal bitcoin payment, allowing you to use your lightning wallet like a normal bitcoin wallet.
Can I Make Money Running a Lightning Node?
Not really. Anyone can set up a node, and so it’s a race to the bottom on fees. In practice, we may see the network use a nominal fee and not change very much, which only provides an incremental incentive to route on a node you’re going to use yourself, and not enough to run one merely for fees. Having clients use criteria other than fees (e.g. randomness, diversity) in route selection will also help this.
What is the release date for Lightning on Mainnet?
Lightning is already being tested on the Mainnet Twitter Link but as for a specific date, Jameson Lopp says it best
Would there be any KYC/AML issues with certain nodes?
Nope, because there is no custody ever involved. It's just like forwarding packets. -- Source
What is the delay time for the recipient of a transaction receiving confirmation?
Furthermore, the Lightning Network scales not with the transaction throughput of the underlying blockchain, but with modern data processing and latency limits - payments can be made nearly as quickly as packets can be sent. -- Source
How does the lightning network prevent centralization?
Bitcoin Stack Exchange Answer
What are Channel Factories and how do they work?
Bitcoin Stack Exchange Answer
How does the Lightning network work in simple terms?
Bitcoin Stack Exchange Answer
How are paths found in Lightning Network?
Bitcoin Stack Exchange Answer
How would the lightning network work between exchanges?
Each exchange will get to decide and need to implement the software into their system, but some ideas have been outlined here: Google Doc - Lightning Exchanges
Note that by virtue of the usual benefits of cost-less, instantaneous transactions, lightning will make arbitrage between exchanges much more efficient and thus lead to consistent pricing across exchange that adopt it. -- Source
How do lightning nodes find other lightning nodes?
Stack Exchange Answer
Does every user need to store the state of the complete Lightning Network?
According to Rusty's calculations we should be able to store 1 million nodes in about 100 MB, so that should work even for mobile phones. Beyond that we have some proposals ready to lighten the load on endpoints, but we'll cross that bridge when we get there. -- Source
Would I need to download the complete state every time I open the App and make a payment?
No you'd remember the information from the last time you started the app and only sync the differences. This is not yet implemented, but it shouldn't be too hard to get a preliminary protocol working if that turns out to be a problem. -- Source
What needs to happen for the Lightning Network to be deployed and what can I do as a user to help?
Lightning is based on participants in the network running lightning node software that enables them to interact with other nodes. This does not require being a full bitcoin node, but you will have to run "lnd", "eclair", or one of the other node softwares listed above.
All lightning wallets have node software integrated into them, because that is necessary to create payment channels and conduct payments on the network, but you can also intentionally run lnd or similar for public benefit - e.g. you can hold open payment channels or channels with higher volume, than you need for your own transactions. You would be compensated in modest fees by those who transact across your node with multi-hop payments. -- Source
Is there anyway for someone who isn't a developer to meaningfully contribute?
Sure, you can help write up educational material. You can learn and read more about the tech at http://dev.lightning.community/resources. You can test the various desktop and mobile apps out there (Lightning Desktop, Zap, Eclair apps). -- Source
Do I need to be a miner to be a Lightning Network node?
No -- Source
Do I need to run a full Bitcoin node to run a lightning node?
lit doesn't depend on having your own full node -- it automatically connects to full nodes on the network. -- Source
LND uses a light client mode, so it doesn't require a full node. The name of the light client it uses is called neutrino
How does the lightning network stop "Cheating" (Someone broadcasting an old transaction)?
Upon opening a channel, the two endpoints first agree on a reserve value, below which the channel balance may not drop. This is to make sure that both endpoints always have some skin in the game as rustyreddit puts it :-)
For a cheat to become worth it, the opponent has to be absolutely sure that you cannot retaliate against him during the timeout. So he has to make sure you never ever get network connectivity during that time. Having someone else also watching for channel closures and notifying you, or releasing a canned retaliation, makes this even harder for the attacker. This is because if he misjudged you being truly offline you can retaliate by grabbing all of its funds. Spotty connections, DDoS, and similar will not provide the attacker the necessary guarantees to make cheating worthwhile. Any form of uncertainty about your online status acts as a deterrent to the other endpoint. -- Source
How many times would someone need to open and close their lightning channels?
You typically want to have more than one channel open at any given time for redundancy's sake. And we imagine open and close will probably be automated for the most part. In fact we already have a feature in LND called autopilot that can automatically open channels for a user.
Frequency will depend whether the funds are needed on-chain or more useful on LN. -- Source
Will the lightning network reduce BTC Liquidity due to "locking-up" funds in channels?
Stack Exchange Answer
Can the Lightning Network work on any other cryptocurrency? How?
Stack Exchange Answer
When setting up a Lightning Network Node are fees set for the entire node, or each channel when opened?
You don't really set up a "node" in the sense that anyone with more than one channel can automatically be a node and route payments. Fees on LN can be set by the node, and can change dynamically on the network. -- Source
Can Lightning routing fees be changed dynamically, without closing channels?
Yes but it has to be implemented in the Lightning software being used. -- Source
How can you make sure that there will be routes with large enough balances to handle transactions?
You won't have to do anything. With autopilot enabled, it'll automatically open and close channels based on the availability of the network. -- Source
How does the Lightning Network stop flooding nodes (DDoS) with micro transactions? Is this even an issue?
Stack Exchange Answer

Unanswered Questions

How do on-chain fees work when opening and closing channels? Who pays the fee?
How does the Lightning Network work for mobile users?
What are the best practices for securing a lightning node?
What is a lightning "hub"?
How does lightning handle cross chain (Atomic) swaps?

Special Thanks and Notes

  • Many links found from awesome-lightning-network github
  • Everyone who submitted a question or concern!
  • I'm continuing to format for an easier Mobile experience!
submitted by codedaway to Bitcoin [link] [comments]

Era Swap Network White Paper

Era Swap Network White Paper

Era Swap Network

White Paper



DISCLAIMER
This Whitepaper is for Era Swap Network. Its purpose is solely to provide prospective community members with information about the Era Swap Ecosystem & Era Swap Network project. This paper is for information purposes only and does not constitute and is not intended to be an offer of securities or any other financial or investment instrument in any jurisdiction.
The Developers disclaim any and all responsibility and liability to any person for any loss or damage whatsoever arising directly or indirectly from (1) reliance on any information contained in this paper, (2) any error, omission or inaccuracy in any such information, or (3) any action resulting therefrom
Digital Assets are extremely high-risk, speculative products. You should be aware of the risks involved and fully consider before participating in Digital assets whether it’s appropriate for you. You should only participate if you are an experienced investor with sophisticated knowledge of financial markets and you fully understand the risks associated with digital assets. We strongly advise you to take independent professional advice before making any investment or participating in any way. You should check what rules and protections apply to your respective jurisdictions before investing or participating in any way. The Creators & community will not compensate you for any losses from trading, investment or participating in any way. You should read whitepaper carefully before participating and consider whether these products are right for you.

TABLE OF CONTENT

· Abstract
· Introduction to Era Swap Network
· Development Overview
· Era Swap Utility Platform
· Alpha-release Development Plan
· Era Swap Network Version 1: Specification
· Bunch Structure: 10
· Converting ES-ERC20 to ES-Na:
· Conclusion:
· Era Swap Ecosystem
· Social Links

Abstract

The early smart contracts of Era Swap Ecosystem like TimeAlly, Newly Released Tokens, Assurance, BetDeEx of Era Swap Ecosystem, are deployed on Ethereum mainnet. These smart contracts are finance-oriented (DeFi), i.e. most of the transactions are about spending or earning of Era Swap tokens which made paying the gas fees in Ether somewhat intuitive to the user (withdrawal charges in bank, paying tax while purchasing burgers) but transactions that are not token oriented like adding a nominee or appointee voting also needs Ether to be charged. As more Era Swap Token Utility platform ideas kept appending to the Era Swap Main Whitepaper, more non-financial transaction situations arise like updating status, sending a message, resolving a dispute and so on. Paying extensively for such actions all day and waiting for the transaction to be included in a block and then waiting for enough block confirmations due to potential chain re-organizations is counter-intuitive to existing free solutions like Facebook, Gmail. This is the main barrier that is stopping Web 3.0 from coming to the mainstream.
As alternatives to Ethereum, there are few other smart contract development platforms that propose their own separate blockchain that features for higher transaction throughput, but they compromise on decentralization for improving transaction speeds. Moreover, the ecosystem tools are most advancing in Ethereum than any other platform due to the massive developer community.
With Era Swap Network, the team aims to achieve scalability, speed and low-cost transactions for Era Swap Ecosystem (which is currently not feasible on Ethereum mainnet), without compromising much on trustless asset security for Era Swap Community users.

Introduction to Era Swap Network

Era Swap Network (ESN) aims to solve the above-mentioned problems faced by Era Swap Ecosystem users by building a side-blockchain on top of Ethereum blockchain using the Plasma Framework.
Era Swap Network leverages the Decentralisation and Security of Ethereum and the Scalability achieved in the side-chain, this solves the distributed blockchain trilema. In most of the other blockchains, blocks are a collection of transactions and all the transactions in one block are mined by a miner in one step. Era Swap Network will consist of Bunches of Blocks of Era Swap Ecosystem Transactions.

Decentralization

Layer 2


Scalable and Secure

A miner mines all the blocks in a bunch consequently and will commit the bunch-root to the ESN Plasma Smart Contract on Ethereum mainnet.

Development Overview
Initially, we will start with a simple Proof-of-Authority (PoA) based consensus of EVM to start the development and testing of Era Swap Ecosystem Smart Contracts as quickly as possible on the test-net. We will call this as an alpha-release of ESN test-net and only internal developers will work with this for developing smart contracts for Era Swap Ecosystem. User’s funds in a Plasma implementation with a simple consensus like PoA are still secured as already committed bunch-roots cannot be reversed.
Eventually, we want to arrive on a more control-decentralized consensus algorithm like Proof-of-Stake (PoS) probably, so that even if the chain operator shuts down their services, a single Era Swap Ecosystem user somewhere in the world can keep the ecosystem alive by running software on their system and similarly more people can join to decentralize the control further. In this PoS version, we will modify the Parity Ethereum client in such a way, that at least 50% of transaction fees collected will go to the Luck Pool of NRT Smart Contract on Ethereum mainnet and rest can be kept by miner of the blocks/bunch of blocks if they wish. After achieving such an implementation, we will release this as a beta version to the community for testing the software on their computers with Kovan ERC20 Era Swaps (Ethereum test-net).

Era Swap Decentralised Ecosystem
Following platforms are to be integrated:
  1. Era Swap Token Contract (adapted ERC20 on Ethereum) The original asset will lie on Ethereum to avoid loss due to any kind of failure in ESN.
  2. Plasma Manager Contract (on Ethereum) To store ESN bunch headers on Ethereum.
  3. Reverse Plasma Manager Contract (on ESN) Bridge to convert ES to ES native and ES native to ES. User deposits ES on Mainnet Plasma, gives proof on ESN and gets ES native credited to their account in a decentralised way.
  4. NRT Manager Contract (on Ethereum or on ESN) If it is possible to send ES from an ESN contract to luck pool of NRT Manager Contract on Ethereum, then it’s ok otherwise, NRT Manager will need to be deployed on ESN for ability to add ES to luck pool.
  5. Era Swap Wallet (React Native App for managing ESs and ES natives) Secure wallet to store multiple private keys in it, mainly for managing ES and ES native, sending ES or ES native, also for quick and easy BuzCafe payments.
  6. TimeAlly (on Ethereum or on ESN) On whichever chain NRT Manager is deployed, TimeAlly would be deployed on the same chain.
  7. Assurance (on Ethereum or on ESN) On whichever chain NRT Manager is deployed, TimeAlly would be deployed on the same chain.
  8. DaySwappers (on ESN) KYC manager for platform. For easily distributing rewards to tree referees.
  9. TimeSwappers (on ESN) Freelance market place with decentralised dispute management.
  10. SwappersWall (on ESN) Decentralised social networking with power tokens.
  11. BuzCafe (on ESN) Listing of shops and finding shops easily and quick payment.
  12. BetDeEx (on ESN) Decentralised Prediction proposals, prediction and results.
  13. DateSwappers (on ESN) Meeting ensured using cryptography.
  14. ComputeEx (on Ethereum / centralised way) Exchange assets.
  15. Era Swap Academy (on ESN / centralised way) Learn. Loop. Leap. How to implement ES Academy is not clear. One idea is if content is constantly being modified, then subscription expired people will only have the hash of old content while new content hash is only available to people who have done Dayswapper KYC and paid for the course. Dayswapper KYC is required because this way people won’t share their private keys to someone else.
  16. Value of Farmers (tbd) The exchange of farming commodities produced by farmers in VoF can be deposited to warehouses where the depositors will get ERC721 equivalent tokens for their commodities (based on unique tagging).
  17. DeGameStation (on ESN) Decentralised Gaming Station. Games in which players take turns can be written in Smart Contract. Games like Chess, Poker, 3 Patti can be developed. Users can come to DeGameStation and join an open game or start a new game and wait for other players to join.

Alpha-release Development Plan
  1. Deploying Parity Node customized according to Era Swap Whitepaper with PoA consensus.
  2. Setting up Plasma Smart Contracts.
  3. Creating a bridge for ERC20 Swap from Ethereum test-net to ESN alpha test-net.

Alpha Version
Era Swap Network Version 1 : Specification
The Version 1 release of ESN plans to fulfill the requirements for political decentralisation and transparency in dApps of Era Swap Ecosystem using Blockchain Technology. After acquiring sufficient number of users, a version 2 construction of ESN will be feasible to enable administrative decentralization, such that the Era Swap Ecosystem will be run and managed by the Era Swap Community and will no longer require the operator to support for it's functioning.
Era Swap Network (ESN) Version 1 will be a separate EVM-compatible sidechain attached to Ethereum blockchain as it’s parent chain. ESN will achieve security through Plasma Framework along with Proof-of-Authority consensus for faster finality. The idea behind plasma framework is to avoid high transaction fees and high transaction confirmation times on Ethereum mainnet by instead doing all the ecosystem transactions off-chain and only post a small information to an Ethereum Smart Contract which would represent hash of plenty of ecosystem transactions. Also, to feature movement of Era Swap Tokens from Ethereum blockchain to ESN using cryptographic proof, reverse plasma of Ethereum on ESN will be implemented.
Also, submitting hash of each ESN blocks to ESN Plasma Smart Contract on Ethereum would force ESN to have a block time equal to or more than Ethereum’s 15 second time as well as it would be very much costly for operator to post lot of hashes to an Ethereum Smart Contract. This is why, merkle root of hashes of bunch of blocks would instead be submitted to ESN Plasma Smart Contact on Ethereum.
Actors involved in the ESN:
  1. Block Producer Nodes Lesser the number of nodes, quicker is the block propagation between block producers which can help quick ecosystem transactions. We find that 7 block producers hosted on different could hosting companies and locations reduces the risk of single point of failure of Era Swap Ecosystem and facilitates 100% uptime of dApps. Block Producer Nodes will also be responsible to post the small information to the Blockchain.
  2. Block Listener Nodes Rest of the nodes will be Block Listeners which will sync new blocks produced by the block producer nodes. Plenty of public block listener nodes would be setup in various regions around the world for shorter ping time to the users of Era Swap Ecosystem. Users would submit their Era Swap Ecosystem transactions to one of these public nodes, which would relay them to rest of the Era Swap Network eventually to the block producer nodes which would finalize a new block including the user transaction.
  3. Bunch Committers This will be an instance in the block producers which will watch for new blocks confirmed on ESN and will calculate bunch merkle roots and will submit it to ESN Plasma Smart Contract. This instance will also post hash of new Ethereum blocks to ESN (after about 10 confirmations) for moving assets between both the blockchain.
  4. Users These will be integrating with dApps which would be connected to some public ESN nodes or they can install a block listner node themselves. They can sign and send transactions to the node which they are connected to and then that node will relay their transactions to block producer nodes who would finalise a block including their transaction.

Bunch Structure

A Bunch Structure in Smart Contract will consist of the following:
• Start Block Number: It is the number of first ESN block in the bunch.
• Bunch Depth: It is Merkle Tree depth of blocks in the bunch. For e.g. If bunch depth is 3, there would be 8 blocks in the bunch and if bunch depth is 10, there would be 1024 blocks in the bunch. Bunch depth of Bunches on ESN Plasma Contract is designed to be variable. During the initial phases of ESN, it would be high, for e.g. 15, to avoid ether expenditure and would be decreased in due course of time.
• Transactions Mega Root: This value is the merkle root of all the transaction roots in the bunch. This is used by Smart Contract to verify that a transaction was sent on the chain.
• Receipts Mega Root: This value is the merkle root of all the receipt roots in the bunch. This is used to verify that the transaction execution was successful.
• Timestamp: This value is the time when the bunch proposal was submitted to the smart contract. After submission, there is a challenge period before it is finalised.

Converting ES-ERC20 to ERC-NA and BACK

On Ethereum Blockchain, the first class cryptocurrency is ETH and rest other tokens managed by smart contracts are second class. On ESN, there is an advancement to have Era Swaps as the first class cryptocurrency. This cryptocurrency will feature better user experience and to differentiate it from the classic ERC20 Era Swaps, it will be called as Era Swap Natives (ES-Na). According to the Era Swap Whitepaper, maximum 9.1 Million ES will exist which will be slowly released in circulation every month.
Era Swaps will exist as ES-ERC20 as well as in form of ES-Na. One of these can be exchanged for the other at 1:1 ratio.
Following is how user will convert ES-ERC20 to ES-Na:
  1. User will give allowance to a Deposit Smart Contract, and following that call deposit method to deposit tokens to the contract.
  2. On transaction confirmation, user will paste the transaction hash on a portal which will generate a Proof of Deposit string for the user. This string is generated by fetching all the transactions in the Ethereum Block and generating a Transaction Patricia Merkle Proof to prove that user’s transaction was indeed included in the block and the Receipts Patricia Merkle Proof to confirm that the user’s transaction was successful.
  3. Using the same portal, user will submit the generated proofs to a Smart Contract on ESN, which would release funds to user. Though, user will have to wait for the Etheruem block roots to be posted to ESN after waiting for confirmations which would take about 3 minutes. Once, it’s done user’s proofs will be accepted and will receive exact amount of ES- Na on ESN.
Following is how user will convert ES-Na to ES-ERC20:
  1. ES-Na being first class cryptocurrency, user will simply send ES-Na to a contract.
  2. User will paste the transaction hash on a portal which will generate a Proof of Deposit for the user. Again ES-Na being first class cryptocurrency, Transaction Patricia Merkle Proof is enough to prove that user’s transaction was indeed included in the block. Another thing which will be generated is the block inclusion proof in the bunch.
  3. User will have to wait for the bunch confirmation to the Plasma Smart Contract and once it’s done, user can send the proof to the Plasma Smart Contract to receive ES-ERC20.

HARD Exit

Since the blocks are produced and transactions are validated by few block producers, it exposes a possibility for fraud by controlling the block producer nodes. Because ESN is based on the Plasma Model, when failure of sidechain occurs or the chain halts, users can hard exit their funds directly from the Plasma Smart Contract on Ethereum by giving a Proof of Holdings.

HOld ES Tokens Swapping with New ES Tokens

The old ES Tokens will be valueless as those tokens will not be accepted in ESN because of NRT (New Released Tokens) and TimeAlly contracts on mainnet which is causing high gas to users, hence reducing interactions. Also, there was an event of theft of Era Swap Tokens and after consensus from majority of holders of Era Swap Tokens; it was decided to create a new contract to reverse the theft to secure the value of Era Swap Tokens of the community. Below is the strategy for swapping tokens:
TimeAlly and TSGAP: Majority of Era Swap Community have participated in TimeAlly Smart Contract in which their tokens are locked for certain period of time until which they cannot move them. Such holders will automatically receive TimeAlly staking of specific durations from the operator during initialization of ESN.
Liquid Tokens: Holders of Liquid Era Swap Tokens have to transfer the old tokens to a specified Ethereum wallet address managed by team. Following that, team will audit the token source of the holder (to eliminate exchange of stolen tokens) and send new tokens back to the wallet address.

Post-Genesis Tokens Return Program

Primary asset holding of Era Swap tokens will exist on Ethereum blockchain as an ERC20 compatible standard due to the highly decentralised nature of the blockchain. Similar to how users deposit tokens to an cryptocurrency exchange for trading and then withdraw the tokens back, users will deposit tokens to ESN Contract to enter Era Swap Ecosystem and they can withdraw it back from ESN Contract for exiting from ecosystem network. The design of the token system will be such that, it will be compatible with the future shift (modification or migration of ESN version 1) to ESN version 2, in which an entirely new blockchain setup might be required.
To manage liquidity, following genesis structure will be followed:

Holder ES-ERC20 ES-Na
Team Wallet 1.17 billion (Circulating Supply) 0
Locked in Smart Contract 7.93 billion (pending NRT releases) 9.1 billion
Though it looks like there are 9.1 * 2 = 18.2 Billion ES, but the cryptographic design secures that at any point in time at least a total of 9.1 billion ES (ES-ERC20 + ES-Na) will be locked. To unlock ES-Na on ESN, an equal amount of ES-ERC20 has to be locked on Ethereum and vice-versa.
9.1 billion ES-ERC20 will be issued by ERC20 smart contract on Ethereum Blockchain, out of which the entire circulating supply (including liquid and TimeAlly holdings) of old ES will be received to a team wallet.
TimeAlly holdings of all users will be converted to ES-Na and distributed on ESN TimeAlly Smart Contract by team to the TimeAlly holders on their same wallet address.
Liquid user holdings will be sent back to the users to the wallet address from which they send back old ES tokens (because some old ES are deposited on exchange wallet address).
ES-Na will be issued in the genesis block to an ESN Manager Smart Contract address. It will manage all the deposits and withdrawals as well as NRT releases.

Attack Vectors


Following are identified risks to be taken care of during the development of ESN:
Network Spamming: Attackers can purchase ES from the exchange and make a lot of transactions between two accounts. This is solved by involving gas fees. A setting of 200 nanoES minimum gas price will be set, which can be changed as per convenience.
DDoS: Attackers can query public nodes for computationally heavy output data. This will overload the public node with requests and genuine requests might get delayed. Block producers RPC is private, so they will continue to produce blocks. To manage user’s denial of service, the provider in dApps needs to be designed in such a way such that many public nodes will be queried simple information (let’s say latest block number) and the one which response quickly to user will be selected.
AWS is down: To minimize this issue due to cloud providers down, there will be enough nodes on multiple cloud providers to ensure at least one block producer is alive.
User deposit double spending: User deposits ES on Ethereum, gets ES-Na on ESN. Then the issue happens that there are re-org on ETH mainnet and the user’s transaction is reversed. Since ETH is not a fixed chain and as per PoW 51% attack can change the blocks. As Ethereum is now enough mature and by statistics forked blocks are at most of height 2. So it is safe to consider 15 confirmations.
Exit Game while smooth functioning: User starts a hard exit directly from Plasma Smart Contract on Ethereum, then spends his funds from the plasma chain too. To counter this, the exit game will be disabled, only when ESN halts, i.e. fails to submit block header within the time the exit game starts. This is because it is difficult to mark user’s funds as spent on ESN.
Vulnerability in Ecosystem Smart Contracts: Using traditional methods to deploy smart contracts results in a situation where if a bug is found later, it is not possible to change the code. Using a proxy construction for every ecosystem smart contract solves this problem, and changing a proxy can be given to a small committee in which 66% of votes are required, this is to prevent a malicious change of code due to compromising of a single account or similar scenario.
ChainID replay attacks: Using old and traditional ways to interact with dApps can cause loss to users, hence every dApp will be audited for the same.

Conclusion

Era Swap Network is an EVM-compatible sidechain attached to the Ethereum blockchain through Plasma Framework. This allows off-chain processing of Era Swap Ecosystem transactions and posting only the hash of the bunch to Ethereum. This greatly reduces the high network fee and confirmation time issues faced by the current Era Swap Ecosystem DApps deployed on Ethereum. Also, having a separate EVM-compatible blockchain tailored to Era Swap Ecosystem improves the user experience to a higher extent. Since by design, Plasma Framework makes the Era Swap Network as secure as the Ethereum Network, user's funds on the network would be secure as well.
We believe Era Swap Network will help scale dApps of Era Swap Ecosystem to onboard the increasing numbers of users.


Era Swap Ecosystem
Era Swap Ecosystem consist of multiple interlinked platforms which is powered by Era swap (ES) token, a decentralized utility token to be used on below utility platforms. Users can access the Platforms through Era Swap Life which is the Single Sign on (SSO) gateway to the one world of Era Swap Ecosystem.
Era Swap Life: https://eraswap.life/
TimeAlly DApp -> Decentralized Token Vesting: https://www.timeally.io/
BetDeEx -> Decentralized prediction platform: https://www.betdeex.com/
Swappers Wall -> Social Time Ledgerise: https://timeswappers.com/swapperswall
TimeSwappers -> Global P2P marketplace: https://timeswappers.com/
BuzCafe -> Connects local P2P outlets: https://buzcafe.com/
DaySwappers -> Unique Affiliate Program: https://dayswappers.com/
Era Swap Academy -> E-mart for skill development: https://eraswap.academy/
Value of Farmers (VOF) -> Farming ecosystem: http://valueoffarmers.org/ coming soon
ComputeEx -> P2P lending and borrowing: https://computeex.net/ coming soon
DateSwappers -> Next gen dating: coming soon
Smart Contract address

Era Swap Token (ES)
https://etherscan.io/address/0xef1344bdf80bef3ff4428d8becec3eea4a2cf574#code

Newly Released Token (NRT) https://etherscan.io/address/0x20ee679d73559e4c4b5e3b3042b61be723828d6c#code

TimeAlly DApp
https://etherscan.io/address/0x5630ee5f247bd6b61991fbb2f117bbeb45990876#code

BetDeEx DApp https://etherscan.io/address/0x42225682113E6Ed3616B36B4A72BbaE376041D7c#code
TSGAP DApp
https://etherscan.io/address/0xbad9af4db5401b7d5e8177a18c1d69c35fc03fd3#code

White Paper
Era Swap Whitepaper: https://eraswaptoken.io/pdf/eraswap_whitepaper.pdf
Era Swap Light Paper: https://eraswaptoken.io/pdf/eraswap_lightpaper.pdf

Howey Test
Howey Test: https://eraswaptoken.io/era-swap-howey-test-letter-august7-2018.php

Era Swap SOCIAL LINKS
Telegram: https://t.me/eraswap
Twitter: https://twitter.com/eraswaptec
Facebook: https://www.facebook.com/eraswap/
Instagram: https://www.instagram.com/eraswap/
BitcoinTalk: https://bitcointalk.org/index.php?topic=5025979.msg45502457
Youtube: https://www.youtube.com/channel/UCGCP4f5DF1W6sbCjS6y3T1g
LinkedIn: https://www.linkedin.com/company/eraswap/
Reddit: https://www.reddit.com/useEraSwap
Medium: https://medium.com/@eraswap
Tumblr: https://eraswap.tumblr.com/
Mix: https://mix.com/eraswap
Pinterest: https://www.pinterest.com/eraswapt/
GitHub: https://github.com/KMPARDS/EraSwapSmartContracts
submitted by EraSwap to u/EraSwap [link] [comments]

[DEVELOPMENT] Bitcoind IPV4 testnet port (18332) is failing to bind

[SOLVED] Thanks for everyone that have helped!


Hello everyone, this is a development problem that I'm currently having. Since the BTC Development sub is kind of inactive and I couldn't find any rule contraty to posting about BTC Development, I'll try my luck in here as I'm hopeless already. I've posted on BTC Stack Exchange but no answers also. Please, don't get me wrong, I'm trying to solve this problem for many days now, I've looked up everywhere for this.
I'm new to Bitcoin development and I'm currently having difficulties trying to make RPC calls from a Docker Container to a Bitcoin-Core daemon running in a SSH server. I suppose that the problem may be with Firewall or closed ports, but I also do not know much about Network settings.
I'm using nbobtc/bitcoind-php package to make the RPC calls with HTTP requests, and it is running in a Docker container. I'm sure the container is functional and is not the problem.
So here's what happening: when I run bitcoind in root user (but normal also won't work) in my SSH server, the IPV4 testnet port seems to be not opened. This message goes up when I run bitcoind:
Binding RPC on address 0.0.0.0 port 18332 failed.
Here's what my bitcoin.conf looks like (I want to use testnet in here). I'm using Bitcoin-Core "subversion": "Satoshi:0.17.1".
server=1 debug=net txindex=1 testnet=1 rpcuser=userb rpcpassword=test test.rpcport=18332 # I've already tried allowing the IP these 3 ways: # rpcallowip=192.168.xx.xx # My machine's IP # rpcallowip=172.19.x.x/xx # Docker's NBOBTC container IP # rpcallowip=0.0.0.0/0 # Allowing all IP datadir=/home/bitcoin-dev/.bitcoin debuglogfile=/home/bitcoin-dev/.bitcoin/debug.log 
Here's what appears in debug.log right after I run Bitcoind:
2019-05-06T14:43:10Z Bitcoin Core version v0.17.1 (release build) 2019-05-06T14:43:10Z InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1 2019-05-06T14:43:10Z Assuming ancestors of block 0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75 have valid signatures. 2019-05-06T14:43:10Z Setting nMinimumChainWork=00000000000000000000000000000000000000000000007dbe94253893cbd463 2019-05-06T14:43:10Z Using the 'sse4(1way),sse41(4way)' SHA256 implementation 2019-05-06T14:43:10Z Default data directory /root/.bitcoin 2019-05-06T14:43:10Z Using data directory /home/bitcoin-dev/.bitcoin/testnet3 2019-05-06T14:43:10Z Using config file /home/bitcoin-dev/.bitcoin/bitcoin.conf 2019-05-06T14:43:10Z Using at most 125 automatic connections (1024 file descriptors available) 2019-05-06T14:43:10Z Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements 2019-05-06T14:43:10Z Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements 2019-05-06T14:43:10Z Using 4 threads for script verification 2019-05-06T14:43:10Z scheduler thread start 2019-05-06T14:43:10Z Binding RPC on address 0.0.0.0 port 18332 failed. 2019-05-06T14:43:10Z HTTP: creating work queue of depth 16 2019-05-06T14:43:10Z Config options rpcuser and rpcpassword will soon be deprecated. Locally-run instances may remove rpcuser to use cookie-based auth, or may be replaced with rpcauth. Please see share/rpcauth for rpcauth auth generation. 2019-05-06T14:43:10Z HTTP: starting 4 worker threads 2019-05-06T14:43:10Z Using wallet directory /home/bitcoin-dev/.bitcoin/testnet3/wallets 2019-05-06T14:43:10Z init message: Verifying wallet(s)... 2019-05-06T14:43:10Z Using BerkeleyDB version Berkeley DB 4.8.30: (April 9, 2010) 2019-05-06T14:43:10Z Using wallet wallet.dat 2019-05-06T14:43:10Z BerkeleyEnvironment::Open: LogDir=/home/bitcoin-dev/.bitcoin/testnet3/wallets/database ErrorFile=/home/bitcoin-dev/.bitcoin/testnet3/wallets/db.log 2019-05-06T14:43:10Z net: setting try another outbound peer=false 2019-05-06T14:43:10Z Cache configuration: 2019-05-06T14:43:10Z * Using 2.0MiB for block index database 2019-05-06T14:43:10Z * Using 56.0MiB for transaction index database 2019-05-06T14:43:10Z * Using 8.0MiB for chain state database 2019-05-06T14:43:10Z * Using 384.0MiB for in-memory UTXO set (plus up to 286.1MiB of unused mempool space) 2019-05-06T14:43:10Z init message: Loading block index... 2019-05-06T14:43:10Z Opening LevelDB in /home/bitcoin-dev/.bitcoin/testnet3/blocks/index 2019-05-06T14:43:10Z Opened LevelDB successfully 2019-05-06T14:43:10Z Using obfuscation key for /home/bitcoin-dev/.bitcoin/testnet3/blocks/index: 0000000000000000 2019-05-06T14:43:19Z LoadBlockIndexDB: last block file = 161 2019-05-06T14:43:19Z LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=755, size=30875345, heights=1513309...1514061, time=2019-04-29...2019-05-03) 2019-05-06T14:43:19Z Checking all blk files are present... 2019-05-06T14:43:20Z Opening LevelDB in /home/bitcoin-dev/.bitcoin/testnet3/chainstate 2019-05-06T14:43:20Z Opened LevelDB successfully 2019-05-06T14:43:20Z Using obfuscation key for /home/bitcoin-dev/.bitcoin/testnet3/chainstate: 2686d59caeb1917c 2019-05-06T14:43:20Z Loaded best chain: hashBestChain=00000000b3b6a5db140b6058b7abe5cb00d8af61afd2a237ae3468cd36e387fa height=927391 date=2016-09-08T15:04:00Z progress=0.311180 2019-05-06T14:43:20Z init message: Rewinding blocks... 2019-05-06T14:43:29Z init message: Verifying blocks... 2019-05-06T14:43:29Z Verifying last 6 blocks at level 3 2019-05-06T14:43:29Z [0%]...[16%]...[33%]...[50%]...[66%]...[83%]...[99%]...[DONE]. 2019-05-06T14:43:29Z No coin database inconsistencies in last 6 blocks (500 transactions) 2019-05-06T14:43:29Z block index 19450ms 2019-05-06T14:43:29Z Opening LevelDB in /home/bitcoin-dev/.bitcoin/testnet3/indexes/txindex 2019-05-06T14:43:30Z Opened LevelDB successfully 2019-05-06T14:43:30Z Using obfuscation key for /home/bitcoin-dev/.bitcoin/testnet3/indexes/txindex: 0000000000000000 2019-05-06T14:43:30Z init message: Loading wallet... 2019-05-06T14:43:30Z txindex thread start 2019-05-06T14:43:30Z [default wallet] nFileVersion = 170100 2019-05-06T14:43:30Z [default wallet] Keys: 2005 plaintext, 0 encrypted, 2005 w/ metadata, 2005 total. Unknown wallet records: 1 2019-05-06T14:43:30Z Syncing txindex with block chain from height 694205 2019-05-06T14:43:30Z [default wallet] Wallet completed loading in 123ms 2019-05-06T14:43:30Z [default wallet] setKeyPool.size() = 2000 2019-05-06T14:43:30Z [default wallet] mapWallet.size() = 7 2019-05-06T14:43:30Z [default wallet] mapAddressBook.size() = 4 2019-05-06T14:43:30Z mapBlockIndex.size() = 1515581 2019-05-06T14:43:30Z nBestHeight = 927391 2019-05-06T14:43:30Z torcontrol thread start 2019-05-06T14:43:30Z Bound to [::]:18333 2019-05-06T14:43:30Z Bound to 0.0.0.0:18333 2019-05-06T14:43:30Z init message: Loading P2P addresses... 2019-05-06T14:43:30Z Loaded 10420 addresses from peers.dat 36ms 2019-05-06T14:43:30Z init message: Loading banlist... 2019-05-06T14:43:30Z Loaded 0 banned node ips/subnets from banlist.dat 29ms 2019-05-06T14:43:30Z init message: Starting network threads... 2019-05-06T14:43:30Z net thread start 2019-05-06T14:43:30Z dnsseed thread start 2019-05-06T14:43:30Z addcon thread start 2019-05-06T14:43:30Z msghand thread start 2019-05-06T14:43:30Z init message: Done loading 2019-05-06T14:43:30Z opencon thread start 
After all that appears above, there are just "UpdateTip", "Requesting block", "received block" and "getdata" messages. (so the P2P port, 18333, works).

And here is when I netstat:

sudo netstat -nap|grep bitcoin|grep LISTEN
tcp 0 0 0.0.0.0:18333 0.0.0.0:* LISTEN 31185/bitcoind tcp6 0 0 :::18332 :::* LISTEN 31185/bitcoind tcp6 0 0 :::18333 :::* LISTEN 31185/bitcoind 
Thank you in advance!

PS: A few days ago I could make it work when running bitcoind with root user, but now even that won't solve the problem.
submitted by VicPietro to Bitcoin [link] [comments]

How can I sign a message with a Litecoin address using PHP?

I am looking for something similar to https://github.com/BitcoinPHP/BitcoinECDSA.php/blob/mastesrc/BitcoinPHP/BitcoinECDSA/BitcoinECDSA.php, i.e. doing it independently on a PHP server without any need to make a JSON-RPC call.
submitted by ramboKick to litecoin [link] [comments]

Electroneum Fork 324500

Source: https://www.facebook.com/electroneum/posts/2030562537205714
Hi Everyone!
ALL ELECTRONEUM NODE OWNERS MUST UPDATE THEIR SOFTWARE BY BLOCK 324500 (approx. 36 hours from now – this is an URGENT UPDATE – PLEASE SHARE THIS INFORMATION)
We have an urgent software update below for anyone who runs a full Electroneum Node. If you don’t know what a node is , don’t worry! You won’t need to do anything.
We also have a VERY exciting update about an upcoming listing on a top 10 exchange.
How will I mine Electroneum after this update?
Instant Payment vendor API is open for BETA applicants.How can ETN change the world?
Please note that nothing in this message refers to MOBILE MINING – we are referring to the underlying blockchain miners.
Urgent Electroneum Node / RPC / Command Line Wallet Update
ALL ELECTRONEUM NODE OWNERS MUST UPDATE THEIR SOFTWARE BY BLOCK 324500 (approx. 36 hours from now – this is an URGENT UPDATE – PLEASE SHARE THIS INFORMATION)
https://github.com/electron…/electroneum/releases/…/v2.1.0.0
It’s only been a few short days since I made a video and said “our fork went well! We’re ready for 20m Users!”.
The fork was a great success, from a technical standpoint. Unfortunately, we never got back the number of GPU miners that are needed to ensure our network runs smoothly and has stable block emission. A new phenomenon has emerged where a number of users are mining Electroneum in waves. They come on and then leave after a few hours in a coordinated manner to mine ETN in a completely selfish way. We can’t blame people for maximizing their profit, but we have not built up the amount of “hashing power” that is required to make this impossible and create the stability we need in the network.
This has left us at risk. As such, we have to take urgent action to stabilise our network and protect the Electroneum community.
Coinbene Listing Electroneum & our network stability
We have formally agreed and signed contracts to be listed in July on the AWESOME, top 10, cryptocurrency exchange https://Coinbene.com & https://Coinbene.com.br
Coinbene have 1.5m active users and are a GREAT fit for Electroneum. Their primary markets are Latin America and Asia – which fits perfectly with Electroneum’s customer base. They have seen enormous growth over the last few months and have been very positive about the Electroneum Project.
Whilst this is great news, we will need much more hashing power to ensure we have network stability for our listing on this exchange, so we’ve taken the decision that we can’t wait any longer for GPU miners to return to us and we must run an urgent software update to re-introduce ASIC mining to Electroneum.
This is a very positive move for Electroneum. A great deal of Bitcoin’s trust and appeal is from the enormous hashing power and distribution of miners on the network. Bitcoin & LiteCoin have embraced ASICs and we feel that it is the right thing for Electroneum to do the same.
ASICS are becoming more prevalent, they cost considerably less to run than a GPU rig and use a fraction of the electricity. We are going to encourage more ASIC ownership and take our hashing rate up to (and beyond) the enormous levels of hashing power that we had before the May fork.
There is a further development. The first generation of hardware called an FPGA miner is arriving during 2018 and they make ANTI-ASIC capabilities a thing of the past, as they circumvent the slow delivery time of new ASICs by being re-programmable. If we are ready to embrace these rather than fight them, our network hashing power is increased further and our network stability and security is further enhanced.
Because ASICS run cooler, quieter and use a fraction of GPU rig power, they are suitable for MORE people to run in their homes. If you are interested, a search of “Cryptonight ASIC miner” in Google or Ebay will find the equipment needed to mine Electroneum. You will need to be reasonably technical to achieve this!
Having a stable network is absolutely key to both delivering mass adoption and to ensure we have a great relationship with the great exchanges that we’re already listed with, and to encourage more of the larger exchanges to see Electroneum as a coin that they want on board.
How will I mine Electroneum after this update?
If you are a mobile miner – nothing changes. If you are a GPU or ASIC miner then you’ll need to connect to an Electroneum pool but it is important to note that you will need to change your ALGORITHM. You MUST use the algorithm “Cryptonight” and NOT “Electroneum” or “CryptonightV7”. This will ensure your device works after the update. We will communicate this to all pools, but if you are a member of a mining pool – PLEASE LET THE ADMINS KNOW ABOUT THIS CRITICAL UPDATE. They must update their pool node by block 324500, which is only around 36 hours away.
Instant Payment vendor API is open for BETA applicants
Instant Cryptocurrency Payments via smart phone has always been a critical part of what Electroneum required to achieve mass market adoption. It’s never been done, but 9 short months after our ICO we are excited to announce that we have opened to the doors to vendors who would like to accept payment via Electroneum. The application is to be part of the BETA rollout of instant payment, but will operate on the live blockchain with real ETN!
If you run a business or know someone who does – why not recommend they apply to accept ETN. The Press and Marketing opportunities for the first, in any sector, to accept cryptocurrency are huge! Be part of the instant payment API BETA program by completing this form:
https://docs.google.com/…/1FAIpQLSfKTwWT7W4ltmApZO…/viewform
How can ETN change the world?
Instant payment does far more than allow people to pay for their coffee with crypto instead of their VISA card.
If you’d like to know more about Electroneum’s future I suggest you read a fantastic article that describes its coming role in the world, by fellow director Chris Gorman OBE (Officer of the British Empire – awarded by the Queen of England!): https://www.linkedin.com/…/how-cryptocurrency-enable-financ…
Electroneum has one of the largest of all cryptocurrency communities and it is made up of passionate and amazing people. With your support and world changing things we have coming out over the next few weeks, we can use this update to make our blockchain foundation secure and lead the world in mobile cryptocurrency.
I'm sure you agree that we've been through some challenging times which our team have always dealt with and learned from. The strength and support from our community and many of our goals becoming a reality combined with this blockchain update will give us the perfect foundation to deliver the Electroneum vision that we all share.
Thanks for taking the time to read this long message.
Have a great day everyone,
Richard Ells
Founder, Electroneum.com
submitted by MulatuTesh to Electroneum [link] [comments]

Looking for a bitcoin core RPC wallet GUI/manager

So I installed bitcoin core running on an ububtu server and got it caught up, and would like to connect to it and send/receive coin from its wallet. I understand that I could manage it with bitcoin-cli, but I am lazy and like to point and click.
Ideally: its a multi-os program that accepts RPC connection info and then manages features of the bitcoin core (bitcoind).
Bonus points: its a php scripts I can setup since I love web admin interfaces.
Side question: can I set up bitcoin-qt to manage a bitcoind instance over the network by RPC? This would also solve my original question.
Thanks
submitted by zmach1n3 to Bitcoin [link] [comments]

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

Intro

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

Instructions

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

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

CPU

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

Mobo

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

GPU

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

Part Explanations

CPU

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

Overclocking

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

Current Products

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

CPU and Mobo Compatibility

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

CPU Cooler (Air / Liquid)

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

Motherboard/mobo

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

Memory/RAM

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

Storage

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

Solid State Drives (SSDs)

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

Hard Disk Drives (HDDs)

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

Others

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

Overall

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

Video Card/GPU

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

New NVIDIA GeForce RTX Series

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

Case

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

Power Supply/PSU

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

Wattage

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

Modularity

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

80+ Efficiency Ratings

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

Warranties

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

Operating System (OS)

Windows 10

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

MacOS

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

Linux

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

Peripherals

Monitors

Keyboards and Mice

Overall

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

Sample Builds

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

Links

Helpful links to common problems below:

Contributors

Thanks to:

Housekeeping

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

Programming Bitcoin-qt using the RPC api (1 of 6) Get Bitcoin Exchange Rates using PHP API - YouTube Using EOS with JavaScript RPC Calls Bitcoin RPC Remote Code Execution Exploit for BitcoinCore 0.9-0.15.1 CVE-2017-9230 Bitcoin JSON-RPC Tutorial 3 - bitcoin.conf

Introduction. In this tutorial, we will be looking at accessing or integrating Bitcoin into applications using php. PHP is a popular general-purpose scripting language that is especially suited to web development. Example bitcoin.conf. The bitcoin.conf file allows customization for your node. Create a new file in a text-editor and save it as bitcoin.conf in your /bitcoin directory.. Location of your /bitcoin directory depends on your operation system.. Windows XP C:\Documents and Settings\<username>\Application Data\Bitcoin Windows Vista, 7, 10 C:\Users\<username>\AppData\Roaming\Bitcoin By its developers; bcoin-cli rpc - adds functionality that mimics Bitcoin Core RPC RPC Calls - Mining.Cannot use curl to send JSON-RPC commands Jan 5, 2016 - 401 Unauthorized when connecting via JSON-RPC. Bitcoin </ groupId > < artifactId > JavaBitcoindRpcClient </ artifactId > < version > 0.9 . Bitcoin JSON RPC: 3 best bitcoin app SDK for iOS and Android with samples I have my file where IStart strings are hardcoded constants that appear at the bitcoind json rpc php start of all messages sent on the Bitcoin network; they bitcoin the game ketchapp may also appear in data files such as Bitcoin Core’s block database. Accounts explained • API calls list • API reference (JSON-RPC) • Block chain download • Dump format • getblocktemplate • List of address prefixes • Protocol documentation • Script • Technical background of version 1 Bitcoin addresses • Testnet • Transaction Malleability • Wallet import format

[index] [7486] [8027] [17025] [15229] [18749] [24247] [20851] [9991] [1187] [21654]

Programming Bitcoin-qt using the RPC api (1 of 6)

How to use Block.IO API with PHP by m1xolyd1an. ... Bitcoin JSON-RPC Tutorial 5 - Your First Calls by m1xolyd1an. 10:06. Bitcoin JSON-RPC Tutorial 6 - JSON Parameters and Errors by m1xolyd1an. Using EOS with JavaScript RPC Calls CodingWithCrypto. Loading... Unsubscribe from CodingWithCrypto? ... Bitcoin JSON-RPC Tutorial 5 - Your First Calls - Duration: 10:06. Bitcoin JSON-RPC Tutorial 5 - Your First Calls - Duration: 10:06. m1xolyd1an 11,838 views. ... How to run Bitcoin-qt as a server with a configuration file (3 of 6) - Duration: 5:48. Bitcoin JSON-RPC tutorial. Set up your bitcoin.conf file and create custom settings with bitcoind. BTC: 1NPrfWgJfkANmd1jt88A141PjhiarT8d9U. 0day RPC Remote Exploit for bitcoin core Versions 0.9 - 0.15 Affects all bitcoin clients/daemons forked from bitcoin. ... RPC Vs Simple Procedure Call - Georgia Tech - Advanced Operating Systems ...

#