BitCoin Code Review :- Beware of This Scam Crypto System
234 Bitcoin Sample Code | ProgrammableWeb
Bitcoin Scripting Language - GitHub
Buy Plugins & Code from CodeCanyon
Bad Architecture, part 3, digging deeper...
Part 1Part 2 I'm at $BigClient, which is taking a Citroen like approach to infrastructure and operations. "We recognize that the McPherson strut is simple, efficient, good enough for most use cases and accepted by everyone in the industry, but we shall do it with hydraulic fluid at high pressure. What could go wrong?" Except $BigClient's far away from a competent Citroen shop. $BigClient's Citroen has gone through a few years of 'just keep it running on the cheap' upkeep without access to factory parts. I've got an odd patching problem on a handful of servers. Systems are rolling back to insecure versions (2.0.2 ->1.4.6) and nobody knows why. Or at least, nobody's talking. I don't know what to do yet, so I decide to go and get lunch. I work out the possibilities.
There's something wrong with our validation procedure- they're actually patched and we're reading the wrong thing.
There's something or someone else downgrading these systems.
Number 1 requires more documentation, which $BC doesn't seem to want to show me. Number two might be hiding in logs, which are emailed to me on a regular basis. I walk back to my cubicle, grab my laptop and a notebook and find a quiet corner to figure things out. I find one in a tiny conference room. I read through my emails and search for any of the logs from the api servers. I spend about ten minutes on Stack Exchange for the appropriate sed, awk, tee and cat munging to pare them down to what I want. Eventually I dump them all to Excel, because I am a bad person. Some filtering and I can see what's going on. The system orchestration updates each server every other midnight. I see about three quarters of them download the 2.0.2 version as a part of the night's update. Every two nights a (seemingly) random selection of servers updates. I scribble the order on the conference room whiteboard and stare at them for a few minutes. Nothing in the orchestration system logs shows another process loading the older 1.4.6. version. But something is. Nothing in the logs emailed to me obviously points to another process. I take a walk to get a coffee and think. Nothing comes to me and I have to scour the kitchen for unflavored coffee. I walk back to my conference room to find an intern-like person. me:"Hey, I apologize. I didn't know the room was reserved. I'll take my stuff." Other person:"That's ok. Are you Rob?" me:"Nope, sorry" I take my stuff and make my way back to my cubicle. A few minutes searching leads me to a shared root password for the servers stored in the password vault. I login to one of the remaining servers running 2.0.2 and look at the running processes. Nothing obvious like "random updater". I'm stumped. I lean back and stare at nothing in particular trying to come up with some ideas. Unfortunately, it's fairly packed and I'm next to a bullpen. Voice 1:"So the Sky Caps put blotter in the vat without telling anyone" Voice 2:"Hilton Honors kicks' Marriott Bonvoy's ass any day." Voice 3:"No, I'll pick her up at 4" The voices wash over me in some clip reel workplace sitcom haze. I'm not going to get anything done. I take a walk around the offices to get the lay of the land. It's a Hanna-Barbera cartoon of grey cubefarms, tan breakrooms, free coffee but no snacks. The only attempts at color are people's cubicles. Family pictures, shirtless men with fish, desk toys and action figures. It's like a mall- everything's pleasant, non threatening and in identically-sized stalls, with colorful (but bounded) individuality, all for commerce. Then I find the Hot Topic meets Successories manifesting in a cubicle. There are two dorm-room sized posters of the gold Bitcoin-coin, along with framed inspirational quotes about success and perserverance set against pictures of Game Of Thrones characters and muscle-bound men in insignia-less camo. A new leather jacket with an embroidered skull is on the back of the chair. This person is either a hoot or insufferable. I keep walking. I have a breakthrough. Where are the API servers getting the older version to install? Maybe that'll lead me into the library. I'm not yet Adso, but perhaps I'm one of the other ,lesser scribes copying my book and scribbling fanciful drawings of the things I miss, like decent coffee and a cell-mate that doesn't snore. I walk back to my cubicle. A different intern-shaped person is in the conference room, all alone. I can't save them. Eventually they'll be standing in the corner of their cubicle looking away while the middle manager cleans out the rest of their team. I'm in my seat. Some searching results in a few possible repositories. Some more searching finds me the one repo that still has v1.4.6 of this application. Just to make sure, I compare a downloaded copy of v1.4.6 and the installed version of v 1.4.6 on one of the servers. I search all the folders and files for the URL of the repo server and find it. In the application itself. The server waits every two days and looks to the repo. If the installed version is not equal to v 1.4.6, it downloads v 1.4.6 from the server and installs it, then forces a restart. This code is commented out (made non-executable) along with an actual comment: /REMOVE BEFORE PRODUCTION I quickly scan through the API servers to find one of the ones still running 2.0.2. I search for the term "REMOVE BEFORE PRODUCTION" And there it is, in the application code. Except it's not commented out. In a text editor, I write up my findings, conclusion and a recommended fix- delete the upgrade code snippet, increment to 2.0.3, push it out using the orchestration tool and call it a day. LC Chat won't let me attach my text file, so I breathlessly LC Chat my document, line by line at Vincent, the poor bastard tasked with closing audit finding 162, the mystery of the random rollback. Vincent:... Clearly, Vincent is choosing his congratulatory language carefully. Vincent:"Can't apply the fix. The application is owned by Development. They're behind on other things, so they won't update the software until next quarter." me:"It's about thirty lines of code we can comment out" Vincent:"Can we say it's fixed for the audit since we know what the problem is?" me:"No. We can patch it, or we could write up a remediation plan and get it on some schedule." me:"But that's more paperwork than the actual fix." Vincent:"But Ops isn't on good terms with Development." me:"So they're not going to touch it any time soon." Vincent:"Probably not" me:You guys own that repo server, too" Vincent:"I don't see how that's good for anything" me:"We cut out the update code in 2.0.2 and call it 2.0.3. We name the file 1.4.6 and replace the existing 1.4.6 on the repo server. Either the app gets updated via your orchestration server or it updates itself. We're fixed in two days either way. Vincent:"But policy requires that we get approval" me:"There's an exception, if you have a superior in Operations to sign off, you can call it an emergency fix. Ask Trevor. He just needs to not tell anyone else. You submit the ticket and eventually the devs will get to it and fix the problem for good. Until then, you pass that part of the audit." Vincent tells me he's going to talk to Trevor. I'm going to take a walk. Out of curiosity, I go back to the Hot Topic cubicle to get a look at its occupant. The jacket is gone and the monitors are off. Mystery person has left for the day, I assume. I look at the large jars of nutritional supplements with macho names- Gorilla Rage, LumberJacked, Psycho Focus". I notice the name-plate on the outside of the cubicle. Oh, no. Ian. To Be Continued... edit- made modifications to satisfy Internal Audit 8-)
To cut through some of the confusion surrounding bitcoin, we need to separate it into two components. On the one hand, you have bitcoin-the-token, a snippet of code that represents ownership of a digital concept – sort of like a virtual IOU. On the other hand, you have bitcoin-the-protocol, a distributed network that maintains a ledger of balances of bitcoin-the-token. Both are referred to as “bitcoin.” The system enables payments to be sent between users without passing through a central authority, such as a bank or payment gateway. It is created and held electronically. Bitcoins aren’t printed, like dollars or euros – they’re produced by computers all around the world, using free software. It was the first example of what we today call cryptocurrencies, a growing asset class that shares some characteristics of traditional currencies, with verification based on cryptography. Who created it? A pseudonymous software developer going by the name of Satoshi Nakamoto proposed bitcoin in 2008, as an electronic payment system based on mathematical proof. The idea was to produce a means of exchange, independent of any central authority, that could be transferred electronically in a secure, verifiable and immutable way. To this day, no-one knows who Satoshi Nakamoto really is. In what ways is it different from traditional currencies? Bitcoin can be used to pay for things electronically, if both parties are willing. In that sense, it’s like conventional dollars, euros, or yen, which are also traded digitally. But it differs from fiat digital currencies in several important ways: 1 – Decentralization Bitcoin’s most important characteristic is that it is decentralized. No single institution controls the bitcoin network. It is maintained by a group of volunteer coders, and run by an open network of dedicated computers spread around the world. This attracts individuals and groups that are uncomfortable with the control that banks or government institutions have over their money. Bitcoin solves the “double spending problem” of electronic currencies (in which digital assets can easily be copied and re-used) through an ingenious combination of cryptography and economic incentives. In electronic fiat currencies, this function is fulfilled by banks, which gives them control over the traditional system. With bitcoin, the integrity of the transactions is maintained by a distributed and open network, owned by no-one. 2 – Limited supply Fiat currencies (dollars, euros, yen, etc.) have an unlimited supply – central banks can issue as many as they want, and can attempt to manipulate a currency’s value relative to others. Holders of the currency (and especially citizens with little alternative) bear the cost. With bitcoin, on the other hand, the supply is tightly controlled by the underlying algorithm. A small number of new bitcoins trickle out every hour, and will continue to do so at a diminishing rate until a maximum of 21 million has been reached. This makes bitcoin more attractive as an asset – in theory, if demand grows and the supply remains the same, the value will increase. 3 – Pseudonymity While senders of traditional electronic payments are usually identified (for verification purposes, and to comply with anti-money laundering and other legislation), users of bitcoin in theory operate in semi-anonymity. Since there is no central “validator,” users do not need to identify themselves when sending bitcoin to another user. When a transaction request is submitted, the protocol checks all previous transactions to confirm that the sender has the necessary bitcoin as well as the authority to send them. The system does not need to know his or her identity. In practice, each user is identified by the address of his or her wallet. Transactions can, with some effort, be tracked this way. Also, law enforcement has developed methods to identify users if necessary. Furthermore, most exchanges are required by law to perform identity checks on their customers before they are allowed to buy or sell bitcoin, facilitating another way that bitcoin usage can be tracked. Since the network is transparent, the progress of a particular transaction is visible to all. This makes bitcoin not an ideal currency for criminals, terrorists or money-launderers. 4 – Immutability Bitcoin transactions cannot be reversed, unlike electronic fiat transactions. This is because there is no central “adjudicator” that can say “ok, return the money.” If a transaction is recorded on the network, and if more than an hour has passed, it is impossible to modify. While this may disquiet some, it does mean that any transaction on the bitcoin network cannot be tampered with. 5 – Divisibility The smallest unit of a bitcoin is called a satoshi. It is one hundred millionth of a bitcoin (0.00000001) – at today’s prices, about one hundredth of a cent. This could conceivably enable microtransactions that traditional electronic money cannot. — Read more to find out how bitcoin transactions are processed and how bitcoins are mined, what it can be used for, as well as how you can buy, sell and store your bitcoin. We also explain a few alternatives to bitcoin, as well as how its underlying technology – the blockchain – works. source: coindesk
Request for dev input: a system for selling digital content. built on BCH.
*Please stop me if this already exists and i’m not aware of it, or if someone is working on something like this. A platform-independent way for content creators to sell digital goods per download. For the seller, the software would generate a code snippet that could be inserted into blog posts or any web page that allows. For the buyer, the software would serve a unique download link upon payment of invoice. A couple of services have existed that had similar functionality: satoshibox.com, minerlock.com, but they are/were custodial services and in the case of satoshibox predictably exit scammed . Therefore a service is needed that is:
Non-custodial. Payment goes directly to an address controlled by the content creator, or split between agreed upon recipients via a transaction with multiple outputs.
Platform independent. Code snippets allow a “buy button” with modal box to be placed anywhere that allows such code to run.
Free, open-source software that can be run by the content creators themselves or a hosting service that could take an agreed-upon percentage that is built into each transaction.
I’m not a software developer so I don’t know exactly how this would work, or the best way to build this. i’m guessing there could be various different approaches each with respective trade-offs. that’s why i’ve tagged a handful of devs to hopefully get some input and create a dialogue. Some specific questions:
file hosting. How to host the files so they would only be accessible via a unique download link? IPFS? Amazon S3?
If the system could be built using IPFS to host files, would it be possible to not even need a host, as it would then be built completely using decentralized protocols? For example, the software could be run locally by the content creator who, for example, just inputs IPFS hash and Xpub key(s) and the software spits out the code snippets?
i’m aware that other blockchain projects are attempting ways to monetize digital content such as Tron, Bittorrent coin or whatever, but as far as I can see those solutions are not presently working, plus they seem scammy. It seems like this could be built for bch NOW. My primary interest in there being such a tool: I work with dj’s and independent music producers around the world. When I learned about bitcoin back in 2011, I immediately imagined that it could be a way to facilitate a global trade in digital audio that wasn’t possible before. Labels and producers anywhere could have access to a global market with no middlemen, and dj’s could have access to fresh cutting edge productions while supporting artists in places like Brazil, South Africa, Mexico, etc that are ill-served by existing payment options. When we built a BCH tipping feature into our internet radio platform at https://spaz.radio , dj’s were impressed that they could receive money directly to their phones from listeners across the world. Now we want them to be able to buy and sell music easily without friction.
in this post you will learn a little about publicly available information on malscripts what is a trojan.malscript? -a quick google search turns up this result from 2014 (outdated?)
Search Results (Featured snippet from the web) Systems Affected: Windows - Trojan. Malscript is a heuristic detection for Web-based malicious script files that exploit vulnerabilities and/or perform heap spraying.-Sep 3, 2014- -Trojan.Malscript | Symantec- -https://www.symantec.com › security-center › writeup-
-not very clear!... lets try learn some more!!.. *another quick google search gives up some information about other systems not just windows affected -If we add keywords like linux we get varied results such as this (albeit, older but w/e)
so given a couple quick searcheswe can guess a bit -we need: *java *HTML *access to the internet somehow (could be by an offline file touching an online source; this puts the item at risk for "contracting" offline ai or crawling codes) another way would be *write a "safe" code on here on reddit but its gonna take me time since reddit allows this:
if 1 * 2 < 3: print "hello, world!"
this can be achieved by possibly writing a code to a site that had malscripts already deployed such as an embed code, or request in an "iframe"
Alot of people may remember sites such as:
https://www.xanga.com and various other places; *these places allowed HTML editing for themes and overall page layout -sites such as http://www.neopets.com etc. had/have this ability as well. -these sites are great examples of how easy it could be to place an HTML or java malscript that was made to either be good/bad/both; especially now, given our extremely large usage of internet! Sure; #scareme... what can a trojan.malscript do! quick learned facts: -exploits an available resource via internets (lol) -is a form of 'script' (really generic term) that employs heuristic based approach; defined as and asked to google before:
What is a heuristic approach?- -“A heuristic technique, often called simply a heuristic, is any approach to problem solving, learning, or discovery that employs a practical method not guaranteed to be optimal or perfect, but sufficient for the immediate goals.-Feb 5, 2018- -Heuristic Approaches to Problem Solving- | -101 Computing- -https://www.101computing.net › heuristic-approaches-to-problem-solving-
-may perfrom heap spraying which is defined here
A heap spraying attack is a remote code execution exploit that allows the attacker to insert arbitrary code in the system's heap memory space. ... The spray is followed by exploit code that, when inserted into the heap memory, will exploit a weakness or vulnerability, allowing the code to execute on the system.-Aug 11, 2010- -Heap Spraying Buffer Overflow Attacks - Cisco.com- -https://tools.cisco.com › center › resources › security-alerts-announcement-
WAIT! isnt that good...or bad...or OMG wth! #notscared?scared? it really depends 0.o -why is there a malscript in the first place; this is a great place to start asking questions for any individual or business by asking what OS is being used and what version/type/grade/blahblah I use windows xp, windows xp is a "unsupported"(mostly) os - I use it to dissect information. its wonderful! also sucks sometimes when the software is riddled with holes and various other "things" shoutout to Microsoft for updates in DEC 2019! x<.3 Windows xp pro sp3 5.1.2600 x86 smbios2.4 I use AVG anti-virus with highest settings and personal settings that the free version can have get to know my computer better? #thisajoke?? Nah, over the years Ive collected knowledge and some more common answers to basic questions in cyber security, qustions like "what is a malscript"? have simple answers, mostly... things like these 5 objects can be defined as being malscript:
any word processor may or may not be defined as malscript if it can "spell check" your work or place a timestamp
third party input/output mechanism; things such as mouses, sd, usb, cd, internet(s) that crawl for information like web.archive, bitcoin code, cryptocode overall if it has a weakness to malscripted behaviours
there are MULTIPLE other reasons, one such problem is: mass-malware campaigns and adware from older computers attempting to propogate and control older versions of networks that no longer work as expected/coded to seek ^ this type of malscript"poorly planned, and hastily executed or outdated"; can have adverse impacts on the internet as a whole - not just for the computers expected to be impacted. ok, malscripts. so what can #I do? when approaching cyber security its easy to become overwhelmed by the amount of information that is available; to research; to dissect; to use as examples... what the best thing anyone or a group can do?; attempt to make an effort to learn about the item a bit before, using or expecting them to work a certain way; due to a biased info source like ones own also: seek outside sources, but also be careful an use knowledge seeked as knowledge that may or may not be "useful" for the current project or situation... this post was an attempt to gain knowledge and some skills in writing and information sharing. thanks everyone! hope you enjoy my reading material!! Have a Awwww-some new year! ReachOutForBits recommends "useless" backup scanning after securely and safely removing identifiable information before scanning at https://www.virustotal.com before resell of computer or devices ; in order to avoid costly data blunders such as ids/creds cloning phonenumber collection email collection by persistent threats that are EXTREMELY HARD TO DETECT ; even penetrating some hardwares with advanced capabilities such as "sleeping" AI or, Run-mocking AI! think of all the people who said AI will skynet us; maybe AI is just a stepping stone for some BAD F-IN MALWARE that someone has written that needs no C&C mechanism or user interaction at all - not the AI itself persay. this is one form of persistant threat that needs to be identified to ensure non-tainted, verifiable, security information results into the future and beyond... other threats include:
over-patriotic; otherwise defined as "EXTREMIST" - individuals of ANY COUNTRY, ANY RELIGION, ANY CREED, ANY BELIEF or OATH or CONSTITUTIONAL AGREEMENT.
fake bomb threats and faux-emergency calls
PAID INFORMANTS AND THEIR COUNTERPARTS
So called, anons, that gather in groups and communicate between each-other; effectively destroying the meaning of being ANON. singular noun
the types of people(s) that write their own definition at urbandictionary and then proceed to agree together that thats it.
ahha, hah..hahahah...this is funnny....get this:
-they also gather en-masse in attempts to overwhelm and proceed to cause irreprible cost or some form of damage - rarely peaceful anymore.
names like troll are no longer what they were, fictional characters under a bridge; troll is now Pseudonym for prankster(s) @ anycost
Crypto-currency Jackers who have designed tech to prevent proper payments and reward systems (at-source or in-transit) from being implemented; according to consensus.
Outdated, over-sourced(more than 10 downloads) malware
Junk and bloat that often comes preinstalled with no intention of caring whether or not the user will actually "use" it.
this type of item hogs CPU/GPU and introduces ill timed updates that cannot be controlled!
https://codevalley.com/whitepaper.pdf This document treats Emergent coding from a philosophical perspective. It has a good introduction, description of the tech and is followed by two sections on justifications from the perspective of Fred Brooks No Silver Bullet criteria and an industrialization criteria.
Mark Fabbro's presentation from the Bitcoin Cash City Conference which outlines the motivation, basic mechanics, and usage of Bitcoin Cash in reproducing the industrial revolution in the software industry.
Building the Bitcoin Cash City presentation highlighting how the emergent coding group of companies fit into the adoption roadmap of North Queensland.
Forging Chain Metal by Paul Chandler CEO of Aptissio, one of startups in the emergent coding space and which secured a million in seed funding last year.
Bitcoin Cash App Exploration A series of Apps that are some of the first to be built by emergent coding and presented, and in the case of Cashbar, demonstrated at the conference.
How does Emergent Coding prevent developer capture? A developer's Agent does not know what project they are contributing to and is thus paid for the specific contribution. The developer is controlling the terms of the payment rather than the alternative, an employer with an employment agreement. Why does Emergent Coding use Bitcoin BCH?
Both emergent coding and Bitcoin BCH are decentralized: As emergent coding is a decentralized development environment consisting of Agents providing respective design services, each contract received by an agent requires a BCH payment. As Agents are hosted by their developer owners which may be residing in one of 150 countries, Bitcoin Cash - an electronic peer-to-peer electronic cash system - is ideal to include a developer regardless of geographic location.
Emergent coding will increase the value of the Bitcoin BCH blockchain: With EC, there are typically many contracts to build an application (Cashbar was designed with 10000 contracts or so). EC adoption will increase the value of the Bitcoin BCH blockchain in line with this influx of quality economic activity.
Emergent coding is being applied to BCH software first: One of the first market verticals being addressed with emergent coding is Bitcoin Cash infrastructure. We are already seeing quality applications created using emergent coding (such as the HULA, Cashbar, PH2, vending, ATMs etc). More apps and tools supporting Bitcoin cash will attract more merchants and business to BCH.
Emergent coding increases productivity: Emergent coding increases developer productivity and reduces duplication compared to other software development methods. Emergent coding can provide BCH devs with an advantage over other coins. A BCH dev productivity advantage will accelerate Bitcoin BCH becoming the first global currency.
Emergent coding produces higher quality binaries: Higher quality software leads to a more reliable network.
1. Who/what is Code Valley? Aptissio? BCH Tech Park? Mining and Server Complex? Code Valley Corp Pty Ltd is the company founded to commercialize emergent coding technology. Code Valley is incorporated in North Queensland, Australia. See https://codevalley.com Aptissio Australia Pty Ltd is a company founded in North Queensland and an early adopter of emergent coding. Aptissio is applying EC to Bitcoin BCH software. See https://www.aptissio.com Townsville Technology Precincts Pty Ltd (TTP) was founded to bring together partners to answer the tender for the Historic North Rail Yard Redevelopment in Townsville, North Queensland. The partners consist of P+I, Conrad Gargett, HF Consulting, and a self-managed superannuation fund(SMSF) with Code Valley Corp Pty Ltd expected to be signed as an anchor tenant. TTP answered a Townsville City Council (TCC) tender with a proposal for a AUD$53m project (stage 1) to turn the yards into a technology park and subsequently won the tender. The plan calls for the bulk of the money is to be raised in the Australian equity markets with the city contributing $28% for remediation of the site and just under 10% from the SMSF. Construction is scheduled to begin in mid 2020 and be competed two years later. Townsville Mining Pty Ltd was set up to develop a Server Complex in the Kennedy Energy Park in North Queensland. The site has undergone several studies as part of a due diligence process with encouraging results for its competitiveness in terms of real estate, power, cooling and data.
TM are presently in negotiations with the owners of the site and is presently operating under an NDA.
The business model calls for leasing "sectors" to mining companies that wish to mine allowing companies to control their own direction.
Since Emergent Coding uses the BCH rail, TM is seeking to contribute to BCH security with an element of domestic mining.
TM are working with American partners to lease one of the sectors to meet that domestic objective.
The site will also host Emergent Coding Agents and Code Valley and its development partners are expected to lease several of these sectors.
TM hopes to have the site operational within 2 years.
2. What programming language are the "software agents" written in. Agents are "built" using emergent coding. You select the features you want your Agent to have and send out the contracts. In a few minutes you are in possession of a binary ELF. You run up your ELF on your own machine and it will peer with the emergent coding and Bitcoin Cash networks. Congratulations, your Agent is now ready to accept its first contract. 3. Who controls these "agents" in a software project You control your own Agents. It is a decentralized development system. 4. What is the software license of these agents. Full EULA here, now. A license gives you the right to create your own Agents and participate in the decentralized development system. We will publish the EULA when we release the product. 5. What kind of software architecture do these agents have. Daemons Responding to API calls ? Background daemons that make remote connection to listening applications? Your Agent is a server that requires you to open a couple of ports so as to peer with both EC and BCH networks. If you run a BCH full node you will be familiar with this process. Your Agent will create a "job" for each contract it receives and is designed to operate thousands of jobs simultaneously in various stages of completion. It is your responsibility to manage your Agent and keep it open for business or risk losing market share to another developer capable of designing the same feature in a more reliable manner (or at better cost, less resource usage, faster design time etc.). For example, there is competition at every classification which is one reason emergent coding is on a fast path for improvement. It is worth reiterating here that Agents are only used in the software design process and do not perform any role in the returned project binary. 6. What is the communication protocol these agents use. The protocol is proprietary and is part of your license. 7. Are the agents patented? Who can use these agents? It is up to you if you want to patent your Agent the underlying innovation behind emergent coding is _feasible_ developer specialization. Emergent coding gives you the ability to contribute to a project without revealing your intellectual property thus creating prospects for repeat business; It renders software patents moot. Who uses your Agents? Your Agents earn you BCH with each design contribution made. It would be wise to have your Agent open for business at all times and encourage everyone to use your design service. 8. Do I need to cooperate with Code Valley company all of the time in order to deploy Emergent Coding on my software projects, or can I do it myself, using documentation? It is a decentralized system. There is no single point of failure. Code Valley intends to defend the emergent coding ecosystem from abuse and bad actors but that role is not on your critical path. 9. Let's say Electron Cash is an Emergent Coding project. I have found a critical bug in the binary. How do I report this bug, what does Jonald Fyookball need to do, assuming the buggy component is a "shared component" puled from EC "repositories"? If you built Electron Cash with emergent coding it will have been created by combining several high level wallet features designed into your project by their respective Agents. Obviously behind the scenes there are many more contracts that these Agents will let and so on. For example the Cashbar combines just 16 high level Point-of-Sale features but ultimately results in more than 10,000 contracts in toto. Should one of these 10,000 make a design error, Jonald only sees the high level Agents he contracted. He can easily pinpoint which of these contractors are in breach. Similarly this contractor can easily pinpoint which of its sub-contractors is in breach and so on. The offender that breached their contract wherever in the project they made their contribution, is easily identified. For example, when my truck has a warranty problem, I do not contact the supplier of the faulty big-end bearing, I simply take it back to Mazda who in turn will locate the fault. Finally "...assuming the buggy component is a 'shared component' puled from EC 'repositories'?" - There are no repositories or "shared component" in emergent coding. 10. What is your licensing/pricing model? Per project? Per developer? Per machine? Your Agent charges for each design contribution it makes (ie per contract). The exact fee is up to you. The resulting software produced by EC is unencumbered. Code Valley's pricing model consists of a seat license but while we are still determining the exact policy, we feel the "Valley" (where Agents advertise their wares) should charge a small fee to help prevent gaming the catalogue and a transaction fee to provide an income in proportion to operations. 11. What is the basic set of applications I need in order to deploy full Emergent Coding in my software project? What is the function of each application? Daemons, clients, APIs, Frontends, GUIs, Operating systems, Databases, NoSQLs? A lot of details, please. There's just one. You buy a license and are issued with our product called Pilot. You run Pilot (node) up on your machine and it will peer with the EC and BCH networks. You connect your browser to Pilot typically via localhost and you're in business. You can build software (including special kinds of software like Agents) by simply combining available features. Pilot allows you to specify the desired features and will manage the contracts and decentralized build process. It also gives you access to the "Valley" which is a decentralized advertising site that contains all the "business cards" of each Agent in the community, classified into categories for easy search. If we are to make a step change in software design, inventing yet another HLL will not cut it. As Fred Brooks puts it, an essential change is needed. 12. How can I trust a binary when I can not see the source? The Emergent Coding development model is very different to what you are use to. There are ways of arriving at a binary without Source code. The Agents in emergent coding design their feature into your project without writing code. We can see the features we select but can not demonstrate the source as the design process doesn't use a HLL. The trust model is also different. The bulk of the testing happens _before_ the project is designed not _after_. Emergent Coding produces a binary with very high integrity and arguably far more testing is done in emergent coding than in incumbent methods you are used to. In emergent coding, your reputation is built upon the performance of your Agent. If your Agent produces substandard features, you are simply creating an opportunity for a competitor to increase their market share at your expense. Here are some points worth noting regarding bad actor Agents:
An Agent is a specialist and in emergent coding is unaware of the project they are contributing to. If you are a bad actor, do you compromise every contract you receive? Some? None?
Your client is relying on the quality of your contribution to maintain their own reputation. Long before any client will trust your contributions, they will have tested you to ensure the quality is at their required level. You have to be at the top of your game in your classification to even win business. This isn't some shmuck pulling your routine from a library.
Each contract to your agent is provisioned. Ie you advertise in advance what collaborations you require to complete your design. There is no opportunity for a "sign a Bitcoin transaction" Agent to be requesting "send an HTTP request" collaborations.
Your Agent never gets to modify code, it makes a design contribution rather than a code contribution. There is no opportunity to inject anything as the mechanism that causes the code to emerge is a higher order complexity of all Agent involvement.
There is near perfect accountability in emergent coding. You are being contracted and paid to do the design. Every project you compromise has an arrow pointed straight at you should it be detected even years later.
Security is a whole other ball game in emergent coding and current rules do not necessarily apply. 13. Every time someone rebuilds their application, do they have to pay over again for all "design contributions"? (Or is the ability to license components at fixed single price for at least a limited period or even perpetually, supported by the construction (agent) process?) You are paying for the design. Every time you build (or rebuild) an application, you pay the developers involved. They do not know they are "rebuilding". This sounds dire but its costs far less than you think and there are many advantages. Automation is very high with emergent coding so software design is completed for a fraction of the cost of incumbent design methods. You could perhaps rebuild many time before matching incumbent methods. Adding features is hard with incumbent methods "..very few late-stage additions are required before the code base transforms from the familiar to a veritable monster of missed schedules, blown budgets and flawed products" (Brooks Jr 1987) whereas with emergent coding adding a late stage feature requires a rebuild and hence seamless integration. With Emergent Coding, you can add an unlimited number of features without risking the codebase as there isn't one. The second part of your question incorrectly assumes software is created from licensed components rather than created by paying Agents to design features into your project without any licenses involved. 14. In this construction process, is the vendor of a particular "design contribution" able to charge differential rates per their own choosing? e.g. if I wanted to charge a super-low rate to someone from a 3rd world country versus charging slightly more when someone a global multinational corporation wants to license my feature? Yes. Developers set the price and policy of their Agent's service. The Valley (where your Agent is presently advertised) presently only supports a simple price policy. The second part of your question incorrectly assumes features are encumbered with licenses. A developer can provide their feature without revealing their intellectual property. A client has the right to reuse a developer's feature in another project but will find it uneconomical to do so. 15. Is "entirely free" a supported option during the contract negotiation for a feature? Yes. You set the price of your Agent. 16. "There is no single point of failure." Right now, it seems one needs to register, license the construction tech etc. Is that going to change to a model where your company is not necessarily in that loop? If not, don't you think that's a single point of failure? It is a decentralized development system. Once you have registered you become part of a peer-to-peer system. Code Valley has thought long and hard about its role and has chosen the reddit model. It will set some rules for your participation and will detect or remove bad actors. If, in your view, Code Valley becomes a bad actor, you have control over your Agent, private keys and IP, you can leave the system at any time. 17. What if I can't obtain a license because of some or other jurisdictional problem? Are you allowed to license the technology to anywhere in the world or just where your government allows it? We are planning to operate in all 150 countries. As ec is peer-to-peer, Code Valley does not need to register as a digital currency exchange or the like. Only those countries banning BCH will miss out (until such times as BCH becomes the first global electronic cash system). 18.
For example the Cashbar combines just 16 high level Point-of-Sale features but ultimately results in more than 10,000 contracts in toto.
It seems already a reasonably complex application, so well done in having that as a demo. Thank you. 19. I asked someone else a question about how it would be possible to verify whether an application (let's say one received a binary executable) has been built with your system of emergent consensus. Is this possible? Yes of course. If you used ec to build an application, you can sign it and claim anything you like. Your client knows it came from you because of your signature. The design contributions making up the application are not signed but surprisingly there is still perfect accountability (see below). 20. I know it is possible to identify for example all source files and other metadata (like build environment) that went into constructing a binary, by storing this data inside an executable. All metadata emergent coding is now stored offline. When your Agent completes a job, you have a log of the design agreements you made with your peers etc., as part of the log. If you are challenged at a later date for breaching a design contract, you can pull your logs to see what decisions you made, what sub-contracts were let etc. As every Agent has their own logs, the community as a whole has a completely trustless log of each project undertaken. 21. Is this being done with EC build products and would it allow the recipient to validate that what they've been provided has been built only using "design contributions" cryptographically signed by their providers and nothing else (i.e. no code that somehow crept in that isn't covered by the contracting process)? The emergent coding trust model is very effective and has been proven in other industries. Remember, your Agent creates a feature in my project by actually combining smaller features contracted from other Agents, thus your reputation is linked to that of your suppliers. If Bosch makes a faulty relay in my Ford, I blame Ford for a faulty car not Bosch when my headlights don't work. Similarly, you must choose and vet your sub-contractors to the level of quality that you yourself want to project. Once these relationships are set up, it becomes virtually impossible for a bad actor to participate in the system for long or even from the get go. 22. A look at code generated and a surprising answer to why is every intermediate variable spilled? Thanks to u/R_Sholes, this snippet from the actual code for: number = number * 10 + digitgenerated as a part of: sub read/integeboolean($, 0, 100) -> guess
; copy global to local temp variable 0x004032f2 movabs r15, global.current_digit 0x004032fc mov r15, qword [r15] 0x004032ff mov rax, qword [r15] 0x00403302 movabs rdi, local.digit 0x0040330c mov qword [rdi], rax ; copy global to local temp variable 0x0040330f movabs r15, global.guess 0x00403319 mov r15, qword [r15] 0x0040331c mov rax, qword [r15] 0x0040331f movabs rdi, local.num 0x00403329 mov qword [rdi], rax ; multiply local variable by constant, uses new temp variable for output 0x0040332c movabs r15, local.num 0x00403336 mov rax, qword [r15] 0x00403339 movabs rbx, 10 0x00403343 mul rbx 0x00403346 movabs rdi, local.num_times_10 0x00403350 mov qword [rdi], rax ; add local variables, uses yet another new temp variable for output 0x00403353 movabs r15, local.num_times_10 0x0040335d mov rax, qword [r15] 0x00403360 movabs r15, local.digit 0x0040336a mov rbx, qword [r15] 0x0040336d add rax, rbx 0x00403370 movabs rdi, local.num_times_10_plus_digit 0x0040337a mov qword [rdi], rax ; copy local temp variable back to global 0x0040337d movabs r15, local.num_times_10_plus_digit 0x00403387 mov rax, qword [r15] 0x0040338a movabs r15, global.guess 0x00403394 mov rdi, qword [r15] 0x00403397 mov qword [rdi], rax For comparison, an equivalent snippet in C compiled by clang without optimizations gives this output: imul rax, qword ptr [guess], 10 add rax, qword ptr [digit] mov qword ptr [guess], rax
Collaborations at the byte layer of Agents result in designs that spill every intermediate variable. Firstly, why this is so? Agents from this early version only support one catch-all variable design when collaborating. Similar to a compiler when all registers contain variables, the compiler must make a decision to spill a register temporarily to main memory. The compiler would still work if it spilled every variable to main memory but would produce code that would be, as above, hopelessly inefficient. However, by only supporting the catch-all portion of the protocol, the code valley designers were able to design, build and deploy these agents faster because an Agent needs fewer predicates in order to participate in these simpler collaborations. The protocol involved however, can have many "Policies" besides the catch-all default policy (Agents can collaborate over variables designed to be on the stack, or, as is common for intermediate variables, designed to use a CPU register, and so forth). This example highlights one of the very exciting aspects of emergent coding. If we now add a handful of additional predicates to a handful of these byte layer agents, henceforth ALL project binaries will be 10x smaller and 10x faster. Finally, there can be many Agents competing for market share at each of classification. If these "gumby" agents do not improve, you can create a "smarter" competitor (ie with more predicates) and win business away from them. Candy from a baby. Competition means the smartest agents bubble to the top of every classification and puts the entire emergent coding platform on a fast path for improvement. Contrast this with incumbent libraries which does not have a financial incentive to improve. Just wait until you get to see our production system. 23. How hard can an ADD Agent be? Typically an Agent's feature is created by combining smaller features from other Agents. The smallest features are so devoid of context and complexity they can be rendered by designing a handful of bytes in the project binary. Below is a description of one of these "byte" layer Agents to give you an idea how they work. An "Addition" Agent creates the feature of "adding two numbers" in your project (This is an actual Agent). That is, it contributes to the project design a feature such that when the project binary is delivered, there will be an addition instruction somewhere in it that was designed by the contract that was let to this Agent. If you were this Agent, for each contract you received, you would need to collaborate with peers in the project to resolve vital requirements before you can proceed to design your binary "instruction". Each paid contract your Agent receives will need to participate in at least 4 collaborations within the design project. These are:
Input A collaboration
Input B collaboration
Construction site collaboration
You can see from the collaborations involved how your Agent can determine the precise details needed to design its instruction. As part of the contract, the Addition Agent will be provisioned with contact details so it can join these collaborations. Your Agent must collaborate with other stakeholders in each collaboration to resolve that requirement. In this case, how a variable will be treated. The stakeholders use a protocol to arrive at an Agreement and share the terms of the agreement. For example, the stakeholders of collaboration “Input A” may agree to treat the variable as an signed 64bit integer, resolve to locate it at location 0x4fff2, or alternatively agree that the RBX register should be used, or agree to use one of the many other ways a variable can be represented. Once each collaboration has reached an agreement and the terms of that agreement distributed, your Agent can begin to design the binary instruction. The construction site collaboration is where you will exactly place your binary bytes. The construction site protocol is detailed in the whitepaper and is some of the magic that allows the decentralized development system to deliver the project binary. The protocol consists of 3 steps,
You request space in the project binary be reserved.
You are notified of the physical address of your requested space.
You delver the the binary bytes you designed to fill the reserved space.
Once the bytes are returned your Agent can remove the job from its work schedule. Job done, payment received, another happy customer with a shiny ADD instruction designed into their project binary. Note:
Observe how it is impossible for this ADD Agent to install a backdoor undetected by the client.
Observe how the Agent isn’t linking a module, or using a HLL to express the binary instruction.
Observe how with just a handful of predicates you have a working "Addition" Agent capable of designing the Addition Feature into a project with a wide range of collaboration agreements.
Observe how this Agent could conceivably not even design-in an ADD instruction if one of the design time collaboration agreements was a literal "1" (It would design in an increment instruction). There is even a case where this Agent may not deliver any binary to build its feature into your project!
24. How does EC arrive at a project binary without writing source code? Devs using EC combine features to create solutions. They don't write code. EC devs contract Agents which design the desired features into their project for a fee. Emergent coding uses a domain specific contracting language (called pilot) to describe the necessary contracts. Pilot is not a general purpose language. As agents create their features by similarly combining smaller features contracted from peer, your desired features may inadvertently result in thousands of contracts. As it is agents all the way down, there is no source code to create the project binary. Traditional: Software requirements -> write code -> compile -> project binary (ELF). Emergent coding: Select desired features -> contract agents -> project binary (ELF). Agents themselves are created the same way - specify the features you want your agent to have, contract the necessary agents for those features and viola - agent project binary (ELF). 25. How does the actual binary code that agents deliver to each other is written? An agent never touches code. With emergent coding, agents contribute features to a project, and leave the project binary to emerge as the higher-order complexity of their collective effort. Typically, agents “contribute” their feature by causing smaller features to be contributed by peers, who in turn, do likewise. By mapping features to smaller features delivered by these peers, agents ensure their feature is delivered to the project without themselves making a direct code contribution. Peer connections established by these mappings serve to both incrementally extend a temporary project “scaffold” and defer the need to render a feature as a code contribution. At the periphery of the scaffold, features are so simple they can be rendered as a binary fragment with these binary fragments using the information embodied by the scaffold to guide the concatenation back along the scaffold to emerge as the project binary - hence the term Emergent Coding. Note the scaffold forms a temporary tree-like structure which allows virtually all the project design contracts to be completed in parallel. The scaffold also automatically limits an agent's scope to precisely the resources and site for their feature. It is why it is virtually impossible for an agent to install a "back door" or other malicious code into the project binary.
Hey guys, I thought I would put together an in-depth tour of the Gridcoin wallet software for all of our recent newcomers. Here I'll be outlining all the features and functions the windows GUI wallet has to offer, along with some basic RPC command usage. I'll be using the windows wallet as an example, but both linux and macOS should be rather similar. I'll be including as many pictures as I can as embedded hyperlinks. Edit: Note that since I originally made this there has been a UI update, so your client will be different colors but all the button locations are in the same place. This is my first post like this, so please forgive me if this appears a little scatter-brained. This will not cover the mining setup process for pool or solo miners. When you launch the wallet software for the first time you should be greeted with this screen.
If you're a pool miner or investor, press cancel.
If you're a solo miner, enter your email you used to sign up for projects and press OK.
If you're not sure or haven't decided yet, press cancel. We can come back to this later.
After that prompt, you should be left sitting on the main overview tab with several fields on it. From top to bottom:
Available: All coins available to be sent or staked (I'll cover this term later).
Stake: All coins that are currently staking.
Unconfirmed: All coins that have been received and have not yet received 110 confirmations.
Total: All coins in your wallet. (The sum of the above fields)
Blocks: How many blocks your client has in it's chain. Your wallet just started syncing with the network so this number will be low.
Difficulty: How difficult it is for someone to stake the next block.
Net Weight: An estimate for how many coins are staking on the entire network.
Coin Weight: How many of your coins that are currently staking.
Magnitude: A quantifier for how much work you put in mining. For solo miners only. For pool miners, this value will always be 0.
Project: Displays the projects you're working on, one at a time. For solo miners only. For pool miners, this will always say "INVESTOR".
CPID: Cross Project Identifier. Used to keep track of users across projects. For solo miners only. For pool miners, this will always say "INVESTOR".
Status: Displays various status messages.
Current Poll: Displays the latest poll.
Client Messages: Displays various client messages.
Now onto the other tabs on the left side. Currently we're on the Overview tab, lets move down to the Send tab. This tab it pretty self-explanatory, you use it if you want to send coins, but I'll go over the fields here:
Pay To: Enter a valid gridcoin address to send coins too. Gridcoin addresses always start with an S or and R.
Label: Enter a label here and it will put that address in your "address book" under that label for later use. You can leave it blank if you don't want it in your address book.
Message: Enter a message here if you want it attached to your transaction.
Amount: How many coins you want to send.
Add Attachment: Leave this alone, it is broken.
Track Coins: This doesn't do anything.
Now down to the Receive tab. Here you should have a single address listed. If you double click on the label field, you can edit it's label.
New: Generate a new address.
If you click on an address, the rest of the options should be clickable.
Copy: Copy the selected address to your clipboard.
Show QR Code: Show a scan-able QR code for the selected address.
Sign Message: Cryptographically sign a message using the selected address.
The Transactions tab is pretty boring considering we have no transactions yet. But as you can see there are some sorting tools at the top for when you do have transactions listed.
ADDRESS BOOK TAB
The Address Book is where all the addresses you've labeled (that aren't yours) will show up.
Verify Message: Verifies a message was signed by the selected address.
The rest of the functions are similar to the functions on the Receive tab.
Onto the Voting tab. There wont be any polls because we aren't in sync yet.
Reload Polls: Pretty self-explanatory, I've never had to use this.
Load History: By default, the wallet will only display active polls. If you want to view past polls you can use this.
Create Poll: You can create a network-wide poll. You must have 100,000 coins as a requirement to make a poll. (Creating a poll does not consume the coins)
Display coin control features (experts only!): This allows you to have a great deal of control over the coins in your wallet, check this for now and I'll explain how to use it further down. Don't forget to click "Apply".
ENCRYPTING YOUR WALLET
Now that all of that is out of the way. The first thing you'll want to do is encrypt your wallet. This prevents anybody with access to your computer from sending coins. This is something I would recommend everyone do. Go to Settings > Encrypt Wallet and create a password. YOU CANNOT RECOVER YOUR COINS IF YOU FORGET YOUR PASSWORD. Your wallet will close and you will have to start it up again. This time when it opens up, you should have a new button in the bottom left. Now if you want to stake you will have to unlock your wallet. Notice the "For staking only" box that is checked by default. If you want to send a beacon for solo mining or vote, you will need to uncheck this box.
GETTING IN SYNC AND ICONS
Before we continue, Let's wait until we're in sync. Depending on your internet speeds, this could take from several hours to over a day or 2. This can be sped up by using Advanced > Download Blocks, but this can still take several hours. This is what an in-sync client should look like. Notice the green check to the right of the Receive tab. All of these icons give you information when you hover your mouse over them. The lock The arrow tells you if you're staking. If you aren't staking, it will tell you why you're not staking. If you are staking it will give you an estimated staking time. Staking is a very random process and this is only an estimate, not a countdown. The connection bars tell you how many connections to the network you have. The check tells you if you're in sync.
WHAT IS STAKING?
Now I've said "stake" about a million times so far and haven't explained it. Gridcoin is a Proof of Stake (PoS) coin. Unlike bitcoins Proof of Work (PoW), PoS uses little system resources, so you can use those resources for scientific work. PoS works by users "Staking" with their balance. The higher the balance, the higher the chance to create, or "stake" a block. This means you need to have a positive balance in order to stake. Theoretically, you can stake with any amount over 0.0125 coins, but in practice it's recommended to have at least 2000 coins to reliably stake. Staking is important for solo miners, because they get paid when they stake. Pool miners don't need to stake in order to get paid however. So if you want to solo mine, you'll need to buy some coins from an exchange or start in the pool first and move to solo when you have enough coins. In addition to Research Rewards for miners, anyone who holds coins (solo miners, pool miners, and investors) gets 1.5% interest annually on top of your coins. So it can be beneficial for pool miners to stake as well. Here is a snippet of what a research rewards transaction looks like from my personal wallet. I have a label on that address of "Payout address" as you can see here.
UTXOS AND COIN CONTROL
At this point you'll need some coins. You can use one of our faucets like this one or this one to test coin control out. First let me explain what a UTXO is. UTXO stands for Unspent Transaction Output. Say you have an address with 0 coins in it, and someone sends you 10 coins like I've done here. Those 10 coins are added to that address in the form of a UTXO, so we have an address with one 10 coin UTXO in it. Now we receive another 5 coins at the same address, like so. Now we have an address with one 10 coin UTXO and one 5 coin UTXO. But how do we view how our addresses are split up into different UTXOs? Earlier we checked the "Display coin control features" box in Settings > Options > Display. Once that's checked you'll notice there's another section in the Send tab labeled "Coin Control Features". If you click the "Inputs" button, you'll get a new window. And look, there's our 2 UTXOs. All UTXOs try to stake separately from each other, and remember that the chance a UTXO has to stake is proportional to it's size. So in this situation, my 10 coin UTXO has twice the chance to stake as my 5 coin UTXO. Now wallets, especially ones that make a lot of transactions, can get very fragmented over time. I've fragmented my wallet a little so I can show you what I'm talking about. How do we clean this up? We can consolidate all this into one UTXO by checking all the boxes on the left and selecting OK. Now pay attention to the fields on the top:
Quantity: The total amount of UTXOs we have selected.
Amount: The total amount of coins we have selected.
Fee: How much it would cost in fees to send all those UTXOs (more UTXOs = more transaction data = more fees)
After Fee: Amount - Fees.
Bytes: How large the transaction is in bytes.
Priority: How your client would prioritize making a transaction with this specific set of UTXOs selected had you not used coin control.
Low Output: If your transaction is less than 0.01 coins (I think).
custom change address: You can set the address you get your change back at, by default it will generate a new address.
So let's fill out our transaction so we end up with 1 UTXO at the end. In "Pay To:" Just put any address in your wallet, and for the amount put what it has listed in the "After Fee" Field. Just like this. Notice how we get no change back. Now click "Send", we'll be prompted to enter our passphrase and we're asked if we want to pay the fee, go ahead and click "Yes". Now if we go back to the Overview tab we get this funky icon. If you hover your mouse over it, it says "Payment to yourself", and the -0.0002 GRC is the network transaction fee. (Ignore the first one, that was me fragmenting my wallet) Now if we look at the Coin Control menu, we can see that we've slimmed our wallet down from 7 UTXOs to 1. Now why would you want to use coin control? 2 Situations:
UTXOs less than 0.0125 coins cannot stake. So you can combine a lot of tiny, useless UTXOs into 1 bigger one that can stake.
After a UTXO stakes, it cannot stake for another 16 hours. So if you have 1 large UTXO that is big enough to stake more than once every 16 hours, you can split it into smaller UTXOs which can allow you to stake slightly more often.
By default, the wallet will always generate a new address for change, which can make your wallet get very messy if you're sending lots of transactions. Keep in mind that more UTXOs = larger transactions = more fees.
Sidenote - When you stake, you will earn all research rewards owed reguardless of which UTXO staked. However, you'll earn the 1.5% interest for that UTXO. Not your whole wallet.
A fork is when the network splits into multiple chains, with part of the network on each chain. A fork can happen when 2 blocks are staked by different clients at the same time or very close to the same time, or when your client rejects a block that should have been accepted due to a bug in the code or through some other unique circumstance. How do I know if I'm on a fork? Generally you can spot a fork by looking at the difficulty on your Overview tab. With current network conditions, if your difficulty is below 0.1, then you're probably on a fork. You can confirm this by comparing your blockhash with someone elses, like a block explorer. Go to [Help > Debug Window > Console]. This is the RPC console, we can use to do a lot of things. You can type help to get a list of commands, and you can type help [command you need help with] (without the brackets) to get information on a command. We'll be using the getblockhash [block number] command. Type getblockhash [block number] in the console, but replace [block number] with the number listed next to the "Blocks:" field on the Overview tab. This will spit out a crazy string of characters, this is the "blockhash" of that block. Now head over to your favorite block explorer, I'll be using gridcoinstats. Find the block that you have the hash for, use the search bar or just find it in the list of blocks. Now compare your hash with the one gridcoinstats gives you. Does it match? If it matches, then you're probably good to go. If it matches but you still think you're on a fork, then you can try other block explorers, such as gridcoin.network or neuralminer.io. If it doesn't match, then you need to try to get off that fork. How do I get off a fork?
Just wait for an hour or two. 95% of the time your client is able to recover itself from a fork given a little time.
Restart the client, wait a few minutes to see if it fixes itself. If it doesn't restart again and wait. Repeat about 4 or 5 times.
Find where the fork started. Using the getblockhash command, go back some blocks and compare hashes with that on a block explorer so you can narrow down what the last block you and the block explorer had in common. Then use reorganize [the last block hash you had in common]. Note that reorganize takes a blockhash, not a block number.
A listening node is a node that listens for blocks and transactions broadcasted from nodes and forwards them on to other nodes. For example, during the syncing process when you're getting your node running for the first time, you're downloading all the blocks from listening nodes. So running a listening node helps support the network. Running a gridcoin listening node is simple. All you need to do is add listen=1 to your gridcoinresearch.conf and you need to forward port 32749 on your router. If you don't know how to port forward, I'd suggest googling "How to port forward [your router manufacturer]".
Lisk Highlights Weekly roundup March 9th 2019. The week in which a Lisk Sidechain Project became a Founding Member of a Brussels-based Blockchain Organization.
Hello everybody. The LISK project and it's enthusiasts are always busy, and this week past has certainly been no exception. Seeing is believing, so here is a recap of the highlights and interesting items from the past week on the LISK subreddit and beyond.....
Lisk, Hong Kong Future and Costa Rica Past.
Asia Crypto Week is fast approaching (11-17th March) and blockchain/crypto enthusiasts and industry veterans are preparing to gather together, share their knowledge and nurture mass crypto adoption. Among the events taking place on March 15th will be a meetup at the University of Hong Kong catering to the University's Blockchain Club and anyone else that might be in the area and interested in all things blockchain. Lisk is co-hosting the event in collaboration with 9up.io, who are a group of blockchain enthusiasts based in Hong Kong and who also are a prospective Lisk delegate. Max Kordek, Lisk's Co-Founder and CEO, will be the main speaker at this event on the 15th March, as he will be in town from the 10th to 15th for Asia Crypto Week and Token 2049. Tickets for the event can be secured HERE. Hong Kong has been a strategic position in the blooming Blockchain industry in recent years, so I will be interested to see what emerges from this meetup and indeed Asia Crypto Week as a whole.
Now from the future to the past, and the TicoBlockChain 2019 conference in Costa Rica this past month. Lisk Central America have linked us up with a Stylish Montage Video of the event with interview snippets interspersed within. Software Architect, Jake Simmons, represented LISK Central America with his presentation on 'Scaling blockchain horizontally with Lisk'. Jake's presentation took part in the midst of the conference's speaker collection of lawyers, developers, educators, banking executives, investment professionals, their keynotes, panel talks and fireside chats. For those of us who could not make the trip we have Lisk community member illuciferium to thank for filming Jake's presentation and uploading it to Youtube HERE. You can also see Jake being interviewed at the conference by Ricardo Barquero, Nimiq Community Manager in this VIDEO. Well done all!
Lisk Support Adds a Meetup Map.
LISK support and TonyT908 are back with a new way for Liskers to visualise all the upcoming meetups and events related to the project. The Events Map is a more visually exciting way to discover all the upcoming events around the globe rather than reading through reams and reams of text. When you are ready to delve more into the details of a particular meetup then you can visit the official Lisk Events page to read further details. Special thanks should be given to Global Delegate Team (GDT) for their guidance to TonyT908 and for providing the funds necessary to license to mapping software. Edward Trosclair AKA StellarDynamic came up with the original concept, so he should take a lot of praise also. Great work all round, folks.
Lisk Sidechain Project Knows the Key is to Stand Out from the Crowd.
Chief R&D Officer and Co-founder of GNY (bringing Machine Learning to Lisk), Richard Jarritt informed the project's followers on the GNY telegram that "only by having a platform that is the first to crack machine learning on chain is how we can differentiate ourselves from the countless projects in our space". He continued, "I look at the whole crypto space and at the moment having working code is key, that is the drive here". So on to the coding and Machine learning integration, how is that going? Well, this week Leo Liang, Head of Blockchain for GNY will be presenting the coding solution for how information is read by the machine learning off the chain. The GNY team always has tech meetings on Tuesdays to present the work that has been done the week previously, where they update each other on progress and then set the next task. Upcoming shortly for the team will be a demo of how the read function and Machine learning are running together and moving onto the reply function. The GNY Github is due to go live by the end of this month, following an important GNY staff conference in London. It's going to be an exciting month and I am really looking forward to it.
Lisk Sidechain Project becomes a Founding Member of a Brussels-based Blockchain Organization.
On the 6th of March the MADANA project were one of the 105 companies, startups and organizations that came together to found INATBA. The International Association for Trusted Blockchain Applications (INATBA) which will be a Brussels-based organization working to make blockchain more accessible, safe, and usable for everyone. This was an initiative of the EU commission and the Directorate General for Communications Networks, Content and Technology or "DG Connect", whose responsibility is managing the Digital Agenda across Europe. It is hoped that this will now allow projects in the blockchain and distributed ledger technology eco-system have access to a global forum to interact with regulators & policy makers.
Next up for the INATBA is its first General Assembly on 3rd April where the 105 founding members will hopfully be joined by fresh additions to the memberlist. The INATBA website is now live at http://inatba.org and they have a "Join" page which is accepting applications for new members to join Madana and the likes of Iota, Cardano, Gnosis, and the Quant Network for the April 3rd launch!
Blowing the lid off the CryptoNote/Bytecoin scam (with the exception of Monero) - Reformatted for Reddit
Original post by rethink-your-strategy on Bitcointalk.org here This post has been reformatted to share on Reddit. What once was common knowledge, is now gone. You want a quality history lesson? Share this like wildfire. August 15, 2014, 08:15:37 AM
I'd like to start off by stating categorically that the cryptography presented by CryptoNote is completely, entirely solid. It has been vetted and looked over by fucking clever cryptographers/developers/wizards such as gmaxwell. Monero have had a group of independent mathematicians and cryptographers peer-reviewing the whitepaper (their annotations are here, and one of their reviews is here), and this same group of mathematicians and cryptographers is now reviewing the implementation of the cryptography in the Monero codebase. Many well known Bitcoin developers have already had a cursory look through the code to establish its validity. It is safe to say that, barring more exotic attacks that have to be mitigated over time as they are invented/discovered, and barring a CryptoNote implementation making rash decisions to implement something that reduces the anonymity set, the CryptoNote currencies are all cryptographically unlinkable and untraceable. Two other things I should mention. I curse a lot when I'm angry (and scams like this make me angry). Second, where used my short date format is day/month/year (smallest to biggest). If you find this information useful, a little donation would go a long way. Bitcoin address is 1rysLufu4qdVBRDyrf8ZjXy1nM19smTWd.
The Alleged CryptoNote/Bytecoin Story
CryptoNote is a new cryptocurrency protocol. It builds on some of the Bitcoin founding principles, but it adds to them. There are aspects of it that are truly well thought through and, in a sense, quite revolutionary. CryptoNote claim to have started working on their project years ago after Bitcoin's release, and I do not doubt the validity of this claim...clearly there's a lot of work and effort that went into this. The story as Bytecoin and CryptoNote claim it to be is as follows: They developed the code for the principles expressed in their whitepaper, and in April, 2012, they released Bytecoin. All of the copyright messages in Bytecoin's code are "copyright the CryptoNote Developers", so clearly they are one and the same as the Bytecoin developers. In December 2012, they released their CryptoNote v1 whitepaper. In September 2013, they released their CryptoNote v2 whitepaper. In November 2013, the first piece of the Bytecoin code was first pushed to Github by "amjuarez", with a "Copyright (c) 2013 amjuarez" copyright notice. This was changed to "Copyright (c) 2013 Antonio Juarez" on March 3rd, 2014. By this juncture only the crypto libraries had been pushed up to github. Then, on March 4th, 2014, "amjuarez" pushed the rest of the code up to github, with the README strangely referring to "cybernote", even though the code referred to "Cryptonote". The copyrights all pointed to "the Cryptonote developers", and the "Antonio Juarez" copyright and license file was removed. Within a few days, "DStrange" stumbled across the bytecoin.org website when trying to mine on the bte.minefor.co.in pool (a pool for the-other-Bytecoin, BTE, not the-new-Bytecoin, BCN), and the rest is history as we know it. By this time Bytecoin had had a little over 80% of its total emission mined.
Immediate Red Flags
The first thing that is a red flag in all of this is that nobody, and I mean no-fucking-body, is a known entity. "Antonio Juarez" is not a known entity, "DStrange" is not a known entity, none of the made up names on the