Best of Crypto

Best of Crypto


Chainlink & Arbitrum: Off-chain Computation Development Guide

This repository allows you to run Chainlink and Arbitrum Docker images together so that contract execution may occur off-chain. The Chainlink node needs to know about the Arbitrum container via a Bridge. A bridge is simply how the Chainlink node communicates with external adapters, which is the role that the Arbitrum container is fulfilling. The quick start guide will assist you with setting up an end-to-end environment demonstrating all components of this use-case.

The goal of this example is to show how a Chainlink request can be made for an off-chain computation of a Solidity contract within the Arbitrum execution environment. Chainlink node operators can run Arbitrum to perform smart contract execution off-chain. This is beneficial when the cost of that computation would be significantly higher to execute it on-chain, while still retaining the same high degree of security.


  • Docker
  • docker-compose
  • Node.js (10.x.x or higher)
  • Truffle

Quick start

  1. Deploy the on-chain Chainlink contracts:
  • Navigate to the contracts-chainlink directory
  • Run npm install
  • Open variables.js and add the following values:
    • MNEMONIC_OR_PRIVATE_KEY for the Ethereum account you'll be using
    • ETH_URL for the Ethereum node you'll be communicating with
  • Deploy the contracts: truffle migrate --network <rinkeby|ropsten|kovan>
  • Write down the Oracle contract's deployed address -- you'll need it in the next step.

2.   Open env.adapter-bridge, env.arbitrum-validator, and env.chainlink-node, and follow the instructions, adding values for ETH_URL, PRIVATE_KEY, etc. Make sure to add the ORACLE_CONTRACT_ADDRESS value that you received when you deployed the Chainlink Oracle contract.

3.   Ensure that the address controlled by the private key you choose has some Ether.

4.   Run docker-compose up from the repository root. The Chainlink node and the bridge adapter will spin up fairly quickly. The Arbitrum validator service will take longer, because each time it starts, it recompiles the off-chain contract, deploys it to the validator, and also deploys a new on-chain rollup contract to track the off-chain computation results. You will know that the validator is ready when it begins to emit logs such as the following:

validator_1        | 2020/02/12 22:53:54
validator_1        | == nodes:
validator_1        | ==   0:4c2ced leaf latestConfirmed
validator_1        | == stakers:

5.   Find the Chainlink node's Ethereum address in the log output.

  • Open contracts-chainlink/variables.js and set the CHAINLINK_NODE_ADDR variable.
  • Run truffle exec --network <rinkeby|ropsten|kovan> scripts/fund-node.js.
  • Run truffle exec --network <rinkeby|ropsten|kovan> scripts/authorize-node.js.

6.   Open the Chainlink Operator UI at http://localhost:6688 and log in.

7.   Click the "Bridges" link in the top menu. Configure a new bridge with the following values:

8.   Click the "Jobs" link in the top menu. Configure a new job using a job spec like the following:

    // The runlog initiator tells the Chainlink node to watch its Oracle contract for a log event telling
    // it to start a data request.
    "initiators": [{ "type": "runlog", "params": {} }],

    "tasks": [
        // The httpGet task fetches some data from the CryptoCompare API that will be used as the arguments
        // to the "getSmallTransactionCount" function in the contract deployed to the Arbitrum validator.
        // The data looks like this (extraneous fields omitted for clarity):
        // {
        //     "Data": {
        //         "Data": [
        //             {
        //                 "transaction_count": 12345,
        //                 "large_transaction_count": 678
        //             }
        //         ]
        //     }
        // }
        { "type": "httpGet", "params": { "url": "<CryptoCompare API key>" } },

        // The jsonParse task parses the JSON and returns the contents of the given keypath.
        { "type": "jsonParse", "params": { "path": ["Data", "Data", "0"] } },

        // The ethTxAbiEncode task expects a JSON object, the entries of which are interpreted as arguments
        // to the function that is to be called.  It outputs hex-encoded calldata which, if submitted as a
        // regular Ethereum transaction, would call that function with those arguments.
            "type": "ethTxAbiEncode",
            "params": {
                "functionABI": {
                    "name": "getSmallTransactionCount",
                    "inputs": [
                        { "name": "transaction_count", "type": "uint256" },
                        { "name": "large_transaction_count", "type": "uint256" }

        // The arbitrum task (which is a user-defined "bridge" that needs to be manually configured in the
        // Chainlink Operator UI) expects hex-encoded calldata.  Instead of submitting that calldata as a
        // regular Ethereum transaction, it sends the calldata to an Arbitrum validator node over RPC,
        // which initiates the off-chain computation.  When the computation is complete, this task returns
        // a hex string containing the ABI-encoded result.
        // The `contractAddress` parameter should be the address of the off-chain contract.  It is emitted
        // to the console when the Arbitrum validator Docker container is started and the Truffle migration
        // runs.  The address is deterministic, so unless you decide to deploy multiple interacting
        // off-chain contracts, the address given in this example should always suffice.
        { "type": "arbitrum", "params": { "contractAddress": "0x895521964D724c8362A36608AAf09A3D7d0A0445" } },

        // The ethTx task sends the result of the Arbitrum computation back to the Chainlink node's Oracle
        // contract, which then forwards it to the contract that made the original request.
        { "type": "ethTx" }

Once you create the job, it will be assigned a Job ID (a hex string). Take this ID, open contracts-chainlink/variables.js, and set the JOB_ID variable.

Development workflow

On-chain data requester contract

This contract is located at ./contracts-chainlink/contracts/MyDataConsumer.sol. The main reason to modify it is to alter how the contract stores data (does it aggregate results over time? does it need a different variable type?). Don't forget to redeploy this contract if you make modifications.

Off-chain contracts and migrations

These are located in ./contracts-offchain. After making changes to them, you will need to restart the Dockerized Arbitrum validator service. When you do this, the new code is compiled to Arbitrum bytecode and deployed to the validator, and a new on-chain rollup contract is deployed to track the off-chain computation results.

If you change the name or arguments of the off-chain function you're calling, you will also have to update the Chainlink job spec (see next section).

The job spec

If you make changes to the job spec, you will need to create a new job in the Chainlink Operator UI (http://localhost:6688). Then, take the job ID of the new job, open contracts-chainlink/variables.js, and set the JOB_ID variable.

Making a data request

Before you make any data requests, you have to send some LINK tokens to the on-chain MyDataConsumer contract. Acquire some LINK at one of our testnet faucets (see, and then run the following commands:

cd contracts-chainlink
truffle exec --network <rinkeby|ropsten|kovan> ./scripts/fund-contract.js

Once that transaction is mined, you can use another helper script to issue requests to the Chainlink oracle node:

cd contracts-chainlink
truffle exec --network <rinkeby|ropsten|kovan> ./scripts/request-data.js

Once the Chainlink node completes the job, it will send a transaction back to the MyDataConsumer contract with the response. To read that response, you can run the final helper script:

cd contracts-chainlink
truffle exec --network <rinkeby|ropsten|kovan> ./scripts/read-contract.js

Download Details:
Author: smartcontractkit
Source Code:
License: MIT license

#smartcontract #blockchain #oracle #chainlink #javascript

What is GEEK

Buddha Community

Chainlink & Arbitrum: Off-chain Computation Development Guide
Fredy  Larson

Fredy Larson


How long does it take to develop/build an app?

With more of us using smartphones, the popularity of mobile applications has exploded. In the digital era, the number of people looking for products and services online is growing rapidly. Smartphone owners look for mobile applications that give them quick access to companies’ products and services. As a result, mobile apps provide customers with a lot of benefits in just one device.

Likewise, companies use mobile apps to increase customer loyalty and improve their services. Mobile Developers are in high demand as companies use apps not only to create brand awareness but also to gather information. For that reason, mobile apps are used as tools to collect valuable data from customers to help companies improve their offer.

There are many types of mobile applications, each with its own advantages. For example, native apps perform better, while web apps don’t need to be customized for the platform or operating system (OS). Likewise, hybrid apps provide users with comfortable user experience. However, you may be wondering how long it takes to develop an app.

To give you an idea of how long the app development process takes, here’s a short guide.

App Idea & Research


_Average time spent: two to five weeks _

This is the initial stage and a crucial step in setting the project in the right direction. In this stage, you brainstorm ideas and select the best one. Apart from that, you’ll need to do some research to see if your idea is viable. Remember that coming up with an idea is easy; the hard part is to make it a reality.

All your ideas may seem viable, but you still have to run some tests to keep it as real as possible. For that reason, when Web Developers are building a web app, they analyze the available ideas to see which one is the best match for the targeted audience.

Targeting the right audience is crucial when you are developing an app. It saves time when shaping the app in the right direction as you have a clear set of objectives. Likewise, analyzing how the app affects the market is essential. During the research process, App Developers must gather information about potential competitors and threats. This helps the app owners develop strategies to tackle difficulties that come up after the launch.

The research process can take several weeks, but it determines how successful your app can be. For that reason, you must take your time to know all the weaknesses and strengths of the competitors, possible app strategies, and targeted audience.

The outcomes of this stage are app prototypes and the minimum feasible product.

#android app #frontend #ios app #minimum viable product (mvp) #mobile app development #web development #android app development #app development #app development for ios and android #app development process #ios and android app development #ios app development #stages in app development

Mitchel  Carter

Mitchel Carter


Developer Career Path: To Become a Team Lead or Stay a Developer?

For a developer, becoming a team leader can be a trap or open up opportunities for creating software. Two years ago, when I was a developer, I was thinking, “I want to be a team leader. It’s so cool, he’s in charge of everything and gets more money. It’s the next step after a senior.” Back then, no one could tell me how wrong I was. I had to find it out myself.

I Got to Be a Team Leader — Twice

I’m naturally very organized. Whatever I do, I try to put things in order, create systems and processes. So I’ve always been inclined to take on more responsibilities than just coding. My first startup job, let’s call it T, was complete chaos in terms of development processes.

Now I probably wouldn’t work in a place like that, but at the time, I enjoyed the vibe. Just imagine it — numerous clients and a team leader who set tasks to the developers in person (and often privately). We would often miss deadlines and had to work late. Once, my boss called and asked me to come back to work at 8 p.m. to finish one feature — all because the deadline was “the next morning.” But at T, we were a family.

We also did everything ourselves — or at least tried to. I’ll never forget how I had to install Ubuntu on a rack server that we got from one of our investors. When I would turn it on, it sounded like a helicopter taking off!

At T, I became a CTO and managed a team of 10 people. So it was my first experience as a team leader.

Then I came to work at D — as a developer. And it was so different in every way when it came to processes.

They employed classic Scrum with sprints, burndown charts, demos, story points, planning, and backlog grooming. I was amazed by the quality of processes, but at first, I was just coding and minding my own business. Then I became friends with the Scrum master. I would ask him lots of questions, and he would willingly answer them and recommend good books.

My favorite was Scrum and XP from the Trenches by Henrik Kniberg. The process at D was based on its methods. As a result, both managers and sellers knew when to expect the result.

Then I joined Skyeng, also as a developer. Unlike my other jobs, it excels at continuous integration with features shipped every day. Within my team, we used a Kanban-like method.

We were also lucky to have our team leader, Petya. At our F2F meetings, we could discuss anything, from missing deadlines to setting up a task tracker. Sometimes I would just give feedback or he would give me advice.

That’s how Petya got to know I’d had some management experience at T and learned Scrum at D.

So one day, he offered me to host a stand-up.

#software-development #developer #dev-team-leadership #agile-software-development #web-development #mobile-app-development #ios-development #android-development

Christa  Stehr

Christa Stehr


Offshore Software Development - Best Practices

With the rise of globalization and the worldwide lockdown due to the pandemic, most of the work has been done by remote working processes and professionals from their homes. This lockdown has proved the efficiency of remote development and enhanced the trust in offshore software development industry.

To make the most out of the benefits of offshore software development, you should understand the crucial factors that affect offshore development. This is why you should read this guide for the best practices when hiring an offshore software development company. Despite the size and the industry of the business, offshore software development is not beneficial for every entrepreneur in many aspects to make the optimum use of talents in technology across the globe.

Here are some of the top reasons why offshore development is beneficial for your business.

  • Offshore development teams can work on flexible timing to provide you with the best possible software development practices.
  • Get access to the talents across the world from your home to develop the top of the line software with the help of offshore development companies.
  • Assured high quality and next-generation technology expertise with duly NDA signed with respect to the priorities of the business.
  • With flexible recruitment models, you can hire the freelance developers, remote development team, or an entire offshore development company with respect to the size of your business.
  • Build high-end software applications from one corner of the world by hiring software developers across the world.
  • Get immediate access to the best resources without hiring them on a permanent basis.

To avail of all these benefits, you should have clear goals, a list of requirements, and features that are mandatory for your software product.

Here are a few tips to help you find the best offshore software development company. Build a top-notch software application by following the listed best practices.

#web development #how to start offshore software development company #offshore meaning #offshore software development best practices #offshore software development company #offshore software development company in india #offshore software development cost #offshore software development statistics #outsource software development

SISGAIN - Google Search

SISGAIN’s cloud computing development provides information technology (IT) over the Internet or dedicated network, with delivery on demand and payment based on usage. Our Cloud-based services range from full applications and development platforms to servers, storage, and virtual desktops. Our cloud computing application development combines cost-effective, scalable and resilient data storage with native public clouds. In addition, we provide Storage-as-a-Service directly connected to multiple clouds for disaster recovery, analytics, test/development and other use cases. Hire our cloud computing developers. They will help you free IT system management while delivering enterprise-grade data security, capacity, replication, performance and availability in the public Cloud. We can easily leverage their preferred clouds and switch easily between them at any time based on the needs of applications. In addition, cloud storage services help to avoid vendor lock-in as data is independent of the Cloud. For more details click on the link.

#cloud computing development #cloud computing application development #best cloud computing company #cloud computing services #app development #software development

aviana farren

aviana farren


IDO Development | Initial DEX Offering Development | IDO Development Platform

Initial DEX offering, commonly abbreviated as IDO, is a digital fundraising opportunity for the investors and business developers in a decentralized platform. IDO is the representation of the digital assets, with zero exchange fees being paid. Distributing tokens and fundraising are at ease through the IDO platform. IDO is considered as the combination of both ICO & IEO.

The benefits of IDO are as follows:

  • Fair & open fundraising opportunity
  • Immediate trading
  • Immediate liquidity
  • Safe & faster transaction
  • Affordable price
  • Low exchange fee

The steps involved in the Initial DEX offering development are as follows:

  • Roadmap creation: This step includes analyzing & characterizing the model, for making the model user-friendly and targeting the audience’s needs. It should also be beginner-friendly to make the beginner comfortable with the model…
  • White paper creation: The creation of the White paper should be carefully done as this is the important step. The creation means the features and the functionalities of the product. The features must satisfy the user demands at a convenient price.
  • Token development: The developers will specially design the tokens according to the customer request. The smart contact enabled, and blockchain like Ethereum makes the transaction more secure.
  • Listing tokens & marketing: It is necessary to choose the right decentralized exchange to list the tokens so as to reach the right audience. The marketing technique enables the selling of tokens to the next level.

Infinite Block Tech offers the Initial DEX offering development with a team of highly specialized blockchain engineers, and marketing specialists to deliver the best for the users. The cost of IDO development depends upon the features and functions demanded by the users. Thus, the cost may increase or decrease from one IDO development project to another. So, it’s the right time to step into our IDO development marketplace to raise the funds effectively.

#initial dex offering development #ido development #ido development platform #cost of ido development #ido development project #ido development marketplace