Newest 'nonce' Questions - Bitcoin Stack Exchange

RESEARCH REPORT ABOUT ARYACOIN

RESEARCH REPORT ABOUT ARYACOIN
Author: Gamals Ahmed, CoinEx Business Ambassador

https://preview.redd.it/a7jv4azk86u51.jpg?width=1600&format=pjpg&auto=webp&s=e4a4dbb5afacd5747076beaa59e6343b805c3392

ABSTRACT

Aryacoin is a new cryptocurrency, which allows for decentralized, peer to peer transactions of electronic cash. It is like Bitcoin and Litecoin, but the trading of the coin occurs on sales platforms that have no restriction to use. Further, it was created with the goal of addressing the double spend issues of Bitcoin and does so using a timestamp server to verify transactions. It works by taking the hash of a block of items to be timestamped and widely publishing the hash. The timestamp proves that the data must have existed at the time in order to get the hash. Each timestamp then includes the previous timestamp in its hash, forming a chain.
The Aryacoin team is continuously developing new use cases for the coin, including exchanges where users can exchange the coins without any fees or restrictions, and offline options where the coins can be bought and sold for cash. The coins can also be used on the company’s other platform, mrdigicoin.io. Along with the coin, there is a digital wallet that can be created and controlled by the user entirely, with no control being retained by the Aryacoin team.

1.INTRODUCTION

The concept of Blockchain first came to fame in October 2008, as part of a proposal for Bitcoin, with the aim to create P2P money without banks. Bitcoin introduced a novel solution to the age-old human problem of trust. The underlying blockchain technology allows us to trust the outputs of the system without trusting any actor within it. People and institutions who do not know or trust each other, reside in different countries, are subject to different jurisdictions, and who have no legally binding agreements with each other, can now interact over the Internet without the need for trusted third parties like banks, Internet platforms, or other types of clearing institutions.
When bitcoin was launched it was revolutionary allowing people to transfer money to anytime and anywhere with very low transaction fees . It was decentralized and their is no third party involved in the transaction , only the sender and receiver were involved.
This paper provide a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions.The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. Bitcoin was made so that it would not be controlled or regulated but now exchanges and governments are regulating bitcoin and other cryptocurrencies at every step. Aryacoin was developed to overcome these restrictions on a free currency.
Aryacoin is a new age cryptocurrency, which withholds the original principle on which the concept of cryptocurrency was established. Combining the best in blockchain technology since the time of its creation, Aryacoin strives to deliver the highest trading and mining standards for its community.

1.1 OVERVIEW ABOUT ARYACOIN

Aryacoin is a new age cryptocurrency, which withholds the original principle on which the concept of cryptocurrency was established. Combining the best in blockchain technology since the time of its creation, Aryacoin strives to deliver the highest trading and mining standards for its community.
Aryacoin is a blockchain based project that allows users to access their wallet on the web and mobile browsers, using their login details.
Aryacoin can be mined; it also can be exchanged by other digital currencies in several world-famous exchanges such as Hitbtc, CoinEx, P2pb2b, WhiteBit, Changelly and is also listed in reputable wallets such as Coinomi and Guarda.
Aryacoin is a coin, which can be used by anyone looking to use cryptocurrency which allows them to keep their privacy even when buying/selling the coin along with while using the coin during transactions. Proof of work and cryptographic hashes allows transactions to verified.
Stable Fee Per AYA is a unique feature of Aryacoin, so by increasing the amount or volume of the transaction, there is no change in the fee within the network, which means that the fee for sending an amount less than 1 AYA is equal to several hundred million AYA. Another unique feature of Aryacoin is the undetectability of transactions in Explorer, such as the DASH and Monero, of course, this operation is unique to Aryacoin.
Using Aryacoin digital currency, like other currencies, international transactions can be done very quickly and there are no limitations in this area as the creators claim.
Aryacoin aims to allow users to access the Aryacoin wallet via the web and mobile browsers using their login details.
Aryacoin is a peer-to-peer electronic cash system that enables users to send and receive payments directly from one party to another, and allow them to transfer funds across borders with no restriction or third party involvement. The blockchain-based system embraces the digital signature, which prevents double spending and low transfer fees, which enables users to transfer huge amounts with very low fees. The proof-of-work consensus mechanism allows each transaction to be verified and confirmed, while anonymity enables users to use the coin anywhere at any time.
According to the website of the operation, each wallet is divided into 2 or more AYA wallet addresses for each transaction, and depending on the volume of the transaction block, the origin, and destination of transactions in the network can not be traced and displayed to the public.
In fact, each wallet in Aryacoin consists of a total of several wallets. The number of these wallets increases per transaction to increase both security and privacy. Aryacoin also uses the dPoW protocol. In the dPoW protocol, a second layer is added to the network to verify transactions, which makes “51% attack” impossible even with more than half of the network hash, and blocks whose Blockchain uses this second layer of security never run the risk of 51% attacks.
AYA has been listed on a number of crypto exchanges, unlike other main cryptocurrencies, it cannot be directly purchased with fiats money. However, You can still easily buy this coin by
first buying Bitcoin from any large exchanges and then transfer to the exchange that offers to trade this coin.

1.1.1 ARYACOIN HISTORY

Aryacoin (AYA) is a new cryptocurrency, which has been created by a group of Iranian developers, is an altcoin which allows for decentralised, peer to peer transactions of electronic cash without any fees whatsoever. Along with the coin, there is a digital wallet that can be created and managed by the user entirely, with no control being retained by the Aryacoin team.
Aryacoin’s founder, Kiumars Parsa, has been a fan of alternative currencies and particularly Bitcoin.
We see people from all around the world using Blockchain technology and the great benefits that came with it and it then that I decided to solve this puzzle for find a way of bringing the last missing piece to the jigsaw. The idea for Aryacoin was born.” Parsa said.
Parsa and his team of Iranian ex-pats not only persevered but expedited the project and just a year later, in the summer of 2019, the first version of Aryacoin was released. In 2020, Aryacoin is the first and only Iranian coin listed on CMC.
Parsa goes on to state that it is now the strength of the community that has invested in the coin that will ultimately drive its success, alongside its robust technology and appealing 0% network fees.
We have thousands of voices behind Aryacoin. People for the people make this coin. It is a massive shout out for democracy. This had made us base the whole team strategy on the benefits for both our users and our traders.
One key example is that the network fee on AYA Blockchain is 0%. Yes, absolutely nothing, which which differentiates us from other networks. What also differentiates us from other coins is that we have AYAPAY which is the first cryptocurrency Gateway in the world which does not save funds on third party storage with all funds being forwarded directly to any wallet address that the Gateway owner requests”.
So for the first time ever, and unlike other gateways, incoming funds will be saved on the users account with submitted withdrawal requests then made on the Gateway host website. In AYAPAY which has also been developed by the Aryacoin team, all funds without extra fees or extra costs will directly forwarded to users wallets. We have named this technology as CloudWithdrawal.
We are continuously challenging ourselves as it is a crowded marketplace. We are striving to have a safer Blockchain against 51% attacks, faster confirmations speeds of transactions, cheaper network fee, growing the market by cooperation with Top tier Exchangers.

1.1.2 ARYACOIN’S MAIN GOAL

Aryacoin’s main goal is to educate people and give them the freedom to use cryptocurrency in any way they want. Aryacoin empowers the users to transfer, pay, trade cryptocurrency from any country around the globe.
Platforms that have been created by Aryacoin Team, as well as those that will go live in future, operate on the same principle and exclude absolutely no one.

1.1.3 PROBLEM ARYACOIN SEEKS TO SOLVE

Aryacoin aims to provide a long-term solution to the problem of double spending, which is still common in the crypto market. The developers of the system have created a peer-to-peer distributed timestamp server that generates computational proof of the transactions as they occur.
Besides, the system remains secure provided honest nodes control more CPU power than any cooperating group of attacker nodes. While Bitcoin was designed not to be regulated or controlled, many exchanges and governments have put regulatory measures on the pioneer cryptocurrency at every step. Aryacoin aims to overcome these restrictions as a free digital currency.

1.1.4 BENEFITS OF USING ARYACOIN

Aryacoin solution offers the following benefits:
  • Real-time update: whether you’re going on a holiday or a business trip, no problem. You can access your coins all over the world.
  • Instant operations: Aryacoin makes it quite easy for you to use your digital wallet and perform various operations with it.
  • Safe and secure: all your data is stored encrypted and can only be decrypted with your private key, seed, or password.
  • Strong security: The system has no control over your wallet. You are 100% in charge of your wallet and funds.

1.1.5 ARYACOIN FEATURES

1. Anonymity
The coin provides decent level of anonymity for all its users. The users can send their transactions to any of the public nodes to be broadcasted , the transaction sent to the nodes should be signed by the private key of the sender address . This allows the users to use the coin anywhere any time , sending transactions directly to the node allows users from any place and country .
2. Real Life Usage
aryacoin’s team is continuously developing new and innovative ways to use the coins , they are currently developing exchanges where the users can exchange the coins without any fees and any restrictions . They also are currently developing other innovative technologies, which would allow users to spend our coins everywhere and anywhere.
3. Offline Exchanges
They are also working with different offline vendors which would enable them to buy and sell the coins directly to our users on a fixed/variable price this would allow easy buy/sell directly using cash . This would allow the coins to be accessible to users without any restrictions which most of the online exchanges have, also increase the value and number of users along with new ways to spend the coin. This would increase anonymity level of the
coin. In addition, introduce new users into the cryptomarket and technology. Creating a revolution, which educates people about crypto and introduce them to the crypto world, which introduces a completely new group of people into crypto and a move towards a Decentralized future!
4. Transactions
When it comes to transactions, Aryacoin embraces a chain of digital signatures, where each owner simply transfers the coin to the next person by digitally signing a hash of the previous transaction and the public key of the next owner. The recipient can then verify the signatures to confirm the chain of ownership. Importantly, Aryacoin comes with a trusted central authority that checks every transaction for double spending.
5. Business Partner with Simplex
Aryacoin is the first and only Iranian digital currency that managed to obtain a trading license in other countries.
In collaboration with the foundation and financial giant Simplex, a major cryptocurrency company that has large companies such as Binance, P2P, Changelly, etc. Aryacoin has been licensed to enter the world’s major exchanges, as well as the possibility of purchasing AYA through Credit Cards, which will begin in the second half of 2020.
Also, the possibility of purchasing Aryacoin through Visa and MasterCard credit cards will be activated simultaneously inside the Aryacoin site. plus, in less than a year, AYA will be placed next to big names such as CoinCapMarket, Coinomi, P2P, Coinpayments and many other world-class brands today.

1.1.6 WHY CHOOSE ARYACOIN?

If you want to use a cryptocurrency that allows you to keep your privacy online even when buying and selling the coins, the Aryacoin team claims that AYA is the way to go. Aryacoin is putting in the work: with more ways to buy and sell, and fixing the issues that were present in the original Bitcoin, plus pushing the boundaries with innovative solutions in cryptocurrencies. You can get started using Aryacoin (AYA) payments simply by having a CoinPayments account!

1.1.7 ARYANA CENTRALIZED EXCHANGE

Aryana, the first Iranian exchange is a unique platform with the following features:
  • The first real international Persian exchange that obtains international licenses and is listed in CoinMarketCap.
  • The first Iranian exchange that has been cooperating with a legal and European exchange for 3 years.
  • The possibility of trading in Tomans (available currency in Iran) at the user’s desired price and getting rid of the transaction prices imposed by domestic sites inside Iran.
  • There is an internal fee payment plan by Iranian domestic banks for depositing and withdrawing Tomans for Aryacoin holders in Aryana Exchange.
  • The number that you see on the monitor and in your account will be equal to the number that is transferred to your bank account without a difference of one Rial.
  • The last but not least, noting the fact that there is a trading in Tomans possibility in Aryana exchange.
Aryana Exchange is using the most powerful, fastest, and most expensive server in the world, Google Cloud Platform (GCP), which is currently the highest quality server for an Iranian site, so that professional traders do not lag behind the market even for a second.
The feature of Smart Trading Robots is one of the most powerful features for digital currency traders. Digital cryptocurrency traders are well aware of how much they will benefit from smart trading robots. In the Aryana exchange, it is possible to connect exchange user accounts to intelligent trading bots and trade even when they are offline.
The injection of $ 1 million a day in liquidity by the WhiteBite exchange to maintain and support the price of Tether and eliminate the Tether fluctuations with Bitcoin instabilities used by profiteers to become a matter of course.

1.1.8 HOW DOES ARYACOIN WORK?

Aryacoin (AYA) tries to ensure a high level of security and privacy. The team has made sure to eliminate any trading restrictions for the network users: no verification is required to carry out transactions on AYA, making the project truly anonymous, decentralized, and giving it a real use in day-to-day life. The Delayed-Proof-of-Work (dPoW) algorithm makes the Aryacoin blockchain immune to any attempts of a 51% attack. AYA defines a coin as a chain of digital signatures — each owner transfers the coin to the next owner by digitally signing the hash of the previous transaction and the public key of the next owner, and the receiver verifies the signatures and the chain of ownership.

2. ARYACOIN TECHNOLOGY

2.1 PROOF-OF-WORK

They use a proof-of-work system similar to Adam Back’s Hashcash to implement a distributed timestamp server on a peer-to-peer basis, rather than newspaper or Usenet publications. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash.
For their timestamp network, they implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block’s hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it.
The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If honest nodes control a majority of CPU power, the honest chain will grow the fastest and outpace any competing chains. To modify a past
block, an attacker would have to redo the proof-of-work of the block and all blocks after it, then catch up with, and surpass the work of the honest nodes.

2.2 NETWORK

The steps to run the network are as follows:
  • New transactions are broadcast to all nodes.
  • Each node collects new transactions into a block.
  • Each node works on finding a difficult proof-of-work for its block.
  • When a node finds a proof-of-work, it broadcasts the block to all nodes.
  • Nodes accept the block only if all transactions in it are valid and not already spent.
This is a very simple system that makes the network fast and scalable, while also providing a decent level of anonymity for all users. Users can send their transactions to any of the public nodes to be broadcast, and the private key of the sender’s address should sign any transaction sent to the nodes. This way, all transaction info remains strictly confidential. It also allows users to send transactions directly to the node from any place at any time and allows the transferring of huge amounts with very low fees.

2.3 AYAPAY PAYMENT SERVICES GATEWAY:

According to creators Aryacoin, the development team has succeeded in inventing a new blockchain technology for the first time in the world, which is undoubtedly a big step and great news for all digital currency enthusiasts around the world.
This new technology has been implemented on the Aryacoin AYAPAY platform and was unveiled on October 2. AYAPAY payment platform is the only payment gateway in the world that does not save money in users’ accounts and transfers incoming coins directly to any wallet address requested by the gateway owner without any additional transaction or fee.
In other similar systems or even systems such as PayPal, money is stored in the user account.

2.4 CONSENSUS ALGORITHM IN ARYACOIN

The devs introduced the Delayed-Proof-of-Work (dPoW) algorithm, which represents a hybrid consensus method that allows one blockchain to take advantage of the security provided by the hashing power of another blockchain. The AYA blockchain works on dPoW and can use such consensus methods as Proof-of-Work (PoW) or Proof-of-Stake (PoS) and join to any desired PoW blockchain. The main purpose of this is to allow the blockchain to continue operating without notary nodes on the basis of its original consensus method. In this situation, additional security will no longer be provided through the attached blockchain, but this is not a particularly significant problem. dPoW can improve the security level and reduce energy consumption for any blockchain.

2.5 DOUBLE-SPEND PROBLEM AND SOLUTION

One of the main problems in the blockchain world is that a receiver is unable to verify whether or not one of the senders did not double-spend. Aryacoin provides the solution, and has established a trusted central authority, or mint, that checks every transaction for double-spending. Only the mint can issue a new coin and all the coins issued directly from the mint are trusted and cannot be double-spent. However, such a system cannot therefore
be fully decentralized because it depends on the company running the mint, similar to a bank. Aryacoin implements a scheme where the receiver knows that the previous owners did not sign any earlier transactions. The mint is aware of all transactions including which of them arrived first. The developers used an interesting solution called the Timestamp Server, which works by taking a hash of a block of items to be ‘timestamped’ and publishing the hash. Each timestamp includes the previous timestamp in its hash, forming a chain. To modify a block, an attacker would have to redo the proof-of-work of all previous blocks, then catch up with, and surpass the work of the honest nodes. This is almost impossible, and makes the network processes more secure. The proof-of-work difficulty varies according to circumstances. Such an approach ensures reliability and high throughput.

3. ARYACOIN ROADMAP

April 2019: The launch of Aryacoin; AYA ICO, resulting in over 30BTC collected
December 2019: The launch of AYA Pay
April 2020: The successful Hamedan Hardfork, supported by all AYA exchanges, aimed at integrating the dPoW algorithm, improving the security of the AYA blockchain.
June 2020: Aryana Exchange goes live, opening more trading opportunities globally
July 2020: The enabling of our Coin Exchanger
November 2020: The implementation of Smart Contracts into the Aryacoin Ecosystem
Q1 2021: Alef B goes live (more details coming soon)

4. THE NUCYBER NETWORK COMMUNITY & SOCIAL

Website: https://aryacoin.io/
Explorer: https://explorer.aryacoin.io/
Github: https://github.com/Aryacoin/Aryacoin
Twitter: 1.1k followers https://twitter.com/AryacoinAYA
Reddit: 442 members https://github.com/nucypher
Instagram: 3.8k followers https://www.instagram.com/mrdigicoin/ Telegram: 5.9k subscribers https://t.me/AYA_Global

5. SUMMARY

Aryacoin (AYA) is a new age cryptocurrency that combines the best of the blockchain technology and strives to deliver high trading and mining standards, enabling users to make peer-to-peer decentralized transactions of electronic cash. Aryacoin is part of an ecosystem that includes payment gateway Ayapay and the Ayabank. AYA has a partnership with the Microsoft Azure cloud platform, which provides the ability to develop applications and store data on servers located in distributed data centers. The network fee for the AYA Blockchain is 0%. In Ayapay service, which has been developed by the Aryacoin team, all funds without extra fees or costs are directly forwarded to users’ wallets with technology called CloudWithdrawal. The devs team is introducing new use cases including exchanges where users will exchange AYA without any restrictions. You can buy AYA on an exchange of your choice, create an Aryacoin wallet, and store it in Guarda.

6. REFERENCES

1) https://coincodex.com/crypto/aryacoin/
2) https://www.icosandstos.com/coin/Aryacoin%20AYA/YuXO60UPF3
3) https://www.publish0x.com/iran-and-cryptocurrency/a-brief-introduction-of-aryacoin-first-ever-iranian-cryptocu-xoldlom
4) https://techround.co.uk/cryptocurrency/aryacoin-the-digital-currency-created-by-iranians/
5) https://bitcoinexchangeguide.com/aryacoin/
6) https://blog.coinpayments.net/coin-spotlight/aryacoin
7) https://guarda.com/aryacoin-wallet
submitted by CoinEx_Institution to Coinex [link] [comments]

Upcoming Updates to Bitcoin Consensus

Price and Libra posts are shit boring, so let's focus on a technical topic for a change.
Let me start by presenting a few of the upcoming Bitcoin consensus changes.
(as these are consensus changes and not P2P changes it does not include erlay or dandelion)
Let's hope the community strongly supports these upcoming updates!

Schnorr

The sexy new signing algo.

Advantages

Disadvantages

MuSig

A provably-secure way for a group of n participants to form an aggregate pubkey and signature. Creating their group pubkey does not require their coordination other than getting individual pubkeys from each participant, but creating their signature does require all participants to be online near-simultaneously.

Advantages

Disadvantages

Taproot

Hiding a Bitcoin SCRIPT inside a pubkey, letting you sign with the pubkey without revealing the SCRIPT, or reveal the SCRIPT without signing with the pubkey.

Advantages

Disadvantages

MAST

Encode each possible branch of a Bitcoin contract separately, and only require revelation of the exact branch taken, without revealing any of the other branches. One of the Taproot script versions will be used to denote a MAST construction. If the contract has only one branch then MAST does not add more overhead.

Advantages

Disadvantages

submitted by almkglor to Bitcoin [link] [comments]

Over the last 6 weeks I've written a functioning Crypto trading bot in VB.NET and here are some of the important tips & things I've learned and some VB.NET code for you to use.

I started on December 18th when I was playing about with Google Sheets and pulling prices from exchanges using the CRYPTOFINANCE() plugin... it was slow, clunky and the data was wildly old - I knew I could do something better in VB.NET but at this point had absolutely no idea where to start, no idea about trading, no idea how exchanges or API's worked and no idea just how bad I was at programming. I've asked a lot of dumb questions, I've lost a bunch of money making mistakes & learning as I go... Fast forward to today however and I have a fully functioning, cross-exchange trading bot. Sweet!
1) Truncate your numbers, don't round.**
Hindsight makes this seem so obvious to me now, but when you're working with Bitcoin balances to 8 decimal places, exchange rates to 5 decimal places and sums that can increase your decimal places exponentially, it helps to be precise. Even an extra 0.00000001 in the wrong place can cause an exchange to reject your request. Honestly if I'd have realised this sooner I'd be about 2 weeks ahead right now and nowhere near as bald.
The below functions in will truncate any decimal number with no rounding:
Public Function Trunc8(numbertoTuncate As Decimal) As Decimal Return Math.Truncate(numbertoTuncate * 100000000) / 100000000 End Function Public Function Trunc5(numbertoTuncate As Decimal) As Decimal Return Math.Truncate(numbertoTuncate * 100000) / 100000 End Function 
** Absolutely do round when exchange such as Bitstamp does it's fee calculations in spot USD price. Below is the logic I use to do this:
Dim amount_btc As Decimal = BTCtoSpend / ASK ' Full amount in BTC Dim fee_btc As Decimal = amount_btc * 0.0025 ' Get 0.25% of the BTC amount Dim fee_USD As Decimal = fee_btc * BitstampBTCUSD ' Convert to USD Dim round_USD As Decimal = Math.Round(fee_USD, 2, MidpointRounding.AwayFromZero) ' Round up Dim round_BTC As Decimal = round_USD / BitstampBTCUSD ' Convert back to BTC Dim amount = amount_btc - round_BTC ' minus the fee 
2) Websockets are your friend.
It's really easy to query Bitstamp or GDAX's API for the prices(Last/Bid/Ask). The query might take a 3rd of a second to get there, a 3rd of a second to get back - by the time your software has interpreted it it may have been nearly a full second. The prices you end up being sent back can some times be stale/out of date. Couple this with the API rate limits (Once a second on Bitstamp if you end up polling it continuously) and you can soon end up with stale information. The websockets allow the exchanges to push information to you, in real-time, as it happens. Seriously, they're fucking rad and you can query that data til the cows come home. Millisecond timers FTW!
Bitstamp uses Pusher, GDAX is a plain old web socket. It took me an age to figure it out, and honestly I've done it rather arse-about-tit, but here's the code I ended up using:
Bitstamp:(You'll need PusherClient from Nuget)
Imports PusherClient Imports Newtonsoft.Json.Linq Public WithEvents pusherClient As New Pusher("de504dc5763aeef9ff52") Public WithEvents BitstampLTCBTCOrderbook As Channel Public WithEvents BitstampLTCBTCTrades As Channel Public WithEvents BitstampBTCUSDTrades As Channel Public WithEvents BitstampEURUSDTrades As Channel pusherClient.Connect() Public Sub pusher_Connected() Handles pusherClient.Connected BitstampLTCBTCTrades = pusherClient.Subscribe("live_trades_ltcbtc") End Sub Public Sub BitstampLTCBTCTrades_Subscribed(Sender As Object) Handles BitstampLTCBTCTrades.Subscribed BitstampLTCBTCTrades.Bind("trade", AddressOf BitstampLTCBTCTrade) End Sub Public Sub BitstampLTCBTCTrade(data) Dim jss = JObject.Parse(data.ToString) BitstampPrice = CDec(jss("price_str").ToString) BitstampLastAmount = CDec(jss("amount_str").ToString) End Sub 
That's basically it - the different channels are all documented in the API and you can format the JSON til your little crypto heart's content.
GDAX:(You'll need Websocket4NET from Nuget) P.S. I know my sending raw JSON is a fucking abomination.
Imports WebSocket4Net Imports Newtonsoft.Json.Linq Public WithEvents websocketGDAX As WebSocket websocketGDAX = New WebSocket("wss://ws-feed.gdax.com") websocketGDAX.Open() Public Sub gdax_Connect() Handles websocketGDAX.Opened Dim Data As String = "{ ""type"": ""subscribe"", ""product_ids"":[""BTC-EUR""], ""channels"": [""heartbeat"", { ""name"": ""ticker"", ""product_ids"": [""LTC-BTC""] }]}" websocketGDAX.Send(Data) End Sub Public Sub gdax_Data(sender As Object, args As WebSocket4Net.MessageReceivedEventArgs) Handles websocketGDAX.MessageReceived Dim jss = JObject.Parse(args.Message) Try If jss("type").ToString = "ticker" Then Select Case jss("product_id") Case "LTC-BTC" GDAXPrice = CDec(jss("price")) GDAXBid = CDec(jss("best_bid")) GDAXAsk = CDec(jss("best_ask")) GDAXLastSize = CDec(jss("last_size")) Case "EUR-USD" GDAXEURUSD = CDec(jss("price")) Case "BTC-USD" End Select End If Catch ex As Exception Exit Sub End Try End Sub 
Again, that's kind of it. Some proper error handling wouldn't go amiss, but I'm lazy and I use GOTO's all over the shop anyway so I'm basically a terrible human being.
3) Hashing. Fucking Hashing.
Ok so basically when sending authenticated/private API calls you need to hash bits of the message in order to prove authenticity. This was a bitch to try and cobble together the right code. Here, have it. It's yours:
Imports System.Security.Cryptography Imports System.Text Module Hashing Public Function HMACSHA256_Encrypt(ByVal message As String, secret As String) As String Try Dim secretkey As String = secret Dim sha As New System.Security.Cryptography.HMACSHA256(System.Text.ASCIIEncoding.ASCII.GetBytes(secretkey)) Dim Hash() As Byte = sha.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(message)) Dim sb As New StringBuilder(Hash.Length * 2) For Each B As Byte In Hash sb.Append(Hex(B).PadLeft(2, "0")) Next Return sb.ToString.ToUpper Catch ex As Exception Debug.Print(Date.Now & " SHA256_Encrypt error " & ex.Message) Return Nothing End Try End Function Public Function HashString(ByVal str As String, ByVal secret As Byte()) As String Dim bytes As Byte() = Encoding.UTF8.GetBytes(str) Using hmac = New HMACSHA256(secret) Dim hash As Byte() = hmac.ComputeHash(bytes) Return Convert.ToBase64String(hash) End Using End Function End Module 
Top one for Bitstamp, Bottom one for GDAX. They differ slightly in the way they do things and the output they provide, hence there being two. Don't ask me what they do, couldn't tell you. Not a clue.
4) Verbose logging. Verbose logging. Verbose logging.
So you've made your bot, hit the button and....nothing. Now these things don't happen instantly; Even if you place an order at Ask or Bid, it might be minutes, even hours until it gets filled. Maybe your bot keeps erroring out and you don't know why. Write yourself a little logging function that you can copy and paste into your functions & subs that outputs the data you're sending and the data you're receiving along with a timestamp so you can debug if stuff isn't working. Again, I'm lazy and shit and this took me way longer to realise than it should have.
5) Don't be afraid to ask questions.
One of the biggest things that totally blew my mind was just how closed up some people are; on Reddit, forums, discord rooms... you name it. There's this weird stigma about people who trade & write bots that if they share their knowlege they'll somehow be doing themselves out of returns. Don't be afraid to ask questions. Ask enough, and eventually someone will come along and help. For every 10 people who chastised me for asking for coding help, trading help or whatever, 1 person would help out - it's worth enduring the rough for that... also, fuck those 10 people.
6) God damn Nonce generation.
A nonce is basically a unique, yet increasing number. Again, this was all massive trial and error. Bitstamp nonces and GDAX nonces work slightly differently and are interpreted slightly differently. Here's the code I use:
Module Nonces Public Function GenerateStampNonce() As String Static lastnonce As String Dim newNonce As String = Replace(Math.Round((DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds / 1000, 1).ToString("#0.0"), ".", "") Do While lastnonce = newNonce Threading.Thread.Sleep(10) newNonce = Replace(Math.Round((DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds / 1000, 1).ToString("#0.0"), ".", "") Loop lastnonce = newNonce Return newNonce End Function Public Function GenerateGDAXNonce() As Decimal Static lastnonce As Decimal Dim newNonce As Decimal = (DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds / 1000 Do While lastnonce = newNonce Threading.Thread.Sleep(10) newNonce = (DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds / 1000 Loop lastnonce = newNonce Return newNonce End Function End Module 
It's dirty...I know (I like it that way) - however it just simply works. I'm sure there's a more elegant way of generating these but honestly I ran out of patience on this because it's so simple when you look at it once it works.
7) Don't bog yourself down with a GUI.
Seems kind of daft, but running a bot as a console app forced me not only to be more verbose, but also helped really train my though process in terms of what all the timers in the background are doing. Not to mention, if you're anything like me you'll probably end up bogging it right down with all kinds of unnecessary GUI crap... in fact my first bot that was a total failure had more code to make the GUI whistle and pop than it did quality trading code.
You need so little input for a trading bot besides a config file full of preferences that your only real commands for any kind of interaction are quite simply:
 Console.WriteLine() Console.ReadKey() 
7.5) Limit orders on GDAX - FREE! As in... no fees!
Some people act like this is some kind of trade secret (haha, puns) but if you put a limit order on GDAX you almost always pay absolutely no fees. If you want to GUARANTEE you pay no fees, have your order set to post_only=true. This forces the order onto the books, which means you MUST place it AT Bid/Ask (depending on direction) or above/below, it'll get rejected if you try and eat into the other side of the spread.
8) Async/Multithread your requests to the API's.
I haven't done this, so I have no code to share. But if you suddenly lose connection or there's a blip or whatever, there's often no way of specifying a timeout and it could potentially freeze/crash your application.
-----------------------------------------
I guess that's all I can think of. It might seem like simple, trivial stuff but when it comes to writing something in a language like VB.NET there's very little resources out there at all... I went through some pretty mind-bending trial and error that while fun and now rewarding, was very frustrating at the time.
All in all, writing a program that can interact with an exchange is a wholly steep learning experience and I've learned more in terms of my general programming ability and my knowlege and understanding of trading & exchanges in general than I had in months or even years before doing this.
Feel free to ask any questions, I'll try to answer them as best I can.
submitted by DotNetBarry to BitcoinMarkets [link] [comments]

Non-Contentious Alternative to A Fork: Symbiosis Instead Of Quarrel: One-Way-Peg Sidechain: Good For "Small-Blockers" As Well As "Pragmatics"! The Best From Both Philosophies: Conservatism For Bitcoin-Core, Unleashing Full On-Chain Utility Of Bitcoin Unlimited. All Groups Mutually Benefit.

Sorry for the long post - but I think it should really be read and understood by everybody concerned with the idea of launching a "Higher-Capacity Bitcoin", by everybody concerned with Bitcoin security and decentralization, and by everybody concerned with Bitcoin price!
Description Of The Concept:
Consequences Of This Solution - Characteristics:
  1. Every user who owns BTC-c can directly "convert" it 1:1 to BTC-u by a simple transfer to unspendable address "1transferAddressToBitcoinUsab1eGh5W".
  2. Optionally, the user could of course "convert it" via a classical exchange market, if the exchange market allows trade in BTC-c and BTC-u.
  3. Every User who owns BTC-u can only convert it (back) to BTC-c via a normal crypto-currency exchange market (because we have a ONE way peg without any modifications of the Bitcoin-core protocol, we cannot do it on protocol level!). While this is not a big difference microscopically from individual user perspective (if exchanges are well-integrated in apps and exchange fees are low), it does make a difference macro-economically, because BTCs can only drain in one direction, long-term, and never back.
Some Thoughts On Market Dynamics To Be Expected:
(I assume that the following "phases" will span over MANY years)
Thoughts On Exchange Rate Evolutions To Be Expected:
  • Phase 1:
    • A BTC-u unit is expected to be valued less than BTC-c, because you cannot really do anything meaningful with BTC-u yet, and after all, each owner of BTC-c can exchange it for a unit of BTC-u 1:1, so there is no reason why the free markets should give BTC-u a higher valuation than a BTC-c! If this were the case traders would immediately exchange BTC-c for BTC-u on protocol level and take the arbitrage gains. So market forces alone will keep the price of BTC-u below the price of BTC-c, except for very short periods of time (which will probably not occur at all in this "phase 1").
    • Only some tech geeks and early adopters will hence exchange some BTC-c for BTC-u, more for idealistic reasons or for "trying things out" than for trading and financial reasons.
  • Phase 2:
    • BTC-u's advantage in terms of practical utility vs. BTC-c becomes more and more apparent, such that BTC-u price gets closer and closer to BTC-c price on the markets.
    • As BTC-c hodlers keep on standing by their BTC-c, the number of BTC-u in circulation remains low! Users who want to make use of BTC-u's new utility (high TX capacity) have to aquire BTC-u either via protocol-level exchange (destroy BTC-c to get BTC-u), or via the exchanges - whatever is more convenient and attractive. Since BTC-u is still valued lower than BTC-c, they would make the better deal by going via the exchanges (as long as the [small] exchange market fee is less than the difference between BTC-c and BTC-u exchange rate, which can be expected to be the case for quite a while)! This would keep BTC-u supply low and hence it would keep BTC-u price high. And of course, since price(BTC-c) >= price(BTC-u) due to the one-way peg, BTC-c price benefits equally from this!
  • Phase 3:
    • If BTC-u fails for technical or other reasons, its price collapses and the whole experiment becomes history. The number of BTC-c spendable has been reduced due to this experiment, so each BTC-c unit becomes more rare and hence more valuable in price.
    • Otherwise, the demand for BTC-u from practical usage gets even higher, while the total number of BTC-u units in existence are pretty limited. This puts enormous upwards price pressure to BTC-u, and thereby also to BTC-c, to lift up BTC valuation, such that all BTC-u real-world usages can be fulfilled. BTC-c and BTC-u prices are very close, and at certain times of very high demand for BTC-u it even happens that BTC-u is valued higher than BTC-c on some exchanges. When this happens, arbitrage traders will kick in and buy the currently cheaper BTC-c, convert them to higher valued BTC-u by protocol means, and cell the more expensive BTC-u on the market. So such situations won't endure very long and will only serve market pressures in case of severe shortages of BTC-u coins.
DIFFerences and ADVantages Of This Strategy Vs. A "Normal Fork":
  • Both in common: No Dillution or Inflation:
    • In case of a normal fork, the total number of Bitcoins will double from 21 Million to 42 Million, because both forked chains will eventually have 21 Million, respectively. This inflation of Bitcoins is compensated by the fact that each pre-fork Bitcoin owner will also double his owned Bitcoin, so there should be no net penalty by principle.
    • In contrast, with "Bitcoin-Usable", the total(!) number of spendable Bitcoins will never be higher than 21 Million, counting BTC-c and BTC-u together.
    • Hence, even if it looks different in nominal coin units, the net effect is the same: No coins are inflated or diluted and every owner of bitcoins keeps his/her stake, nobody is at a disadvantage.
  • Symbiosis instead of Competition:
    • With "Bitcoin-Usable", bitcoin-core price will fully benefit from the success of the "Bitcoin-Unlimited" or "bigger blocksize" approach of "Bitcoin-Usable". This means that Bitcoin-core hodlers have full self-interest that "Bitcoin-Usable" becomes a success!
    • This is in stark contrast to the "fork" scenario, where the two forks will be competitors and may continue propagating their different philosophies on the different media channels. This not always friendly atmosphere and way of discussion may harm both sides! In the "Bitcoin-Usable" solution instead, both sides can still propagate their own views positively, without any need to talk negatively about the other side, because there is no competition but on the contrary mutual benefit!
    • Hence there would be no incentive from Bitcoin-Core supporters to DoS the "competing" bigger-block-chain - on the contrary they have an interest for that chain to succeed.
  • All fully validating "Bitcoin-Usable" nodes are also fully validating "Bitcoin-core" nodes (but not vice versa). Hence the number of bitcoin-core nodes can only increase compared to today in case "Bitcoin-Usable" becomes a big success, thereby also making the Bitcoin-core network more stable and powerful. So Bitcoin-Core benefits from "Bitcoin-Usable" not only w.r.t. price, but also w.r.t. security! (apart from that, price rise alone has a positive effect on security [via hash power] on its own already)
  • Since Bitcoin-Usable's block sizes and blockchain size are expected to become significantly greater than that of bitcoin-core on the long term, the additional burden that "Bitcoin-Usable" has by also having to observe the Bitcoin-Core blockchain is rather negligible, so in this respect there is no relevant difference between the two solutions.
  • As explained above, the mechanism of the one-way-peg in combination with the market mechanisms on price (low supply of BTC-u vs. high demand as a utility, and the constraint price(BTC-c) >= price(BTC-u)) creates a strong up-force of the Bitcoin price (for both bitcoins), originated by the additional applications of "Bitcoin-Usable". Again, BTC-c fully benefits from this.
  • No replay attack is possible even for identical TX formats in the protocol, because "Bitcoin-Usable" does not share Bitcoin-Core's blockchain history. Hence even better code re-use is possible - the only differences being block size limit and address format (first digit 2/4 vs. 1/3) and the lack of a block reward. And of course the observation of the "other" blockchain and the coin generation after coin destruction (one way peg implementation).
submitted by 1MichaS1 to btcfork [link] [comments]

Answers to common questions about Ethereum (FAQ)

I'll try my best to answer some of the most common questions that I've seen around regarding Ethereum, if you've got any questions that I haven't covered here, feel free to ask in comments.
To protect the network again spam, without transaction fees one could effectively DoS attack the network by sending 0 Ethers to himself infinite times. Transaction fees is effectively DDoS protection as it would cost massive amounts of money to spam the network.
No, not really; for transfering Ether between normal wallets it can (usually 21000). However, for interacting with Smart Contracts it's impossible to know due to the famous Halting Problem. You can never know in advance whether a contract code could loop indefinitely; if it does you can lose your entire balance of Ethers without an upper limit specified (and loop whatever machine is attempting to mine the transaction). Gas Limit is effectively a safe-guard against infinite loops, without an upper limit an infinite amount of Ethers would be consumed as a fee for an infinite duration of time if a contract loops.
ERC20 tokens are "assigned" to wallets by their respective Smart Contracts. You do not "hold" your tokens as you do your Ethers; instead Token Trackers keep a track of all ERC20 transactions and know which wallet owns how many. Therefore, to move your ERC20 between wallets, you need to request their respective Smart Contract to do it for you (because only that contract can actually move them around). Additionally, you can approve other wallets (usually smart contracts belonging to decentralized exchanges) to access a specific portion of your tokens on your behalf. ERC20 tokens can only be moved on behalf of their owner address or approved addresses (up to the authorized amount).
Transactions are mined in numerical order, Nonce of each transaction is its position among the rest. For example, the 6th outgoing transaction from your wallet will be Nonce = 6. Sending a transaction with a Nonce lower than what's already confirmed will result in an Invalid transaction while sending one with a Nonce higher than what's already confirmed will result in that tranasction being stuck until every other transaction before it (lower nonces) are already confirmed.
Mined transactions that are confirmed can never be reversed under any circumstance. If you have sent Ethers or Tokens to the wrong address, they are permanently lost and there is no way to recover them. However, as long as a transaction is still Pending, you may be able to replace or overwrite it by sending another transaction with the same Nonce and (a much) higher Gas Price.
An invalid transaction would eventually get discarded and will never be mined/confirmed. However, interactions with Smart Contracts could end abruptly (you run out of gas to perform the processing) or have unexpected results (infinite loop, etc.). In such cases, the result would be a Failed transaction which still has to be mined and confirmed. Therefore Failed transactions still consume gas/fees while invalid transactions just get discarded (eventually). An example of an Invalid transaction would be one where the signature doesn't match the request (has been tampered with).
Resend that exact same transaction with the same Nonce and a higher Gas Price. Be careful not to confuse Gas Price with Gas Limit, setting them in reverse woud likely result in you losing massive amounts of Ether.
Transactions have to be confirmed in the order they were sent. If you have a pending transaction with a lower Nonce and Gas Price, new tranasctions (regardless of their Gas Price) cannot get confirmed until the previous one is. If you have a stuck transaction, sending new ones with higher Gas Price would only make things worse.
Currently, there's no direct way of scheduling transactions via your wallet. Additionally, there is no way to 100% accurately predict how long it will take for a transaction to be confirmed. But usually, if you pay a high enough Gas Price, there's a very good chance it would be confirmed quickly.
Ethers can be mined directly to a wallet, or be transferred to it via a Smart Contract called by a different address. For instance, a wallet could call the smart contract with a function that would result in Ether(s) being transferred to a different address. With token transfers, all such transactions would usually be visible on the Token Tracker. However, with direct Ether transfers, you would need to find the transaction on the history of the wallet that sent it to the Smart Contract (which then sent Ethers to a different wallet as a result).
1 GWei = 0.000000001 Ethers, either memorize that or remember that 109 GWeis make up one Ether. G is unit prefix: Giga. For the time being, it's easier to type 5 than 0.000000005.
If it was a personal wallet, simply use the private key of your ETC wallet as an ETH wallet as they're functionally the same thing. If it was an exchange, you would have to contact their support and hope they would help you out. The same Ethereum wallet can hold both ETH and ETC at the same time (although each is tracked on separate networks).
Explain how you did that first because it should be impossible. Bitcoin and Ethereum have different address structures, a Bitcoin wallet is not a valid Ethereum address. Actually being able to pull this off would likely result in an Invalid transaction.
Most common reasons for Failed transactions during ICOs are: ICO has already ended (and no longer accepts new payments); Only payments from whitelisted addresses are accepted (but you're not whitelisted); Smart Contract is Paused (most tokens are locked and cannot be transferred while ICO is active); or your Gas Limit was too low (and you ran out of gas).
submitted by R3TR1X to CryptoCurrency [link] [comments]

[uncensored-r/BitcoinMarkets] Over the last 6 weeks I've written a functioning Crypto trading bot in VB.NET and here are some o...

The following post by DotNetBarry is being replicated because some comments within the post(but not the post itself) have been silently removed.
The original post can be found(in censored form) at this link:
np.reddit.com/ BitcoinMarkets/comments/7tw2s5
The original post's content was as follows:
I started on December 18th when I was playing about with Google Sheets and pulling prices from exchanges using the CRYPTOFINANCE() plugin... it was slow, clunky and the data was wildly old - I knew I could do something better in VB.NET but at this point had absolutely no idea where to start, no idea about trading, no idea how exchanges or API's worked and no idea just how bad I was at programming. I've asked a lot of dumb questions, I've lost a bunch of money making mistakes & learning as I go... Fast forward to today however and I have a fully functioning, cross-exchange trading bot. Sweet!
1) Truncate your numbers, don't round.**
Hindsight makes this seem so obvious to me now, but when you're working with Bitcoin balances to 8 decimal places, exchange rates to 5 decimal places and sums that can increase your decimal places exponentially, it helps to be precise. Even an extra 0.00000001 in the wrong place can cause an exchange to reject your request. Honestly if I'd have realised this sooner I'd be about 2 weeks ahead right now and nowhere near as bald.
The below functions in will truncate any decimal number with no rounding:
Public Function Trunc8(numbertoTuncate As Decimal) As Decimal Return Math.Truncate(numbertoTuncate * 100000000) / 100000000 End Function Public Function Trunc5(numbertoTuncate As Decimal) As Decimal Return Math.Truncate(numbertoTuncate * 100000) / 100000 End Function 
** Absolutely do round when exchange such as Bitstamp does it's fee calculations in spot USD price. Below is the logic I use to do this:
Dim amount_btc As Decimal = BTCtoSpend / ASK ' Full amount in BTC Dim fee_btc As Decimal = amount_btc * 0.0025 ' Get 0.25% of the BTC amount Dim fee_USD As Decimal = fee_btc * BitstampBTCUSD ' Convert to USD Dim round_USD As Decimal = Math.Round(fee_USD, 2, MidpointRounding.AwayFromZero) ' Round up Dim round_BTC As Decimal = round_USD / BitstampBTCUSD ' Convert back to BTC Dim amount = amount_btc - round_BTC ' minus the fee 
2) Websockets are your friend.
It's really easy to query Bitstamp or GDAX's API for the prices(Last/Bid/Ask). The query might take a 3rd of a second to get there, a 3rd of a second to get back - by the time your software has interpreted it it may have been nearly a full second. The prices you end up being sent back can some times be stale/out of date. Couple this with the API rate limits (Once a second on Bitstamp if you end up polling it continuously) and you can soon end up with stale information. The websockets allow the exchanges to push information to you, in real-time, as it happens. Seriously, they're fucking rad and you can query that data til the cows come home. Millisecond timers FTW!
Bitstamp uses Pusher, GDAX is a plain old web socket. It took me an age to figure it out, and honestly I've done it rather arse-about-tit, but here's the code I ended up using:
Bitstamp:(You'll need PusherClient from Nuget)
Imports PusherClient Imports Newtonsoft.Json.Linq Public WithEvents pusherClient As New Pusher("de504dc5763aeef9ff52") Public WithEvents BitstampLTCBTCOrderbook As Channel Public WithEvents BitstampLTCBTCTrades As Channel Public WithEvents BitstampBTCUSDTrades As Channel Public WithEvents BitstampEURUSDTrades As Channel pusherClient.Connect() Public Sub pusher_Connected() Handles pusherClient.Connected BitstampLTCBTCTrades = pusherClient.Subscribe("live_trades_ltcbtc") End Sub Public Sub BitstampLTCBTCTrades_Subscribed(Sender As Object) Handles BitstampLTCBTCTrades.Subscribed BitstampLTCBTCTrades.Bind("trade", AddressOf BitstampLTCBTCTrade) End Sub Public Sub BitstampLTCBTCTrade(data) Dim jss = JObject.Parse(data.ToString) BitstampPrice = CDec(jss("price_str").ToString) BitstampLastAmount = CDec(jss("amount_str").ToString) End Sub 
That's basically it - the different channels are all documented in the API and you can format the JSON til your little crypto heart's content.
GDAX:(You'll need Websocket4NET from Nuget) P.S. I know my sending raw JSON is a fucking abomination.
Imports WebSocket4Net Imports Newtonsoft.Json.Linq Public WithEvents websocketGDAX As WebSocket websocketGDAX = New WebSocket("wss://ws-feed.gdax.com") websocketGDAX.Open() Public Sub gdax_Connect() Handles websocketGDAX.Opened Dim Data As String = "{ ""type"": ""subscribe"", ""product_ids"":[""BTC-EUR""], ""channels"": [""heartbeat"", { ""name"": ""ticker"", ""product_ids"": [""LTC-BTC""] }]}" websocketGDAX.Send(Data) End Sub Public Sub gdax_Data(sender As Object, args As WebSocket4Net.MessageReceivedEventArgs) Handles websocketGDAX.MessageReceived Dim jss = JObject.Parse(args.Message) Try If jss("type").ToString = "ticker" Then Select Case jss("product_id") Case "LTC-BTC" GDAXPrice = CDec(jss("price")) GDAXBid = CDec(jss("best_bid")) GDAXAsk = CDec(jss("best_ask")) GDAXLastSize = CDec(jss("last_size")) Case "EUR-USD" GDAXEURUSD = CDec(jss("price")) Case "BTC-USD" End Select End If Catch ex As Exception Exit Sub End Try End Sub 
Again, that's kind of it. Some proper error handling wouldn't go amiss, but I'm lazy and I use GOTO's all over the shop anyway so I'm basically a terrible human being.
3) Hashing. Fucking Hashing.
Ok so basically when sending authenticated/private API calls you need to hash bits of the message in order to prove authenticity. This was a bitch to try and cobble together the right code. Here, have it. It's yours:
Imports System.Security.Cryptography Imports System.Text Module Hashing Public Function HMACSHA256_Encrypt(ByVal message As String, secret As String) As String Try Dim secretkey As String = secret Dim sha As New System.Security.Cryptography.HMACSHA256(System.Text.ASCIIEncoding.ASCII.GetBytes(secretkey)) Dim Hash() As Byte = sha.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(message)) Dim sb As New StringBuilder(Hash.Length * 2) For Each B As Byte In Hash sb.Append(Hex(B).PadLeft(2, "0")) Next Return sb.ToString.ToUpper Catch ex As Exception Debug.Print(Date.Now & " SHA256_Encrypt error " & ex.Message) Return Nothing End Try End Function Public Function HashString(ByVal str As String, ByVal secret As Byte()) As String Dim bytes As Byte() = Encoding.UTF8.GetBytes(str) Using hmac = New HMACSHA256(secret) Dim hash As Byte() = hmac.ComputeHash(bytes) Return Convert.ToBase64String(hash) End Using End Function End Module 
Top one for Bitstamp, Bottom one for GDAX. They differ slightly in the way they do things and the output they provide, hence there being two. Don't ask me what they do, couldn't tell you. Not a clue.
4) Verbose logging. Verbose logging. Verbose logging.
So you've made your bot, hit the button and....nothing. Now these things don't happen instantly; Even if you place an order at Ask or Bid, it might be minutes, even hours until it gets filled. Maybe your bot keeps erroring out and you don't know why. Write yourself a little logging function that you can copy and paste into your functions & subs that outputs the data you're sending and the data you're receiving along with a timestamp so you can debug if stuff isn't working. Again, I'm lazy and shit and this took me way longer to realise than it should have.
5) Don't be afraid to ask questions.
One of the biggest things that totally blew my mind was just how closed up some people are; on Reddit, forums, discord rooms... you name it. There's this weird stigma about people who trade & write bots that if they share their knowlege they'll somehow be doing themselves out of returns. Don't be afraid to ask questions. Ask enough, and eventually someone will come along and help. For every 10 people who chastised me for asking for coding help, trading help or whatever, 1 person would help out - it's worth enduring the rough for that... also, fuck those 10 people.
6) God damn Nonce generation.
A nonce is basically a unique, yet increasing number. Again, this was all massive trial and error. Bitstamp nonces and GDAX nonces work slightly differently and are interpreted slightly differently. Here's the code I use:
Module Nonces Public Function GenerateStampNonce() As String Static lastnonce As String Dim newNonce As String = Replace(Math.Round((DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds / 1000, 1).ToString("#0.0"), ".", "") Do While lastnonce = newNonce Threading.Thread.Sleep(10) newNonce = Replace(Math.Round((DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds / 1000, 1).ToString("#0.0"), ".", "") Loop lastnonce = newNonce Re... 
submitted by censorship_notifier to noncensored_bitcoin [link] [comments]

Blockchain to fix horribly broken e-mail system like it is today?

E-mail as it is, is horribly broken. Horrendously broken.
It wasn't that many years ago that you could be assured your e-mail reaches whoever you were mailing to. Today it is a mere suggestion, that perhaps this should be delivered to this person, at least for any automated e-mail. This seems to be creeping to manual, organic email as well. Hell, we are seeing even internal e-mails being flagged by spamassassin as spam, organic, human written conversations! In that instance, the spamassassin is also maintained by one of the largest hosting providers in the world...
Hotmail/MS services has been for years (atleast about 4 years now!) been silently dropping email, not all, but some. There's a bit of relief lately, as they have started to favor a bit more marking as spam, rather than silently dropping.
I know, most email users don't see this problem, but those who use email a lot to do their work, and those who need to send automated emails (say, welcome e-mails for a service) this is a big problem. (Disclaimer, for us, our niche of hosting probably causes flagging as well. Our site is blocked by many corporate firewalls for example)
Blockchain to the rescue?
This is an idea i've been toying around with a few years. What if any single e-mail would cost a faction of a cent, and who receives the e-mail, gets paid for it? Now that would solve a lot of problems. I realize there has been some half assed attempts on blockchain based e-mail, but they are about replacing email (never going to happen). Using blockchain to enhance the current experience, with least minimal friction should be the goal, not re-inventing the wheel.
Imagine a say 0.01 cent (0.0001 USD) cost per e-mail. This price would not be cost prohibitive even for free e-mail service providers (Ad revenue etc. should exceed this value), never mind any legit e-mail users. Especially considering you get paid for receiving. So all legit e-mail services would work rather well regardless of the cost. (never mind free email service could profit from this)
Spam however? To send 1 million emails you would need to pay 100$. How many spammers would continue doing so? At least it makes things much harder, not so easy to use a botnet to send your email when you need to include your private key(s) to the botnet, or make some kind of private key management system, makes more complicated.
Small business newsletters? Say you need to send 100k e-mails to legit customers, 10$ is nothing. To human time crafting that newsletter is order (possibly orders) of magnitude greater than that.
Price would also fluctuate as per the market. The most difficult thing would probably be setting the self balancing mechanisms to keep per mail cost sensible. As such, the biggest hurdle in this might not be technical at all.
Technically, how could this work?
Sender sends a TX for e-mail they are sending for recipient. This TX contains message with mail ID, and a segment which can be used with the email contents to unlock the private key for the payment. This way it is verified that recipient mail servers receives and reads the email. Once the recipient server has calculated the private key, they can either TX the received sum to their wallet, or this needs to be formatted so that once the sender has sent it, they cannot recover the private key and double spend (technical hurdle A. For someone who knows their stuff unlikely to be an major hurdle)
Step by step repeat: * Sender checks if recipient has "MailCoin" capability * Sender sends TX to recipient * Sender sends the email to recipient * Recipient notices on mail header (say x-mailcoin-tx: TXID_HERE) that this is a "mailcoin" mail * Recipient checks TX if it has been received * Recipient puts the mail on delivery queue, antispam is instructed of heavy negative score (MTA admin configurable) * Recipient claims the value of the TX (this is the hurdle A). Recipient can only claim the TX value in case they have received the full e-mail. (Question, can this step be pushed even further down the delivery chain, but still remain MTA only level without mail client support?). Most likely solution is that the header contains the encrypted private key, and chain TX contains the key to decrypt that private key to claim the coins, or vice-versa?
Once recipient has the email & payment, they simply mark on their Antispam a automatic lower score and deliver it normally.
E-mail server side we have several components:
Most typical scenario would be the Recipient server works as outgoing as well, with single wallet. So depending on your mail volume, do you send or receive more on that wallet you might never need to worry about the coins (except for value going skyhigh and having like 10k $ worth of "MailCoins").
So perhaps additional components on per use case are needed, or more likely rudimentary scripting capability (ie. "MailCoin" daemon api) to keep the balances in check.
Technical hurdle B: This needs to be super super simple to setup. Or sufficient financial incentive. One would need to develop standard components & configs for exim, postfix, and other MTAs. Infact, make it autogenerate wallet ID etc. and easy to replace or import private keys etc. to put in coins for sending if you need to.
Privacy: On the blockchain you would not see the e-mail contents, only that e-mail likely took place (TX with mail UUID) to recipient. If sender can be deciphered it depends on them if it can be traced who they were. Automatic mixers? :) Recipient can also keep cycling the receive addresses to keep things private if they want to.
The biggest problem i see here, is that if an attacker can deduce the sender and/or recipient, it might to lead to some issues out of the scope of technical solutions. If attacker could read the emails, they would already have accomplished MitM and could just grab all e-mails.
Default implementation should be so, that from recipient address outsider cannot deduce the recipient server nor hostname.
Also, if attacker gains access to your mail with full headers, they could see the TXs in blockchain. MTA might need to scrub mailcoin related headers (yuck, scrubbing headers ....) for paranoid users, but most likely solution is that recipient retransmits those mailcoins as soon as they got the private key for the balance.
Blockchain: Blocks needs to be done every 10seconds or so, it needs to be fast. Preferrably even every 5 seconds, as not to cause any undue delay. Then again, if your application is reliant on receiving email within seconds, one should consider another means for communicating. Imho, email should be considered a little bit like snail mail, but on internet pace: Couple minutes delay is just OK.
Block size given the e-mail volume needs to be fairly large as well, considering the time between blocks. This is technical hurdle C: Hosting the full blockchain. I can easily foresee that this would grow to be terabytes in size. However, any large email operator would have vested interest in ensuring smooth operation of the blockchain, and for them, running a full node would have neglible cost.
(Technical hurdle C) Single email sent using the system could easily have TX contents of 100 bytes + TX headers + block headers etc. Say 100 bytes, and 100 million emails per day: 9.31GiB per day, 3 399GiB per year, 5 years later: 16.60 TiB just for the mail TXs.
Some estimate there is 200+ billion emails per day, but we all know large portion of this is spam. But even at 50 billion emails a day, 100 bytes per mail TX would add to 4.55TiB per day! So optimizing the blockchain size is obviously going to be important. The volume will be obviously much smaller as semi-spam (those daily half opt-in spamvertising from companies you know) will be lower as well. So probs 100+ billion emails per day at 100% adoption.
Blockchain should then be compressed, the whole block. Algorithm probably should favor speed over compression rate, and should be task specifically optimized (needs a simple reference release, where you can just stream the block contents into it and get output as compressed or uncompressed). The more compression there is, the more full nodes will be hosted by smaller operators :)
For large e-mail server clusters there should be central store for the blockchain, but this can be accessed on the system administratoconfig level already. The MTA components will just remotely talk to single full node daemon (so not really different from many implementations in existence right now), instead of each one running locally a full node.
At today's cheapest hosting rates 16.60TiB is roughly around 85-100€ a month. Purchase cost per 8TB drive is around 230€ mark right now, externals are cheaper. Not an issue for any even semi serious mail provider. Not even issue for datahoarder individuals.
However at 100 billion mails per day: 9.09TiB per day added, which is prohibitively large! We should be targeting something like 20bytes per mail final storage spent, or even less.
If it looks like it is going to grow really large, full node needs to have configurable multiple storages, so they can store parts of the blockchain on multiple different devices (ie. individual might choose to have it on 4 different external drives).
Filesystem side optimizations are needed as well, but these are fairly simple, just split into multiple subdirectories by the 10 thousand blocks or so, ie. 1 for blocks 1-10k, 2 for blocks 10 001 to 20k etc. Filesystems get exponentially slower the more files there is per directory. 10k might start to show slowing down, but is not significant yet.
Nodes could also implement secondary compression (compress multiple blocks together), if the blockchain starts to become stupid large. If it starts to become impossible to maintain, we could possibly implement a scrubbing methodology, where very old blocks get the TX contents wiped as they are not necessary anymore. Should not be an issue
Blocks with 10second target generated per annum: 3 153 600 Mails per 10second: 115 740 e-mails per 10second block. Final compressed size (say 20 bytes per mail): 2.20MiB + headers etc. per block Let's start small and allow linear growth to this, say 0.1% per day (36.5% annual) and start from 20k / 512KiB. After 3 years: 41.9k / 1072.64KiB per block, After 10 years: 93k / 2380.8KiB. (2027 we should have HDDs in the size of 30TB and daily max size for chain growth is 19.61TiB)
On the positive side every problem is an opportunity in disguise. If the blockchain is large, once again botnets will have a hard hard time to spamming, they can't host the full blockchain on infected machines. They will need to develop centralized mechanisms on this regard as well. One method i can see is by having TOR client built in, and via .onion domain to anonymize, but this is two way street, security researchers could exploit this (see above about the private keys) as well. Even without botnets, spammers will need to dedicate significant resources to host the full blockchain.
On the flip side, if spammer has also mining operation on the same local area network, they have both the income for mailcoins + full blockchain, and could leverage economies of scale, but this too would increase cost. And after all: This is all about increasing cost for spamming, while having the price in vicinity where real e-mail users, real businesses it is not a significant impact, or may even be an income source
Client side
Zero, Nada changes. No changes to outlook, thunderbird etc. Everything works under the hood at the MTA level. Very easy adoption for the end user. Everything is in the backend, server side.
Economics for users
Cost of operation has above been shown to increase wildly for spammers. But how about normal use cases?
Joe Average: They receive e-mail a lot more than they send, all kinds of order confirmations, invoices, newsletters and other automated e-mail. They will actually earn (however tiny amounts) from using this system. So for the masses, this is a good thing, they will see the earning potentials! which brings us to ....
New business opportunities! I could foresee a business setting up spam traps, the more e-mail you receive the more you earn! So it pays to get your receiver into spam lists. You don't ever need to read these, just confirm receive of them. All of sudden we could see even greater numbers of invalid e-mail addresses in spam lists, making spamming ever more expensive!
Free email services might proof to be extremely profitable, to the point of potential revenue sharing with Joe Averages (and above spamtraps). Because free email is mostly joe averages, they will have greater influx than outgoing. On the caveat, free email needs to have limits, but due to the low cost and potential of earnings, they could implement "mail credits" system, base is like 20 emails a day, but each received email could increase this credit limit. As such, it makes actually sense for free email services to implement this at the very least on the receiving side.
Business mass emailings. A business which has 100k valid e-mails on their database will not have a problem with paying few dozen bucks to have their mass mailing delivered. BUT they will make extra sure the content is good and targeted, something the recipient wants to receive. These will be the biggest spenders on email, apart from spammers.
ISPs, hell they get paid to provide e-mail. And they are on the same spot as free email service providers, they stand to earn more than spend!
Blockchain economics
This is where things might get interesting, there is so much potential.
However, there are several things definitively should not be done:
1 & 2 are easy, just do not mine outside of testnet prior to launch. (If devs get paid by companies, there is conflict of interest as well, but let's not get into that right now)
3: Miners and/or full node maintainers decide what goes on. Probably miners like bitcoin is supposed to.
4: Infinite & preferential supply: No after the launch "contracts" etc. to give coins to preferential parties, it should remain as on the launch unless majority consensus says there will be a change. Proof of stake is gray area imho, but then again also proof of work is the rich gets richer.
Mining: Storage requirement is a blessing in disguise, the massive storages required for this to function means that there will be no central hardware developer who sells all the shovels, without significant other markets. Ie. WD, Seagate, Toshiba the main players.
This means algo needs to be based on the full blockchain being hosted. The hashing needs to be so that GPUs are the king most likely, since almost anything good for CPUs is also doable in GPUs. Eventually someone will likely come with ASIC alternative, but due to masses of data it WILL require high bandwidth, high memory. Nothing like bitcoin currently, where low bandwidth, no memory requirement for the ASIC. There needs to be some expensive commodity components in there (RAM, Storage), and as such GPUs are the most likely candidate, and the bottleneck will not likely be computation, but I/O bandwidth.
Quickly thinking, previous block could include number of blocks to be included on the next for verification, in a highly compressible format. Let's say difficulty is number of blocks to be hashed, or from difficulty you can calculate number of blocks to be included. Previous blocks miner just chooses on random blocks to be included on the next one. Listing 10 series of blocks to be included, which can include series instructions. It could request block #5729375+100, or #357492+500 stepping 5 (every 5th block). Hell the random generator could use last block as seed for the next one to make it deterministic YET random as the emails and TXs change. (WTF, Did i just solve how the algo needs to work?!?) Only blocks which would differentiate is the first few, and obviously Genesis, for which an "empty" block would be what is to be hashed.
Hashing algo could be SHA256 because of the high requirement of streaming data, and most ASIC miners lacking in bandwidth (infact, it could be made compatible with bitcoin, but only those ASICS with higher I/O bandwidth than storage/ram I/O bandwidth is could actually boost the perf)
Different hashable list operations could be (on the block list what to be hashed on the next one): * Single block * Block # + number of blocks * Block # + (number of blocks with stepping) * Block # + number of blocks chosen by random using each hashed block as the seed for choosing next one (makes prefetch, preread, caching not work efficiently) * Number of previous blocks mined (ie. 50 last blocks) * Above but with stepping operator * Above but with choose random next X blocks, with variations based on the last hashed, sum of the hashed * All random pickers would have operation modes for the seed to be used: From hashed sum, the whole block, block contents, block header
These modes would ensure the blocks are there and makes it a lot dependable on variable factors, RAM speed, I/O seek time, I/O bandwidth.
This way we have proof that the miner has access to those blocks in efficient manner and the full blockchain is stored there, even if it is not practically retrievable from him / her over the internet for others to obtain a copy. HOWEVER, due to the data volumes, i think it is given they have fast access, but a miner would probably prefer not to share their blockchain contents to have bandwidth free for their mining, as the deadlines are tight. It could be built into the full node spec that they do not accept new blocks from sources which are not ready to supply any given block, and perhaps even periodic test of this. However, this would be unenforceable if people start running custom coded nodes which disables this, as it is not part of the blockchain calculation. It is not miner's benefit to "waste" precious bandwidth to serve others the vast blockchain, meanwhile it is end users benefit those running full nodes without mining to get them fast. So an equilibrium might be reached, if miners start loosing out because other miners will not share their blocks, they will start offering them, even if prioritized.
At 2MiB blocks, 10 second deadline, a miner would preferentially want the new block within 500ms, which would be barely sufficient time for a round trip across the globe. 500ms for 2MiB is 4MiB/s transfer rate inbound, and when block found you want it out even faster, say 250ms you'll need 8MiB/s burst which very very few have at a home. At more usual 1MiB/s it would take 2secs to submit your new block. On the other hand, if you found the block, you'd have immediate access to begin calcing the next one.
Block verification needs to be fast, and as such the above difficulty setting alone is not sufficient, there needs to be nonce. Just picking the right block is not guarantee there will be match, so traditional !???? nonce needs to be set as well most likely. As such, a lot of maths needs to be done to ensure this algorithm does not have dead ends, yet ensures certain blocks needs to be read as full and stored fully by the miners, just plain hashes of the blocks is not sufficient.
Perhaps it should be block data + nonce, then all the blocks hashes (with nonce, or pre-chosen salt) and to be generated block combined hash with nonce needs to have certain number of zeroes. Needs testing and maths :)
So there are many ways to accomplish proof of storage, we'd need just to figure out the which is the best.
Sidenote, this same algo could potentially be used with different settings for immutable, forever storage of data. Since there is no continuing cost to store data, TX Fee for every message (data) byte should be very high in such a coin.
Supply. Needs to be predictable and easy to understand. It would be preferential the standard mailing out is always 1x MailCoin, albeit coin itself should be practically infinitively divisable, and as such supply needs to be in the trillions eventually. But these things get complicated really fast, so we need to set a schedule.
Current email use is very large, so we should have something in the same magnitude. 8640 blocks per day - so maybe 10 000 coins per block == 86 400 000 new coins per day == 31 536 000 000 new coins per year, halving every 2 years. First halving: 63 072 000 000, Second halving: 94 608 000 000, Third (6 years): 110 376 000 000, but only halving 4 or 5 times to keep some new supply for ever increasing adoption and lost coins.
Got all the way here? :D
Thanks for reading up. Let me know what you think, and let's start a discussion on the feasibility of such a system!
I cannot develop this myself, but i would definitively back an effort up in the ways i can if anyone attempts to do something like this :) And i know i got probably many of the details incorrect
The main point of the methods described above is ease of adoption. Without adoption any system is worthless, and with email, you just cannot replace it like that (see the attempts trying to replace IPv4 with IPv6 ...), but you can enhance it. adoption is very critical in communications systems. (No one would have a phone if no one else had a phone)
Addendum 1: Forgot to add about pricing and markets, read comment here
Addendun 2: Bad actors and voting
submitted by PulsedMedia to Bitcoin [link] [comments]

My Consulting Rate Schedule / Experience - If you want serious work done or advice that would take me hours to explain

My background:
My Rates - I'll scale by age, makes sense to me
Note: If I don't like you, for whatever reason at this point, there is a 10 Eth / Hour Asshole surcharge These prices are completely arbitrary, pay them , don't pay them, I don't care. Going forward, if anyone PMs me in regards to help , they will just get a link to this post. Pretty much wrote all of this up to save myself time from 100 PMs a day from ungrateful people at /EtherMining
What you get: * 1 hr phone and / or video conference call. * Ask me how my day was, ask me technical question - your choice * 15m free phone / video call follow up * I am a reasonable guy, if I projected an issue to be done in x hours and it's not fixed by that time, I'll stay on the line until it is
You can pay me for my time & experience or you can spend 500 messing around with your own rigs yourself (Like I did) - It is completely your choice. This is more of an option for people who have extra crash and don't have time time to put in like I did.

Cheers,

-Epic™

Edit: Just if you can't Math ( as lots of people can't - no big deal ) EVERY 1/mhs you LOSE because your rig is not optimized Equates to .5 Eth / Month LOSS. Do the math on what you are losing. Here - 20/mhs loss = 10 Eth / Month * $8.25 ( Current Rate ) = $82.5. If Eth goes to $20 that is $200 per month on coins you lost ONLY because you did not apply the right settings for your cards. This should make my "fee" look cheap in comparison if you're running multiple cards. And if Eth goes to $1,000 in a few years like Bitcoin did, you will have some serious regrets.
PM: Pro Bono Consulting Client:
"My rates peak as high as 128MH/s.. so my average will probably be in the 115MH/s range. When I try the local/global-work code and/or setting the allocation percentage higher than 95%, I get errors. Can't remember what specifically.. something about failing to grab DAG info in one big chunk and 'bailing'."
PM: Pro Bono Consulting Client:
"Hey thank you for the help on etherminer. I finally got the 6-GPU rig up and running. Windows turned out to be more of a headache than Ubuntu so I went back to Linux and figured it out. As per your suggestion I am on ethermine.org using qtminer. (I'm actually offline at the moment, but everything is operational) I used the default qtminer code that tells all of the GPUs to work but it's not entirely clear what is happening. Each GPU appears to be working on the same 'problem'. Is that accurate? As opposed to having each GPU work more independently on a separate problem..? I set the GPU workload to 93%.. Fans to 90%.. everything running cool at ~50c The results of most of the mining calculations appear to get grouped and uploaded to the pool as some sort of 'piece of the puzzle'. Every so often there is a 'solution' with a 'nonce'. How does that relate to getting an ETH reward? Also, how does the affect getting paid so long as the same address is used? I referenced a tutorial and accidentally used .rig1 to initialize qtminer - instead of the name of my computer (I still used my wallet address). I don't understand how all of this impacts getting paid or what my options are for tweaking the configuration. I'll sort it out either way but any additional insight is appreciated. ..single Ether sent as a token of gratitude... https://etherscan.io/tx/0x9782d0cfb5f98cf086e879cc510fd45968aef3a9798ee4281b475bc569eb5c11 (Tx ID was posted) Cheers"
PM: Corporate Client: This is a real PM I received and the type of PM I will respond to if you want to work with me -
"Dear EpicEther, My name is [Real First AND Last name] and i live and study in the [Country] ( Public administration and Philosophy at [School Name] University. Me and four partners are setting up a mining company after building a succesfull mining rig containing 5 r9 280x cards. At the moment we have potential investors and a brochure containing information about ethereum and different mining set-up's with estimated costs for the inestors. I would really like to have a conversation with a veteran in the mining world and woud like to discus the following questions. - Is investing in more expensive GPU's worth it since mining will be faced out in the coming year. - How can we help to grow the ethereum network Kind regards, [Real Full Name]"

These are the type of PMs I get on a daily basis and 100% can help you with within an hours time.

submitted by EpicEther to EthMiningClub [link] [comments]

Answers to common questions about Ethereum (FAQ)

I'll try my best to answer some of the most common questions that I've seen around regarding Ethereum, if you've got any questions that I haven't covered here, feel free to ask in comments.
To protect the network again spam, without transaction fees one could effectively DoS attack the network by sending 0 Ethers to himself infinite times. Transaction fees is effectively DDoS protection as it would cost massive amounts of money to spam the network.
No, not really; for transfering Ether between normal wallets it can (usually 21000). However, for interacting with Smart Contracts it's impossible to know due to the famous Halting Problem. You can never know in advance whether a contract code could loop indefinitely; if it does you can lose your entire balance of Ethers without an upper limit specified (and loop whatever machine is attempting to mine the transaction). Gas Limit is effectively a safe-guard against infinite loops, without an upper limit an infinite amount of Ethers would be consumed as a fee for an infinite duration of time if a contract loops.
ERC20 tokens are "assigned" to wallets by their respective Smart Contracts. You do not "hold" your tokens as you do your Ethers; instead Token Trackers keep a track of all ERC20 transactions and know which wallet owns how many. Therefore, to move your ERC20 between wallets, you need to request their respective Smart Contract to do it for you (because only that contract can actually move them around). Additionally, you can approve other wallets (usually smart contracts belonging to decentralized exchanges) to access a specific portion of your tokens on your behalf. ERC20 tokens can only be moved on behalf of their owner address or approved addresses (up to the authorized amount).
Transactions are mined in numerical order, Nonce of each transaction is its position among the rest. For example, the 6th outgoing transaction from your wallet will be Nonce = 6. Sending a transaction with a Nonce lower than what's already confirmed will result in an Invalid transaction while sending one with a Nonce higher than what's already confirmed will result in that tranasction being stuck until every other transaction before it (lower nonces) are already confirmed.
Mined transactions that are confirmed can never be reversed under any circumstance. If you have sent Ethers or Tokens to the wrong address, they are permanently lost and there is no way to recover them. However, as long as a transaction is still Pending, you may be able to replace or overwrite it by sending another transaction with the same Nonce and (a much) higher Gas Price.
An invalid transaction would eventually get discarded and will never be mined/confirmed. However, interactions with Smart Contracts could end abruptly (you run out of gas to perform the processing) or have unexpected results (infinite loop, etc.). In such cases, the result would be a Failed transaction which still has to be mined and confirmed. Therefore Failed transactions still consume gas/fees while invalid transactions just get discarded (eventually). An example of an Invalid transaction would be one where the signature doesn't match the request (has been tampered with).
Resend that exact same transaction with the same Nonce and a higher Gas Price. Be careful not to confuse Gas Price with Gas Limit, setting them in reverse woud likely result in you losing massive amounts of Ether.
Transactions have to be confirmed in the order they were sent. If you have a pending transaction with a lower Nonce and Gas Price, new tranasctions (regardless of their Gas Price) cannot get confirmed until the previous one is. If you have a stuck transaction, sending new ones with higher Gas Price would only make things worse.
Currently, there's no direct way of scheduling transactions via your wallet. Additionally, there is no way to 100% accurately predict how long it will take for a transaction to be confirmed. But usually, if you pay a high enough Gas Price, there's a very good chance it would be confirmed quickly.
Ethers can be mined directly to a wallet, or be transferred to it via a Smart Contract called by a different address. For instance, a wallet could call the smart contract with a function that would result in Ether(s) being transferred to a different address. With token transfers, all such transactions would usually be visible on the Token Tracker. However, with direct Ether transfers, you would need to find the transaction on the history of the wallet that sent it to the Smart Contract (which then sent Ethers to a different wallet as a result).
1 GWei = 0.000000001 Ethers, either memorize that or remember that 109 GWeis make up one Ether. G is unit prefix: Giga. For the time being, it's easier to type 5 than 0.000000005.
If it was a personal wallet, simply use the private key of your ETC wallet as an ETH wallet as they're functionally the same thing. If it was an exchange, you would have to contact their support and hope they would help you out. The same Ethereum wallet can hold both ETH and ETC at the same time (although each is tracked on separate networks).
Explain how you did that first because it should be impossible. Bitcoin and Ethereum have different address structures, a Bitcoin wallet is not a valid Ethereum address. Actually being able to pull this off would likely result in an Invalid transaction.
Most common reasons for Failed transactions during ICOs are: ICO has already ended (and no longer accepts new payments); Only payments from whitelisted addresses are accepted (but you're not whitelisted); Smart Contract is Paused (most tokens are locked and cannot be transferred while ICO is active); or your Gas Limit was too low (and you ran out of gas).
submitted by R3TR1X to ethereum [link] [comments]

Epic™'s Consulting Rate Schedule / Experience

My background:
My Rates - I'll scale by age, makes sense to me
Note: If I don't like you, for whatever reason at this point, there is a 10 Eth / Hour Asshole surcharge These prices are completely arbitrary, pay them , don't pay them, I don't care. Going forward, if anyone PMs me in regards to help , they will just get a link to this post. Pretty much wrote all of this up to save myself time from 100 PMs a day from ungrateful people at /EtherMining
What you get: * 1 hr phone and / or video conference call. * Ask me how my day was, ask me technical question - your choice * 15m free phone / video call follow up * I am a reasonable guy, if I projected an issue to be done in x hours and it's not fixed by that time, I'll stay on the line until it is
You can pay me for my time & experience or you can spend 500 messing around with your own rigs yourself (Like I did) - It is completely your choice. This is more of an option for people who have extra crash and don't have time time to put in like I did.

Cheers,

-Epic™

Edit: Just if you can't Math ( as lots of people can't - no big deal ) EVERY 1/mhs you LOSE because your rig is not optimized Equates to .5 Eth / Month LOSS. Do the math on what you are losing. Here - 20/mhs loss = 10 Eth / Month * $8.25 ( Current Rate ) = $82.5. If Eth goes to $20 that is $200 per month on coins you lost ONLY because you did not apply the right settings for your cards. This should make my "fee" look cheap in comparison if you're running multiple cards. And if Eth goes to $1,000 in a few years like Bitcoin did, you will have some serious regrets.
PM: Pro Bono Consulting Client:
"My rates peak as high as 128MH/s.. so my average will probably be in the 115MH/s range. When I try the local/global-work code and/or setting the allocation percentage higher than 95%, I get errors. Can't remember what specifically.. something about failing to grab DAG info in one big chunk and 'bailing'."
PM: Pro Bono Consulting Client:
"Hey thank you for the help on etherminer. I finally got the 6-GPU rig up and running. Windows turned out to be more of a headache than Ubuntu so I went back to Linux and figured it out. As per your suggestion I am on ethermine.org using qtminer. (I'm actually offline at the moment, but everything is operational) I used the default qtminer code that tells all of the GPUs to work but it's not entirely clear what is happening. Each GPU appears to be working on the same 'problem'. Is that accurate? As opposed to having each GPU work more independently on a separate problem..? I set the GPU workload to 93%.. Fans to 90%.. everything running cool at ~50c The results of most of the mining calculations appear to get grouped and uploaded to the pool as some sort of 'piece of the puzzle'. Every so often there is a 'solution' with a 'nonce'. How does that relate to getting an ETH reward? Also, how does the affect getting paid so long as the same address is used? I referenced a tutorial and accidentally used .rig1 to initialize qtminer - instead of the name of my computer (I still used my wallet address). I don't understand how all of this impacts getting paid or what my options are for tweaking the configuration. I'll sort it out either way but any additional insight is appreciated. ..single Ether sent as a token of gratitude... https://etherscan.io/tx/0x9782d0cfb5f98cf086e879cc510fd45968aef3a9798ee4281b475bc569eb5c11 (Tx ID was posted) Cheers"
PM: Corporate Client: This is a real PM I received and the type of PM I will respond to if you want to work with me -
"Dear EpicEther, My name is [Real First AND Last name] and i live and study in the [Country] ( Public administration and Philosophy at [School Name] University. Me and four partners are setting up a mining company after building a succesfull mining rig containing 5 r9 280x cards. At the moment we have potential investors and a brochure containing information about ethereum and different mining set-up's with estimated costs for the inestors. I would really like to have a conversation with a veteran in the mining world and woud like to discus the following questions. - Is investing in more expensive GPU's worth it since mining will be faced out in the coming year. - How can we help to grow the ethereum network Kind regards, [Real Full Name]"

These are the type of PMs I get on a daily basis and 100% can help you with within an hours time.

submitted by EpicEther to EpicConsultingClub [link] [comments]

IDEA: Hash reputation for easing the 51% attack fear

Hello Guys,
I just had an idea that might help in easing the 51% problem. Bitcoin is trustlest money, but there is a trust in the system as a whole which is undermined by someone getting 51% of the hash power. The recent dip in price can arguable be seen as stemming from GHash.IO getting >50% for a while.
There are two scenarios of a hash power majority:
a) The physical hardware that a big pool owns exceeds 50% of the network or b) The hash power directed to a single pool exceeds 50%
Many people argue that we are still far from an a) scenario, but the b) scenario already happened for a short while. There was a feedback effect, but it didn't happen fast enough - only after it happened.
Now, people argue that miners should direct their hashing power away from GHash.IO. Some publicly announce that they have done/will do so, but others are either oblivious or do not care.
So what if there could be an extra incentive to participating in a smalle'good' pool, and what if those incentives are completely without changes to the Bitcoin protocol/system?
I propose the following idea: A mining client can collect the list of shares that it sends to its pool and creates a list of
...
entries. Every so often, this list will be signed (by a bitcoin or GPG key freely selected by the miner's owner) and the signed list subsequently timestamped (probably through bitcoin).
This list can then be published anywhere, say on a miners wegpage.
This list would prove that a particular miner directed a certain amount of hashing power to a certain pool in a given time period. A miner can therefore prove - by the selection of the pool - that s/he is or at least appears to be benevolent. Also, people can link their real world reputation into the bitcoin reputation, making the hashing more transparent and hopefully showing that a certain, hopefully large amount of hashing power is in good hands.
This signed list could then also be used as reputation elsewhere, for example for bitcoin loans, as an advertisement in itself etc. And if a certain fraction of hashrate is provably in the hands of many different entities across the globe, it would strengthen the trust in the network itself.
Also, such a list can be very helpful in determining which blocks originate from which pools - so that maybe the 'unknown fraction' on blockchain.io can be reduced.
What do you guys think about this?
submitted by hashrep to Bitcoin [link] [comments]

Bitcoin Price Update  বিটকয়েনের দাম বাড়তেছে এখনই ইনকাম ... Bitcoin Explained: Why The Bitcoin Price MATTERS - YouTube Sleepaway Camp (1983) KILL COUNT - YouTube Mobile Algerie - YouTube First ever female serial killer: Aileen Wournos  60 ...

Q&A for Bitcoin crypto-currency enthusiasts. So the way I understand how the blockchain works is that each new block uses the previous block's hash, which means if my block[100].hash != someone_elses_block[100].hash that means that either I ... Price. Bitcoin Price; Ethereum Price; Litecoin Price; Binance Coin Price; Monero Price; MimbleWimbleCoin Price; How to; Trade Boasting a community of over eight million people, eToro is one of the leading global trading and investment platform – and it specialises in cryptocurrencies. Although there are more than 1,200 assets to trade on ... In the bitcoin example, it is possible to merge mine Namecoin and a few other coins which use the same SHA-256 algo. What makes this principle so appealing is how it does not slow down the mining of the primary cryptocurrency by any means. Instead, this is an excellent way for low-hash cryptocurrencies to increase their network hashing power by bootstrapping onto more popular currencies. Bitcoin Is Undervalued, Fair Value Price Should Be $15,000, Says Analyst. Bloomberg cryptocurrency analyst Mike McGlone says bitcoin is greatly undervalued, suggesting that its fair value price ... Tag: extranonce fields. New Satoshi Stash Estimate Claims Creator Mined $10.5B Worth of Bitcoin . Jul 21, 2020 . In Case You Missed It. The Silk Road Balance Sheet Discrepancy: Bitcoin Worth $4.8 ...

[index] [23246] [9026] [21355] [24058] [18122] [3512] [45641] [35882] [31131] [11889]

Bitcoin Price Update বিটকয়েনের দাম বাড়তেছে এখনই ইনকাম ...

Just 16 days before he died, Tara Brown sat down with Mark ‘Chopper’ Read for his last ever interview. It quickly became a confessional in which he admitted ... I’m going to ask what many people may consider to be the dumbest question ever. Why is the Bitcoin price important? Before you ridicule me and call me the la... (1994) Over a 12 month period in the US state of Florida, Aileen Wournos killed seven men. She said it was self-defence yet at her trial asked to be executed... Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube. Bitcoin Halving Explained Simple - Does it Affect Bitcoin's Price? - Duration: 5:33. 99Bitcoins Recommended for you. 5:33. Language: English Location: United States ...

#