Skip to content

Instantly share code, notes, and snippets.

View anurag-arjun's full-sized avatar

Anurag anurag-arjun

View GitHub Profile
@anurag-arjun
anurag-arjun / gist:4ee08d48b25ad208d341561fee73742b
Created May 26, 2021 19:05
Note on issue affecting some nodes on the Polygon PoS network today (25th May 2021)
TL;DR: There was a issue affecting a minor subset of the Polygon PoS validator and full nodes. The chain itself remained resilient and no state inconsistencies were found.
There was an issue reported today that resulted in sync inconsistencies for a small subset of the Polygon PoS validator nodes and full nodes.
On height 5237861, the proposer of that Heimdall block went down for some time before gathering the prevotes. After coming back online, it again started to collect the prevotes of the previous voting round, but the other validators had already gossiped their prevotes, which lead to the "Error signing prevote" issue on the rest of the validators. However, waiting for the commit timeout fixed the issue.
The repercussions of these were seen on the Bor nodes of the affected nodes, with block production and sync lagging behind on these nodes.
Heimdall validator nodes sync data at periodic intervals from the Ethereum state sync contract (e.g. token deposits, validator stake and more) and after 2/3+1 c
The Matic team has put together a Proof-of-Concept for the Reddit Scaling Bake-Off. We think Matic is the most apt solution for the scaling requirements of Reddit, keeping in mind it’s current and future needs.
We believe that the Matic Layer 2 platform is the most complete solution out there in terms of the features and fits right in with what Reddit requires:
* Security via Plasma predicates on Ethereum: Reliable exits to Ethereum (Proof-of-Stake based decentralized multi-operator Plasma construction which mitigates mass exit occurrence)
* Composability (EVM Support), 
* Extremely high scalability with each sidechain (multiple sidechains in future, hence suitable for the scale of Reddit) 
* Ability to add custom smart contract features (via Ethereum Plasma predicates) for future product innovation
​
Matic Network's Great Reddit Scaling Bake-Off submission
The Matic team has put together a Proof-of-Concept for the Reddit Scaling Bake-Off. We think Matic is the most apt solution for the scaling requirements of Reddit, keeping in mind it’s current and future needs.
We believe that the Matic Layer 2 platform is the most complete solution out there in terms of the features and fits right in with what Reddit requires:
* Security via Plasma predicates on Ethereum: Reliable exits to Ethereum (Proof-of-Stake based decentralized multi-operator Plasma construction which mitigates mass exit occurrence)
* Composability (EVM Support), 
* Extremely high scalability with each sidechain (multiple sidechains in future, hence suitable for the scale of Reddit) 
* Ability to add custom smart contract features (via Ethereum Plasma predicates) for future product innovation
pragma solidity ^0.4.24;
//interface for parent contract of any child token
/*
- Parent contract interface for adding custom logic before calling the 'transfer' function
in the ERC721/ERC20 child chain contract on the Matic chain
- 'transfer' executes the 'beforeTransfer' of this interface contract
- It must follow this interface and return a bool value and
- in case of ERC20 contracts, it should not have 'require' statements and instead return 'false'
- IParentToken contract address in childchain contract can be updated by owner set in rootchain contract only
const Matic = require('maticjs').default
const config = require('./config')
const mtoken = '0x343461c74133E3fA476Dbbc614a87473270a226c' // test token address
const amount = '10000000000000000' // amount in wei (0.01 TEST)
const from = '0xdcd53258BA8A69C6a505300BE75447A772bFd3d6' // from address
// Create object of Matic
const matic = new Matic({
maticProvider: config.MATIC_PROVIDER,
const Matic = require('maticjs').default
const config = require('./config')
const mtoken = '0x343461c74133E3fA476Dbbc614a87473270a226c' // test token address
const amount = '10000000000000000' // amount in wei (0.01 TEST)
const from = '0xdcd53258BA8A69C6a505300BE75447A772bFd3d6' // from address
// Create object of Matic
const matic = new Matic({
maticProvider: config.MATIC_PROVIDER,
matic.transferTokens(token, to, amount, {
from,
parent: false, // For token transfer on Main network (false for Matic Network)
onTransactionHash: () => {
// action on Transaction success
console.log("Transfer done!")
},
const token = '0x343461c74133E3fA476Dbbc614a87473270a226c' // test token address
const to = '0x4933ba598e6B1f33bCDc299bE76AbE2DdFbCC6A4' // to address
const Matic = require('maticjs').default
const config = require('./config')
const from = '0xdcd53258BA8A69C6a505300BE75447A772bFd3d6' // from address
const to = '0x4933ba598e6B1f33bCDc299bE76AbE2DdFbCC6A4' // to address
const token = '0x343461c74133E3fA476Dbbc614a87473270a226c' // test token address
const amount = '10000000000000000' // amount in wei (0.01 TEST)
// Create object of Matic