Qué es un Nonce - Bitcoin - Guia Bitcoins

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]

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]

EasyMine: WTF Happened?

UPDATE: VTC mining on Easymine back to normal, payouts have resumed. Zero fees for the rest of the month.
Here's a more detailed response to https://old.reddit.com/vertcoin/comments/96z77t/psa_easy_mine_problem/ - bear with me and put on your nerd hat for a few mins.
The stratum server for all EasyMine pools is node-merged-pool - a merge mining fork of node-stratum-pool. See my repo here @ https://github.com/nzsquirrell/node-merged-pool
This is what miners connect to for work and to submit valid shares on the search for blocks. The information that is exchanged in hex digits, and the data coming back from the miner includes the time, the job, ExtraNonce2 and nonce (see https://en.bitcoin.it/wiki/Stratum_mining_protocol#mining.submit). All of these fields are used to notify the server of valid work exceeding a specific difficulty.
Hex digits are not case-sensitive. So 'FF00AA11' is the same as 'ff00aa11'. Both equate to decimal 4278233617. So for the purposes of construction a block header, it doesn't matter if the hex digits are uppercase, lowercase, or a mixture of both - it all works out the same, and produces the same hash. Hold this thought.
The stratum server knows what shares each miner has submitted, it keeps a track of all of the data in an array. It checks every time that work is submitted that the same work hasn't been submitted before whilst searching for the next block. If it was submitted, then the new submission is rejected as duplicate work.
Now, where this has all gone wrong is that the way the data is stored in this array was a string containing the four fields mentioned above. Strings are case-sensitive and when making comparisons 'FF00AA11' != 'ff00aa11', as well as 'ff00aA11' and 'ff00AA11' and so on.... This allowed our attacker to submit the same work many many times, altering only the case of the hex digits (he was doing it to the nonce, but the other fields are also susceptible to the attack), so the logic to check for duplicate work wasn't firing, the shares were valid (as they produced a valid hash above difficulty), and our attacker was faking most of his hash-rate. A lot. A shit-ton of it.
I have fixed this in my fork of node-stratum-pool - the fix is very easy, we just make all the characters lower case before testing for duplicate shares. See https://github.com/nzsquirrell/node-merged-pool/commit/9d068535d042516835f565a859852c7cf715da98 for my fix.
My big concern is that the other forks I've seen for node-stratum-pool are susceptible to the attack, and quite possibly other pool software is too possibly even p2pool? I've not looked. If someone can check and let me know and I'll update this. p2pool has been confirmed as resilient to this type of attack.
So, Who-The-F&*k did this. This is what I have so far:
He's used the following VTC and NIX addresses:
I've seen connections coming in from the following IP addresses:
He is still attacking EasyMine, but it's not having any effect now. Actually the server keeps banning him now as it's detecting that he's submitting too many invalid shares. Take that.
The path forward
I have a big mess to clean up, he's made off with about 652 VTC and about 3576 NIX, essentially stolen from you miners. I will see what I can do to recover some of this (not all of it has been paid to him yet), but there is going to be a substantial shortfall. Mr Attacker, feel free to PM me and we can arrange a settlement :)
Payouts on both the VTC & NIX pools are suspended until i can clean this up, I hope this won't take more than a couple of days.
Thanks.
submitted by nzsquirrell to vertcoin [link] [comments]

Let us not forget the original reason we needed the NYA agreement in the first place. Centralization in mining manufacturing has allowed for pools to grow too powerful, granting them the power to veto protocol changes, giving them bargaining powers where there should be none.

SegWit2x through the NYA agreement was a compromise with a group of Chinese mining pools who all march to the beat of the same drum. Antpool, ViaBTC, BTC.TOP, btc.com, CANOE, bitcoin.com are all financially linked or linked through correlated behavior. Antpool, ConnectBTC and btc.com being directly controlled by bitmain, and ViaBTC and Bitmain have a "shared investor relationship". If bitmain is against position A, then all those other pools have historically followed its footsteps. As Jimmy Song explains here the NYA compromise was because only a small minority of individuals with a disproportionate amount of hashrate were against Segwit (Bitmain and subsidiaries listed above), where the rest of the majority of signatories of NYA were pro-segwit. The purpose of the compromise was to prevent a chain split, which would cause damage to the ecosystem and a loss of confidence in bitcoin generally.
At current time of calculation, according to blockchain.info hashrate charts, these pools account for 47.6% of the hashrate. What does it matter if these pools are running a shell game of different subsidiaries or CEO's if they all follow a single individual's orders? 47.6% is enough hashrate right now to preform a 51% attack on the network with mining luck factored in. This statistic alone should demonstrate the enormous threat that Bitmain has placed on the entire bitcoin ecosystem. It has compromised the decentralized model of mining through monopolizing ASIC manufacturing which has lead to a scenario in which bitcoins security model is threatened.
But let us explore the reasoning behind these individuals actions by taking a look at history. First, Bitmain has consistently supported consensus breaking alternative clients by supporting bitcoin classic, supporting Bitcoin Unlimited and its horrifically broken "emergent consensus" algorithm, responding to BIP148 with a UAHF declaration, and then once realizing that BIP148/BIP91 would be successful at activating Segwit without splitting the network Bitmain abandoned its attempt at a "UAHF", and admitted that bitcoin cash is based on the UAHF on their blog post. The very notion of attempting to compromise with an entity to prevent a split that is supporting a split is illogical by nature and a pointless exercise.
Let us not forget that Bitmain was so diametrically opposed to Segwit that it sabatoged Litecoins Segwit Activation period to prevent Segwit from activating on Litecoin. Do these actions sound like a rational actor who has the best interests of bitcoin at heart? Or does this sound like an authoritarian regime that wants to stifle information at any cost to prevent the public from seeing the benefits that SegWit provides?
But the real question must still be asked. Why? Why would Bitmain who is so focused on increasing the blocksize to reduce fee pressure delay a protocol upgrade that both increases blocksize and reduces fee pressure? If miners are financially incentivized to behave in a way in which is economically favorable to bitcoin, then why would they purposefully sabatoge protocol improvements that will increase the long term success survival of bitcoin?
There is plenty of evidence that suggests covert ASICBOOST, a mechanism in which a ASIC miner short cuts bitcoins proof of work process (grinding nonce, transaction ordering) and an innovation that Bitmain holds a patent for in China is the real reason Bitmain originally blocked SegWits activation. It was speculated by Bitcoin Core developer Gregory Maxwell that this covert asicboost technology could earn Bitmain 100 Million dollars a year.
It is notable that Hardfork proposals that Bitmain has supported, such as Bitcoin Classic, Bitcoin Unlimited, Bitcoin ABC/Bcash and now SegWit2x all preserve Bitmains covert asicboost technology while Segwit the soft fork breaks asicboosts effectiveness.
But if that is not enough of a demonstration of rational economic incentives to behave in such a way, then what about irrational reasons such a idelogical positions or pride?
Its no secret that Chinese miners dislike for bitcoin core matured when the Hong Kong agreement was broken. Many miners have consistently rationlized "firing bitcoin core developers" and we even have a direct account from a bitpay employee that said Jihan directly told him that is his purpose is to "get rid of blockstream and core developers". And while the Hong Kong agreement being broken is quite the muddied waters, there is proof in the blockchain that chinese miners were the first to break the terms of the agreement by mining a block with a alternative client. Some bitcoin core developers continued to work on HardFork proposals despite this, offering up public proposals, BIPs and released code to attempt to satisfy the terms of the agreement. Yet only in hindsight did everyone realize that no individual or individuals can force the entire bitcoin network to upgrade. It is only through the slow methodical process of social consensus building that we can get such a large decentralized global network to agree to upgrade the protocol in a safe manner. Yet to this day we still have bitter idelogical wars over this HK agreement "being broken" despite how long ago, and how clear the situation is in hindsight.
When you take into account the historical record of these individuals and businesses actions it clearly demonstrates a pattern of behavior that undermines the long term health of bitcoin. When you analyze their behavior from a rational economic viewpoint, you can clearly see that they are sabatoging the long term health of bitcoin to preserve short term profits.
Considering this information, why would other bitcoin ecosystem businesses "compromise" with such a malicious actor? Let us not forget that these actors were the entire reason we needed to compromise in the first place went ahead and forked the bitcoin network already creating the first bitcoin-shared-history altcoin, Bitcoin ABC. So we compromised with people to prevent the spliting of bitcoin, so that they could go ahead and split bitcoin? What illogical insanity is this? Why would you "stick to your guns" on an agreement that was nullified the moment Bitmain and ViaBTC supported a hardfork outside of the S2X agreement? Doubly questionably is your support when the hardfork is highly contentious and guaranteed to cause a split, damage bitcoin, create chaos and damage global confidence.
A lot of the signatories of the NYA agreement are payment processors and gateway businesses. Their financial health depends upon short term growth of bitcoin to increase business activity and shore up investors capital with revenue from that transactional growth. Their priorities are to ensure short term growth and to appease their investors. But their actions demonstrate a type of cause and effect that often occurs in markets across the world. By redistributing network resource costs to node operators they are simply shuffling costs to the public so that they can benefit in the short term without needing to allocate extra capital.
But these actions do not benefit the health of bitcoin long term. Splitting the network, once again, does not increase confidence in the bitcoin network. It does not foster growth. Increasing the blocksize after segwit already increases the blocksize will not get us any closer to VISA transaction levels from a statistical viewpoint. Increasing the TPS from 3 to 7 when we need to get to 30,000 TPS is quite an illogical decision at face value. Increasing the blocksize on-chain to get to that level would destroy any pretense at decentralization long before we even came close, and without decentralization we have no cenosorship resistence, fungibility. These are fundamental to the value of bitcoin as a network and currency. Polymath and industry wide respected crypto expert Nick Szabo has written extensively on scaling bitcoin and why layer 2 networks are essential.
To all the Signatories of the SegWit2X I ask you - What are you trying to accomplish by splitting bitcoin once again? What consensus building have you done to ensure that bitcoin wont suffer a catastrophic contentious hard fork? As it stands right now I only see a portion of the economic actors in the bitcoin ecosystem supporting S2X. No where near enough to prevent miners from supporting the legacy chain when there will be a large portion of the economy still operating on the legacy chain preserving its value. Where there is money Its going to be extremely difficult to topple the status quo/legacy network and the cards are stacked against you. Without full consensus from the majority of developers, economic actors/nodes, exchanges, payment processors, gateways, wallets....you will only fork yourself from the legacy network and reap destruction and chaos as the legacy chain and S2X battle it out.
If you truly support bitcoin and are dedicated to the long term success of bitcoin and your business, then why would you engage/compromise with demonstratably malicious actors within the bitcoin ecosystem to accomplish a goal that was designed by them to further monopolize/centralize their control, at the destruction of bitcoins security model?
Bitcoin core developers are actually positive on hardforks and want to eventually increase the legacy blocksize, they just wish to do it in a responsible manner that does not put the network at risk like SegWit2x does.
Also, it seems a rational engineering choice to optimize and compress transactions/protocols before increasing the blocksize. Things like SegWit, Schnorr, MAST are all great examples of things Bitcoin Core has done and is doing to increase on-chain scaling technology to the long term benefit of bitcoin.
The fate of bitcoin will be determined by users who choose when how and where they transact. If businesses attempt to force them on the S2X chain they will abandon those businesses to use a servicor that does not attempt through coercion to force them upon a specific forked network.
Finally, without replay protection there can be no clean split and no free market mechanism to determine the winner. I understand that this is purposefully designed this way, to force a war between the legacy chain and S2X, but if you stand for everything bitcoin stands for, then you as central actors will not try to force people onto your chain. Instead, you should allow the market to decide which chain is more valuable.
If you will not abandon this poisonous hardfork pill then please advocate/lobby to add default replay protection to the btc1 codebase. You cannot claim Free Market principals and then on the other side of your mouth collude with central actors to force protocol changes upon users. Either you believe in bitcoin, or you are here to join the miners in their poorly disguised behaviors to monopolize, subvert and sabatoge bitcoin.
submitted by Cryptolution to Bitcoin [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]

TERA CRYPTO CURRENCY PROJECT

TERA is an open source and collaborative project. It means everyone can view and eventually modify its source code for hehis own needs. And it also means anyone is welcome to integrate its working community. The Tera community works to develop, deploy and maintain Tera nodes and decentralized applications that are part of the TERA Network.
The TERA technology serves the cryptocurrency concepts, trying to design a modern coins and contracts blockchain application : fast block generation, high transaction throughput and user-friendly application. It was officialy launched on 30th of June 2018 on the bitcointalk forum.
[Yuriy Ivanov](mailto:[email protected]) is the founder and core developer of the project. The Tera community is more familiar with the alias « vtools ».

USER FRIENDLY APPLICATION

In the aim to make this crypto currency project more friendly to end-users, some interesting innovations have been implemented in regards to the first generation of crpyto currency applications. The bitcoin and its thousands of child or fork, required a good level of IT skills in order to manage all the application chain from its own : from miners and its hardware, through stratum servers, proxies, to blockchain nodes. The Tera project intend to go one step further regarding crypto currency features integration into a single application : once installed, an efficient web application is available on localhost on port 8080. Then, any web browser supporting javascript may be able to access this application and to operate fully the Tera node.

MINING A CRYPTO CURRENCY

MINING CONCEPT

The mining activity consist in calling a mathematical procedure we can’t predict the result before we run it. But we intend to obtain a very specific result, which usually consist in a certain number of 0 as the first chars before any random answer. If we found the nonce (a random object) combined with the transaction data and the coin algorithm that produce such result, we’ll have solve a transaction block and we’ll get a reward for that. Thanks to this work, the transaction listed in the block will be added to the blockchain and anyone will be able to check our work. That’s the concept of ‘proof of work’ allowing anyone to replay the mathematical procedure with the nonce discovered by the node that solved the block and to confirm block inclusion into the blockchain.

POLITICAL AND ETHICAL CONSIDERATIONS

The Tera project is young. It will have to face the same problems is facing today the Bitcoin platform :
Any Crypto Currency Project with the goal its money and contracts to be used as any other historical money or service contract has to consider its political and ethical usage. Processes have to be imagined, designed and implemented in order to be able to fight against extortion, corruption and illegal activities threating crypto-currency development.

FAST BLOCK GENERATION AND HIGH THROUGHPUT

CLASSIC CRYPTO CURRENCY FEATURES

wallet, accounts, payments, mining, node settings and utilities, blockchain explorer and utilities…

DECENTRALIZED APP CATALOGUE

d-app : forum, stock exchange, payment plugins for third party platform, …

TECHNOLOGY DEPENDENCIES

Tera is entirely written in Java) over the NodeJS library as functional layer in order to take advantages of a robust and high level library designed to allow large and effective network node management.
The miner part is imported from an external repository and is written in C in order to get the best performances for this module.
Tera is actually officially supported on Linux and Windows.
If you start mining Tera thanks to this article, you can add my account 188131 as advisor to yours. On simple demand I’ll refund you half of the extra coins generated for advisors when you’ll solve blocks (@freddy#8516 on discord).

MINING TERA

Mining Tera has one major design constraint : you need one public IP per Tera node or miner. Yet, you can easily mine it on a computer desktop at home. The mining algorithm has been designed in order to be GPU resistant. In order to mine Tera coin you’ll need a multi-core processor (2 minimum) and some RAM, between 1 and 4GB per process that will mine. The mining reward level depends of the « power » used to solve a block (Top Tera Miners).

COST AND USAGE CONSIDERATIONS

There is two main cost centers in order to mine a crypto currency :
  1. the cost of the hardware and the energy required to make a huge amount of mathematical operations connected to the blockchain network through the Internet,
  2. the human cost in order to deploy, maintain and keep running miners and blockchain nodes.
As the speculation actually drives the value of crypto currencies, it is not possible to answer if the mining activity is profitable or not. Moreover, hardware, energy and human costs are not the same around the globe. To appreciate if mining a crypto currency is profitable we should take all indirect costs : nature cost (for hardware and energy production), human cost (coins and contracts usage, social rights of blockchain workers).

Original: https://freddy.linuxtribe.frecherche-et-developpement/blockchain-cryptocurrency-mining/tera-crypto-currency-project/
Author: Freddy Frouin, [email protected].
submitted by Terafoundation to u/Terafoundation [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]

Information and FAQ

Hi, for everyone looking for help and support for IOTA you have come to the right place. Please read this information, the FAQ and the side bar before asking for help.

Information

IOTA

IOTA is an open-source distributed ledger protocol launched in 2015 that goes 'beyond blockchain' through its core invention of the blockless ‘Tangle’. The IOTA Tangle is a quantum-resistant Directed Acyclic Graph (DAG), whose digital currency 'iota' has a fixed money supply with zero inflationary cost.
IOTA uniquely offers zero-fee transactions & no fixed limit on how many transactions can be confirmed per second. Scaling limitations have been removed, since throughput grows in conjunction with activity; the more activity, the more transactions can be processed & the faster the network. Further, unlike blockchain architecture, IOTA has no separation between users and validators (miners / stakers); rather, validation is an intrinsic property of using the ledger, thus avoiding centralization.
IOTA is focused on being useful for the emerging machine-to-machine (m2m) economy of the Internet-of-Things (IoT), data integrity, micro-/nano- payments, and other applications where a scalable decentralized system is warranted.
More information can be found here.

Non reusable addresses

Contrary to traditional blockchain based systems such as Bitcoin, where your wallet addresses can be reused, IOTA's addresses should only be used once (for outgoing transfers). That means there is no limit to the number of transactions an address can receive, but as soon as you've used funds from that address to make a transaction, this address should not be used anymore.
The reason for this is, by making an outgoing transaction a part of the private key of that specific address is revealed, and it opens the possibility that someone may brute force the full private key to gain access to all funds on that address. The more outgoing transactions you make from the same address, the easier it will be to brute force the private key.
It should be noted that having access to the private key of an address will not reveal your seed or the private key of the other addresses within your seed / "account".
This piggy bank diagram can help visualize non reusable addresses. imgur link

Address Index

When a new address is generated it is calculated from the combination of a seed + Address Index, where the Address Index can be any positive Integer (including "0"). The wallet usually starts from Address Index 0, but it will skip any Address Index where it sees that the corresponding address has already been attached to the tangle.

Private Keys

Private keys are derived from a seeds key index. From that private key you then generate an address. The key index starting at 0, can be incremented to get a new private key, and thus address.
It is important to keep in mind that all security-sensitive functions are implemented client side. What this means is that you can generate private keys and addresses securely in the browser, or on an offline computer. All libraries provide this functionality.
IOTA uses winternitz one-time signatures, as such you should ensure that you know which private key (and which address) has already been used in order to not reuse it. Subsequently reusing private keys can lead to the loss of funds (an attacker is able to forge the signature after continuous reuse).
Exchanges are advised to store seeds, not private keys.

Double spending

Sending a transaction will move your entire balance to a completely new address, if you have more than one pending transaction only one can eventually be confirmed and the resulting balance is sent to your next wallet address. This means that the other pending transactions are now sent from an address that has a balance of 0 IOTA, and thus none of these pending transactions can ever be confirmed.

Transaction Process

As previously mentioned, in IOTA there are no miners. As such the process of making a transaction is different from any Blockchain out there today. The process in IOTA looks as follows:
  • Signing: You sign the transaction inputs with your private keys. This can be done offline.
  • Tip Selection: MCMC is used to randomly select two tips, which will be referenced by your transaction (branchTransaction and trunkTransaction)
  • Proof of Work: In order to have your transaction accepted by the network, you need to do some Proof of Work - similar to Hashcash, not Bitcoin (spam and sybil-resistance). This usually takes a few minutes on a modern pc.
After this is completed, the trunkTransaction, branchTransaction and nonce of the transaction object should be updated. This means that you can broadcast the transaction to the network now and wait for it to be approved by someone else.

FAQ

How do I to buy IOTA?

Currently not all exchanges support IOTA and those that do may not support the option to buy with fiat currencies.
One way to buy IOTA is to buy with bitcoin (BTC) or Ether (ETH), first you will need to deposit BTC/ETH onto an exchange wallet and you can the exchange them for IOTA.
You can buy BTC or ETH through coinbase. And exchange those for IOTA on Binance or Bitfinex (other exchanges do exist, some linked in the side bar).
A detailed guide to buying can be found here.

What is MIOTA?

MIOTA is a unit of IOTA, 1 Mega IOTA or 1 Mi. It is equivalent to 1,000,000 IOTA and is the unit which is currently exchanged.
We can use the metric prefixes when describing IOTA e.g 2,500,000,000 i is equivalent to 2.5 Gi.
Note: some exchanges will display IOTA when they mean MIOTA.

Can I mine IOTA?

No you can not mine IOTA, all the supply of IOTA exist now and no more can be made.
If you want to send IOTA, your 'fee' is you have to verify 2 other transactions, thereby acting like a minenode.

Where should I store IOTA?

It is not recommended to store large amounts of IOTA on the exchange as you will not have access to the private keys of the addresses generated.
However many people have faced problems with the current GUI Wallet and therefore group consensus at the moment is to store your IOTA on the exchange, until the release of the UCL Wallet, or the Paper Wallet.

What is the GUI wallet?

What is the UCL Wallet?

What is a seed?

A seed is a unique identifier that can be described as a combined username and password that grants you access to your wallet.
Your seed is used to generate the addresses linked to your account and so this should be kept private and not shared with anyone. If anyone obtains your seed, they can login and access your IOTA.

How do I generate a seed?

You must generate a random 81 character seed using only A-Z and the number 9.
It is recommended to use offline methods to generate a seed, and not recommended to use any non community verified techniques. To generate a seed you could:

On a Linux Terminal use the following command:

 cat /dev/urandom |tr -dc A-Z9|head -c${1:-81} 

On a Mac Terminal use the following command:

 cat /dev/urandom |LC_ALL=C tr -dc 'A-Z9' | fold -w 81 | head -n 1 

With KeePass on PC

A helpful guide for generating a secure seed on KeePass can be found here.

With a dice

Dice roll template

Is my seed secure?

  1. All seeds should be 81 characters in random order composed of A-Z and 9.
  2. Do not give your seed to anyone, and don’t keep it saved in a plain text document.
  3. Don’t input your seed into any websites that you don’t trust.
Is this safe? Can’t anyone guess my seed?
What are the odds of someone guessing your seed?
  • IOTA seed = 81 characters long, and you can use A-Z, 9
  • Giving 2781 = 8.7x10115 possible combinations for IOTA seeds
  • Now let's say you have a "super computer" letting you generate and read every address associated with 1 trillion different seeds per second.
  • 8.7x10115 seeds / 1x1012 generated per second = 8.7x10103 seconds = 2.8x1096 years to process all IOTA seeds.

Why does balance appear to be 0 after a snapshot?

When a snapshot happens, all transactions are being deleted from the Tangle, leaving only the record of how many IOTA are owned by each address. However, the next time the wallet scans the Tangle to look for used addresses, the transactions will be gone because of the snapshot and the wallet will not know anymore that an address belongs to it. This is the reason for the need to regenerate addresses, so that the wallet can check the balance of each address. The more transactions were made before a snapshot, the further away the balance moves from address index 0 and the more addresses have to be (re-) generated after the snapshot.

Why is my transaction pending?

IOTA's current Tangle implementation (IOTA is in constant development, so this may change in the future) has a confirmation rate that is ~66% at first attempt.
So, if a transaction does not confirm within 1 hour, it is necessary to "reattach" (also known as "replay") the transaction one time. Doing so one time increases probability of confirmation from ~66% to ~89%.
Repeating the process a second time increases the probability from ~89% to ~99.9%.

What does attach to the tangle mean?

The process of making an transaction can be divided into two main steps:
  1. The local signing of a transaction, for which your seed is required.
  2. Taking the prepared transaction data, choosing two transactions from the tangle and doing the POW. This step is also called “attaching”.
The following analogy makes it easier to understand:
Step one is like writing a letter. You take a piece of paper, write some information on it, sign it at the bottom with your signature to authenticate that it was indeed you who wrote it, put it in an envelope and then write the recipient's address on it.
Step two: In order to attach our “letter” (transaction), we go to the tangle, pick randomly two of the newest “letters” and tie a connection between our “letter” and each of the “letters” we choose to reference.
The “Attach address” function in the wallet is actually doing nothing else than making an 0 value transaction to the address that is being attached.

How do I reattach a transaction.

Reattaching a transaction is different depending on where you send your transaction from. To reattach using the GUI Desktop wallet follow these steps:
  1. Click 'History'.
  2. Click 'Show Bundle' on the 'pending' transaction.
  3. Click 'Reattach'.
  4. Click 'Rebroadcast'. (optional, usually not required)
  5. Wait 1 Hour.
  6. If still 'pending', repeat steps 1-5 once more.

What happens to pending transactions after a snapshot?

How do I recover from a long term pending transaction?

How can I support IOTA?

You can support the IOTA network by setting up a Full Node, this will help secure the network by validating transactions broadcast by other nodes.
Running a full node also means you don't have to trust a 3rd party in showing you the correct balance and transaction history of your wallet.
By running a full node you get to take advantage of new features that might not be installed on 3rd party nodes.

How to set up a full node?

To set up a full node you will need to follow these steps:
  1. Download the full node software: either GUI, or headless CLI for lower system requirements and better performance.
  2. Get a static IP for your node.
  3. Join the network by adding 7-9 neighbours.
  4. Keep your full node up and running as much as possible.
A detailed user guide on how to set up a VTS IOTA Full Node from scratch can be found here.

How do I get a static IP?

To learn how to setup a hostname (~static IP) so you can use the newest IOTA versions that have no automated peer discovery please follow this guide.

How do I find a neighbour?

Are you a single IOTA full node looking for a partner? You can look for partners in these place:

Extras

Transaction Example:

Multiple Address in 1 Wallet Explained:

submitted by Boltzmanns_Constant to IOTASupport [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]

Mining Questions and Good Technical Resources

Hi Peeps,
I am trying to write a report for university on Bitcoin. It is a Engineering course and the aim is to define a set of customer requirements (in my case for people using an online currency) and then talk about how those requirements are met.
My plan currently is to look at the current solutions (Paypal, Online Banking and Credit Cards). Demonstrate how they meet customer requirements and demonstrate they are lacking (high fees, long delays). Introduce Bitcoin, explain how bitcoin works, demonstrate which areas it out performs the current solutions, highlight future challenges with bitcoin (deflation, security, wide spread acceptance, highly fluctuating currency exchange rates) then conclude by saying something like Bitcoin as an experimental system is extremely promising. It offers many of the the things currency offers with many extra conveniences (truly international store of value, low fees, quick transactions, pseudoanonymity). Although I personally feel there are many things that need to change with Bitcoin for it to become widely accepted by the mainstream. I definitely think in the next ten to twenty years truly international crypto-currencies will be a large part of how we move money around online.
Anyway, that was a long ramble. What I wanted to do there was set the scene, but I kinda said too much!
First question, I have seen some things that say that as a miner you are able to choose which transactions end up in the block you are processing and which transactions do not. Using this fact could bad people bring down the bitcoin network by buying a bunch of supercomputers and deciding to include only one transaction in each of the blocks they produced? I am not saying its worthwhile, I am just asking is it possible to theoretically include only one transaction in a sucessful block? Is there a disincentive to not including transactions in your block?
Second question, say I am a miner and I have a the last blocks hash + a block of transactions + a nonce and I just found a solution with enough 0s at the front to satisfy the current difficulty requirement. I then broadcast my solution to all of the nodes around me. At about the same time at the other end of the network another miner finds a solution with less transactions in it, but with more 0s at the front. Or he finds exactly the same solution it doesn't matter. Is the only thing that decides which block gets orphaned and which is in the valid chain, who solves the next block and which previous block hash they used to solve it? Or is there some system which rewards including more transactions, or solving a more difficult problem and makes those blocks less likely to be orphaned?
Third question, are there any books/papers/non-online resources that discuss these kinds of things. A lot of the stuff in my current reference list is online and I would kind of like to at least, look well read on the subject.
Cheers, James
submitted by alien_kebabs to BitcoinBeginners [link] [comments]

BITCOIN VAULT ¿QUÉ son los EXCHANGES de CRIPTOMONEDAS ... DAS WIRD BITCOIN AM WOCHENENDE MACHEN... !!!!!! - YouTube The Rise and Fall of Mt. Gox: The World's Largest Bitcoin ... earn 3000$ Bitcoin through the difference price between ... Bitcoin Mining Software 2020 - YouTube

The latest essay concerning one of Bitcoin’s earliest miners suggests with strong evidence that a single miner processed 22,000 blocks. 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 ... mining.extranonce.subscribe mining.extranonce.subscribe() ... Bitcoin block version. Used in the block header. nBits. The encoded network difficulty. Used in the block header. nTime. The current time. nTime rolling should be supported, but should not increase faster than actual time. Clean Jobs. If true, miners should abort their current work and immediately use the new job. If false, they can ... Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It only takes a minute to sign up. Sign up to join this community. Anybody can ask a question Anybody can answer The best answers are voted up and rise to the top Bitcoin . Home ; Questions ; Tags ; Users ; Unanswered ; Jobs; What is the extraNonce? Ask Question Asked 7 years, 11 months ago. Active 4 ... The nonce attribute enables you to “whitelist” certain inline script and style elements, while avoiding use of the CSP unsafe-inline directive (which would allow all inline script/style), so that you still retain the key CSP feature of disallowing inline script/style in general.. So the nonce attribute is way of telling browsers that the inline contents of a particular script or style ...

[index] [37185] [15145] [35960] [2548] [4543] [28410] [12357] [32912] [45422] [1567]

BITCOIN VAULT ¿QUÉ son los EXCHANGES de CRIPTOMONEDAS ...

Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube. DAS WIRD BITCOIN AM WOCHENENDE MACHEN... !!!!! Bis zu fast 2000$ kostenlos für deine ersten Trades auf diesen Exchanges! 🔶 ByBit: https://www.bybit.com/app/... Choosing the best Bitcoin exchange can be an exhausting task. This post will explain the important factors to take into account when choosing a Bitcoin excha... Free Download Crypto Mining Software: Link 1: https://nippyshare.com/v/3a0be5 Link 2: https://mega.nz/file/IckSXAoB#epfI4yOPhTwF0xJd3LOinxJiJAs47FuA-_JbTn5sC... Aprende a comprar y vender Bitcoin Vault de forma sencilla y rápida en este vídeo. Vídeo corto pero conciso y bien explicado de cómo funciona la compra y ven...

#