Comments (4)
I discussed this with @csuwildcat at IIW.
Seems like a post "mvp" feature to me. I'd like to see working CRUD operations on DIDs with tests before restricting who can anchor to ethereum.
Whatever amount is chosen for the staking minimum will become a barrier to entry for sidetree node operators, if the value is too high, it will exclude too many potential adopters, if its too low, it will be unnecessary complexity.
Why is gas cost not enough of a DoS mitigation strategy here?
How much USD does an attacker need to spend to make the network inoperable?
Consider also that the IPFS data will by default make this more like a PoA network (we must trust the IPFS node operators to make hashes available, there is no decentralized storage incentive here yet), we might consider formalizing this PoA assumption for the first version, in which case I would expect a whitelist of nodes who are allowed to anchor to the contract, which would also be simpler than staking.
from sidetree-ethereum.
Good comments by Orie.
I'd really encourage folks here from the Ethereum community to focus on deterministic, algo-oriented means of DDoS mitigation. I'm not quite as familiar with Ethereum, but I'd look to include elements like PoW high watermarks, gas requirements, and other facets first, then, if need be, include other variables.
from sidetree-ethereum.
i spoke to Orie about this at IIW as well, and i completely agree this is a post MVP feature.
the issue that i am referencing here is different (i believe) than the DDOS issue. this is an authorization issue concerning who is allowed to update the smart contract. since the contract will live on the public ethereum network, it will be visible and accessible to anyone, meaning anyone could call the function that adds data to the contract. all the validation logic will live in the side tree node, so the contract simply exposes a function that lets you add an anchor hash to its state.
typically, smart contracts will define one or more actors (public addresses) who have permission to execute certain functions, which would prevent just anyone from updating its state. for the mvp, we could restrict access to one address which is known by the sidenode. post mvp we can think about how to open this up to more actors.
happy to table this issue for now. do we use a tag to indicate an issue that shouldn't be worked on at the moment? like backlog
or not yet
from sidetree-ethereum.
@ebaizel I think the difference with approach here is the suggestion (if possible) that you allow anyone to write to the contract, so long as you can tie writes to a deterministic algo (something that links gas, batch size, and write frequency?) that mitigates malicious load on the contract. I simply don't know what global/contract vars are available to incorporate in such an algorithm, because I'm not as familiar with Ethereum.
from sidetree-ethereum.
Related Issues (20)
- Init the project
- Add ipfs module
- Create a service method that creates a new DID HOT 1
- Create a service method that updates a DID
- Create a service method that revokes a key from a DID
- Add API route to fetch latest DID Doc for a given DID
- Add API infrastructure
- Add Pagination Support HOT 3
- Create the API for writing Sidetree transactions
- Add IPFS setup steps to README
- Review of the EthDIDAnchor contract HOT 4
- Support TypeScript Full Node with Sidetree (core) HOT 1
- Create the API for fetching Sidetree transactions HOT 1
- . ./env file does not exit.
- which npm version HOT 1
- is this repo still active ? HOT 3
- Create the Smart Contract that will hold the anchor file hashes HOT 1
- ERC725 and ERC735 HOT 2
- Persist the batch transaction number in the smart contract HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sidetree-ethereum.