CRYPTO NEWS

Why Amazon And VeChain Will Enable Carbon Management Services

The VeChain Foundation recently revealed a partnership with Amazon Web Services (AWS) to support their VeCarbon platform. The product will enable companies to obtain information on their carbon footprint to properly manage it and remain compliant with emissions targets.

Across the world, countries like China have set strict carbon emission goals that must be met by every company and individual. Carbon management services such as VeCarbon become a crucial tool to meet these goals.

However, the platforms that provide these services need large-scale storage and analytics solutions. This is where Amazon Web Services comes in.

The company praised VeCarbon’s approach of merging VeChain’s blockchain with a carbon-neutral digital infrastructure. The platform will combine these technologies with a team of experts with “a great deal of experience providing carbon asset management services”, according to an official post.

These experts work under Shanghai Tanlian Technology, the company behind VeCarbon, and a VeChain partner. The VeChain Foundation claimed the following on their partnership with Amazon Web Services and their potential to support this platform:

With their assistance (Amazon Web Service), technical guidance and established, robust cloud service platform, VeCarbon will be able to deliver the scale, analytical capability and security needed to deliver a national-scale, multi-industry carbon management platform.

AWS will provide VeCarbon with its computing power and with the “massive” resources its needs to provide its services. The company will enable the carbon management platform to run on “versatile computing and processing capabilities”.

Gong Diyun, Executive Director of Shanghai Tanlian’s business strategy, said the following about their cooperation with AWS and why this company makes a perfect match to reach their goals:

AWS’s approach to carbon neutrality aligns well with our development philosophy, including the use of renewable energy in cloud infrastructure and efforts to help customers calculate the environmental impact of workloads on the cloud through the launch of a carbon footprint tool (…).

VET’s price trends to the downside on the 4-hour chart. Source: VETUSDT Tradingview
The Benefits Of The Amazon And VeChain Partnership

The partnership will allow companies and individuals to reduce expenses and to provide their companies with data analytics with the potential to be turned into “valuable business insights”, the official post claims. AWS will also provide VeCarbon with its security features.

Thus, the platform will run with the power of the blockchain and the security of a company such as Amazon. This will provide it with “unmatched cloud security”.

VeCardon will connect and integrate with the client’s system. Users will have access to a suite of Internet of Things (IoT) applications, and data-driven tools.

The service has been integrated with a variety of companies across multiple sectors, these include the cement and building industry, the food, agriculture, and transportation sectors in China. These clients will be able to benefit from the “cost optimization of the VeCarbon carbon management” system.

Diyun added:

The diverse services provided by AWS can be used on demand, and be flexibly adjusted according to business needs. This method not only helps us reduce business expenses and negates the need for industry customers invest in expensive fixed assets, but it can be deployed in an off-the-shelf manner.

In the coming months, AWS and VeChain will deepen their cooperation to introduce new features and integrate Shanghai Tanlian to the Amazon Web Service Partner Network (APN). Thus, the company might see a boost in adoption and customer seeking their services.

Different bytecode when compiling from both solc-js and Remix IDE

Currently, I’m trying to get the bytecode from this contract code for example: // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract GetSet { uint256 private total; mapping(address => uint256) private numbers; mapping(uint256 => uint256) private heavyArr; function getTotal() external view returns (uint256) { return total; } function setNumber(uint256 _num) external returns (bool) { total = total::Listen

Currently, I’m trying to get the bytecode from this contract code for example:

// SPDX-License-Identifier: MIT pragma solidity ^0.8.0;  contract GetSet {   uint256 private total;   mapping(address => uint256) private numbers;   mapping(uint256 => uint256) private heavyArr;    function getTotal() external view returns (uint256) {     return total;   }    function setNumber(uint256 _num) external returns (bool) {     total = total - numbers[msg.sender] + _num;     numbers[msg.sender] = _num;     return true;   }    function setHeavy() external returns (bool) {     for(uint i = 0; i < 100; i++) {       heavyArr[i] = heavyArr[i] + 1;     }     return true;   }    function getNumber(address _user) external view returns (uint256) {     return numbers[_user];   } } 

both Complitation have optimization enabled with counts of 200 and using version v0.8.7+commit.e28d00a7

Here is how I used solc-js for compile:

  const input = {     language: 'Solidity',     sources: {       'GetSet.sol': {         content: contractCode,       },     },     settings: {       outputSelection: {         '*': {           '*': ['*'],         },       },       optimizer: {         // disabled by default         enabled: true,         // Optimize for how many times you intend to run the code.         // Lower values will optimize more for initial deployment cost, higher values will optimize more for high-frequency usage.         runs: 200,       },     },   };   solc.loadRemoteVersion('v0.8.7+commit.e28d00a7', function (err, solcSnapshot) {     // NOTE: Use `solcSnapshot` here with the same interface `solc` has     const output = JSON.parse(solcSnapshot.compile(JSON.stringify(input)));      // `output` here contains the JSON output as specified in the documentation     for (const contractName in output.contracts['GetSet.sol']) {       console.log(         output.contracts['GetSet.sol'][contractName].evm.bytecode.object       );     }   }); 

and this is on remix IDE:

enter image description here

as you can see the settings are the same, I got the result from both as following:

SOLC-JS:

608060405234801561001057600080fd5b5061022e806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80633fb5c1cb14610051578063775a25e314610079578063942ea4661461008b578063f47aa95d146100b4575b600080fd5b61006461005f36600461017f565b6100bc565b60405190151581526020015b60405180910390f35b6000545b604051908152602001610070565b61007d61009936600461014f565b6001600160a01b031660009081526001602052604090205490565b6100646100ff565b33600090815260016020526040812054815483916100d9916101b0565b6100e39190610198565b6000908155338152600160208190526040909120929092555090565b6000805b606481101561014757600081815260026020526040902054610126906001610198565b6000828152600260205260409020558061013f816101c7565b915050610103565b506001905090565b60006020828403121561016157600080fd5b81356001600160a01b038116811461017857600080fd5b9392505050565b60006020828403121561019157600080fd5b5035919050565b600082198211156101ab576101ab6101e2565b500190565b6000828210156101c2576101c26101e2565b500390565b60006000198214156101db576101db6101e2565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220ff0bb87edaf438ba1bb207088847e9b6deb81cc9d80570f2b69f2bcac80ddb9c64736f6c63430008070033

REMIX IDE:

608060405234801561001057600080fd5b5061022e806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80633fb5c1cb14610051578063775a25e314610079578063942ea4661461008b578063f47aa95d146100b4575b600080fd5b61006461005f36600461017f565b6100bc565b60405190151581526020015b60405180910390f35b6000545b604051908152602001610070565b61007d61009936600461014f565b6001600160a01b031660009081526001602052604090205490565b6100646100ff565b33600090815260016020526040812054815483916100d9916101b0565b6100e39190610198565b6000908155338152600160208190526040909120929092555090565b6000805b606481101561014757600081815260026020526040902054610126906001610198565b6000828152600260205260409020558061013f816101c7565b915050610103565b506001905090565b60006020828403121561016157600080fd5b81356001600160a01b038116811461017857600080fd5b9392505050565b60006020828403121561019157600080fd5b5035919050565b600082198211156101ab576101ab6101e2565b500190565b6000828210156101c2576101c26101e2565b500390565b60006000198214156101db576101db6101e2565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220647d8ef7760cb26e1d7a68edeccb79b5ca1a63efc856378d920201d40085f93764736f6c63430008070033

the 2 bytecode are different at the end

enter image description here

What am I missing, I double check all the settings even metadatas are the same but I don’t get why they are different

{   "compiler": {     "version": "0.8.7+commit.e28d00a7"   },   "language": "Solidity",   "output": {     "abi": [       {         "inputs": [           {             "internalType": "address",             "name": "_user",             "type": "address"           }         ],         "name": "getNumber",         "outputs": [           {             "internalType": "uint256",             "name": "",             "type": "uint256"           }         ],         "stateMutability": "view",         "type": "function"       },       {         "inputs": [],         "name": "getTotal",         "outputs": [           {             "internalType": "uint256",             "name": "",             "type": "uint256"           }         ],         "stateMutability": "view",         "type": "function"       },       {         "inputs": [],         "name": "setHeavy",         "outputs": [           {             "internalType": "bool",             "name": "",             "type": "bool"           }         ],         "stateMutability": "nonpayable",         "type": "function"       },       {         "inputs": [           {             "internalType": "uint256",             "name": "_num",             "type": "uint256"           }         ],         "name": "setNumber",         "outputs": [           {             "internalType": "bool",             "name": "",             "type": "bool"           }         ],         "stateMutability": "nonpayable",         "type": "function"       }     ],     "devdoc": {       "kind": "dev",       "methods": {},       "version": 1     },     "userdoc": {       "kind": "user",       "methods": {},       "version": 1     }   },   "settings": {     "compilationTarget": {       "GetSet.sol": "GetSet"     },     "evmVersion": "london",     "libraries": {},     "metadata": {       "bytecodeHash": "ipfs"     },     "optimizer": {       "enabled": true,       "runs": 200     },     "remappings": []   },   "sources": {     "GetSet.sol": {       "keccak256": "0xbe599f5bcbd0c9cd18e7aec3a5bdf55709bfe578823a7943d3f8a084959967f6",       "license": "MIT",       "urls": [         "bzz-raw://d6f14d23add195e111ce54578e8332bf9d49654cc5a1092bd12a9f1f7664aed5",         "dweb:/ipfs/QmSrXqqsPzgGxYNSnBz2f5xfKpXi7sXiJr2Fva9L8gsuKY"       ]     }   },   "version": 1 } 

Why Amazon And VeChain Will Enable Carbon Management Services

Shopping cart
There are no products in the cart!
Continue shopping
0