Skip to main content

Smart contract with remix IDE and Ganache

 

Previous Topic: Simple transaction with ganache using Golang

In the Previous topic, we learned how to do transaction with ganache using Golang. Now, we will learn what is smart contract and how to write smart contract and how to deploy it and how to call the contract using remix.

To learn what is smart contract, we already write a blog about that. Please feel free to take a look. Ethereum Smart contract.

For beginners, use the Remix IDE for learning smart contract and understand how it works. Then we will use Truffle framework.

REMIX: Remix IDE Link

Remix will provide a default workspace for developing smart contract. Now you can able to create a new file and start writing contracts, compile it with solidity compiler and deploy that contract and test the contracts.


Simple Smart Contract:

First create new file called store.sol and start writing a simple contract.
Contract Functionality:
  • Store a record using SetRecord method.
  • View the latest record. [record variable is public which helps us to view the latest record]
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.10;

contract store{

    string public record;

    function SetRecord(string memory _record) public{
        record = _record;
    }

}
Compile the smart contract using the solidity compiler.


If the compilation successful, deploy the contract. Here in remix, we have multiple set of environments listed we can use those to deploy and call the contract. But the blockchain data is not stored once you refresh it. To know more about these environments remix env docs
Now we are going to connect our local ganache network with the remix. First click the Custom - External Http Provider and provide the RPC server http://127.0.0.1:7545.


After the connection with our local ganache deploy the contract. Now check whether the contract deployed on the ganache.
Contract Address: 0xe1540EAa5cFE12210A217152885bE30D269d5843
Now in the remix, you can able to see the contract deployed in the deployed contracts section. you set the record using SetRecord by providing a string value. Also check whether the record is set or not using record

Comments

Popular posts from this blog

Ethereum Overview

Origin of Ethereum:  At Some point Blockchain technology became very popular. One Blockchain per Application. It's very difficult to create our own blockchain for every new applications. Ethereum concept came here, it's aim to create a single blockchain for that will allow to create any kind of new applications on top of it.   History of Ethereum: 2013 - Ethereum whitepaper by Vitalik buterin   2014 - Ethereum Development 2015 - Olympic Release Eth network was created 2020 - Boom in DeFi Activities 2022 - The Merge Upgrade of Execution layer Overview: Ethereum Projects: AUGUR - Prediction Market OPENSEA - digital collectibles UNISWAP - Assets Exchange COMPOUND - Leading platform Decentralized Application : Ethereum allows us to build new applications called Decentralized Applications . Just as regular applications, they run on multiple machines. But what differs them is that these machines are not owned by single group or organization. They are owned by different people in diff

Why Go Language?

Go Language: Open Source Programming language Statically Typed language Makes sharing code easy Similar to C programming language Organization that use Go includes Google, Docker, Kubernetes, Cloudflare, Dropbox, Netflix & Uber. Why Go language? C like Syntax Compiles to native code i.e. one executable file is need to run the whole program. Garbage collection Concurrency built-in language Compatibility promise → Once a program written to the go one specification will continue to compile and run correctly, over the lifetime of that specification. Why Go Compiler is fast? Simple and Minimalistic (20 keywords only) Does not allows unused dependencies No circular dependencies Does not use header files Solving Modern problems with Go: Go has concise syntax with few keywords to remember. Languages like C or C++ offers fast execution, whereas languages like Ruby or Python offers rapid application development, Go bridges these computing worlds and offers development fast. Modern Computers

Crypto ED25519 Signing and Verifying using Golang

The Edwards-curve Digital Signature Algorithm (ECDSA) is used to create a digital signature using an enhancement of the Schnorr signature with Twisted Edwards curves. Overall it is faster that many other digital signature methods, and is strong for security. One example of ECDSA is Ed25519, and which is based on Curve 25519. It generates a 64-byte signature value of (R,s), and has 32-byte values for the public and the private keys. Example : package main import ( "crypto/ed25519" "crypto/rand" "encoding/hex" "fmt" "log" ) func main() { publickey, privatekey, err := ed25519.GenerateKey(rand.Reader) if err != nil { fmt.Println("cannot generate ecdsa keys") log.Fatal(err) } msg := "hello" signedBytes := ed25519.Sign(privatekey, []byte(msg)) fmt.Println("Signed Message :", hex.EncodeToString(signedBytes)) if !ed25519.Verify(publickey, []byte(msg), signedBytes) { fmt.Println("ver