Feature Request
- Dominant language
- Shell
- Stars
- 33
- Forks
- 24
- PR merge metrics
- No merged PRs in 30d
Description
We are developing supply chain on blockchain technology. We are using BigchainDb to implement blockchain in our product. Currently we are developing pilot and we are facing following issues:
1. We want a network where validators of network can just keep data. (We are adding validators only to gain trust of customers). They should not create transaction. There should be a configuration that should prevent validators to create transactions.
**Workaround suggestion:** Tendermint can implement based on power of validator. If validator have highest or equal to highest power in genesis.json then only can create transaction in network.
2. Currently any validator can tamper data on their machine by using mongo db query (insert, update and delete) and BigchainDb not implemented any mechanism that can detect those tamper. There should be a mechanism that should detect tamper and should start sync.
**Workaround suggestion:** You can use hash of collections provided by mongo or can simply generate hash of mongo database and compare with all online validators during insertion of transaction. This is following link for hash https://docs.mongodb.com/manual/reference/command/dbHash/ .
3. BigchainDb should also watch mongo collection for change query. By doing this BigchainDb will able to prevent tamper on every machine. You can refer this link https://docs.mongodb.com/manual/reference/method/db.collection.watch/
4. If you are planning to develop a supply chain like product on BigchainDb then a single collection will not able to fulfil all requirements. BigchainDb should give a option to insert data in collection given by user while creating transaction like this:
`connection.postTransactionCommit(transactionSigned, {collection: "myCollection"}); // default will be transactions`
While getting transaction user will pass collection like this:
`connection.getTransaction(transactionId, { collection: "myCollection"}); // default will be transactions collections`
5. We altered asset data in assets collection. As you are storing hash in transactions table that compares data with assets collection data. When I requested from api to get data then response was **"Internal server error"**. You should send some valid response like Data altered in mongo. So that user can know what actually went wrong because one day when i will check my log then i can deduce what actually went wrong and I can take action on this.
6. There should be a inbuilt authentication mechanism in BigchainDb server api. I know i can disable http request on server and my wrapper (api server) will send request but I think there should be authentication mechanism like AppId and App secret or any other standard authentication.
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names no implementation files or tests and combines six requests spanning validators, MongoDB tamper detection, collection selection, error responses, and authentication. Start by separating these into independently scoped BEP proposals and reviewing the referenced Tendermint and MongoDB APIs. Done should be an agreed design for one narrowly scoped change with affected entry points and acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- blockchain, mongodb
- Domain
- api, authentication, blockchain, databases, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100