The price feeds / reference contracts work as you described:
Independent Chainlink nodes collect data from highly respected APIs
They place the data on-chain
Other services make calls to the reference contracts
The price given is considered the last price which is what most all exchanges consider to be the "market" price. Most exchanges have some ...
Saying Chainlink is "not decentralized enough" is a lot like saying "a tree is not a forest enough".
Chainlink is a framework for connecting off-chain data to smart contracts in a decentralized manner. In the same sense that one Ethereum node is a part of the whole decentralized ecosystem, one Chainlink node is apart of the whole ...
When I try to send a 256 bit integer (uint) on contract.methods.set(0x849787ab...), console throw an overflow error (1e77)
Therefore, always use strings: contract.methods.set("0x849787ab...").
Is there a simpler method to do so?
Here is what I use (tested with web3.js v1.2.1):
I'm not sure to correctly understand your question.
If you want to create a fully decentralized application I advise you to read the Ethereum book, chapter 12 : https://github.com/ethereumbook/ethereumbook/blob/develop/12dapps.asciidoc .
Swarm is a good alternative to IPFS to host the frontend in a decentralized way :
Some things to check
Does the message's hash match the signed one? The concatenation in a buffer looks wrong.
Does signed message include "Ethereum signed.." prefix? ECRecover doesn't prepend it.
Make sure v parameter is either 27 or 28, some libraries return 0 or 1 instead.