Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does "Coffee with Blockchain" match growers to buyers?

In the "Coffee with Blockchain" app produced by IBM it performs price matching between Growers and Buyers. I'm wondering how that matching would be implemented (either in the example app or in an actual implementation).

Example of the app can be seen here: https://www.youtube.com/watch?v=suE5KHkESF4

How does "Coffee with Blockchain" match growers to buyers?

Some questions to help guide the answer:

Does that matching operate entirely as chaincode? If so, how would that be implemented?

Eg, would the Grower submit a transaction that they have a new batch of beans ready for shipment and that triggers the match-making part in the chaincode to find/choose a Buyer?

I have my doubts on making that process deterministic, otherwise a grower's new batch announcement fails and they'd have to retry. Perhaps there's a different way of doing so in chaincode?

Or does the matching operate outside of the chaincode, listening for updates in the ledger, and instead it calls the API to invoke a chaincode method to transfer the beans from Grower-A to Buyer-B?

My doubt on that though is the matching is then centralized to some trusted provider, rather than validated/endorsed chaincode.

Thanks

like image 249
Rob Olmos Avatar asked Dec 06 '17 09:12

Rob Olmos


3 Answers

This video explains the example in detail. Hope it answers some of your questions.

Per this explainer video -
1) Buyer brews a cup of coffee, and hence its stock of coffee beans goes down
2) Buyer buys beans to restock
3) Grower ships beans to the buyer
4) Once the Buyer confirms the receipt of the shipment, grower gets paid

The video also explains:

Coffee beans prices may differ based upon the quality and demand. Quality may be determined by popularity or by a certifying body

All the transactions are governed by Smart Contracts. Each participant in this, say Coffee Business, network - the buyer, the grower, the payment company, the bank, the certifying body, the shipping company, even coffee making machines (read, IoT) - agrees to abide by relevant contract(s)

As far as I know, IBM's Blockchain solution is for Enterprises, and not general public, like Bitcoin Exchange. So, all the enterprises become part of that same network.

like image 103
Prafull Avatar answered Nov 05 '22 15:11

Prafull


I can only hypothesise based on my understanding of Blockchain. IBM's algorithms are not public, so I do not have first hand knowledge.

But from what I know - Yes, all your understanding seem accurate.

Unlike crytocurrency, in physical commodity, the process of 'mining' is subject to availability of the underlying asset. Farmers are like miners and they will have to announce the production of the commodity. This 'announcement' would trigger the match-making process where registered 'buyers' will be matched.

However, just like you I have my doubts on it being fully "chain code" based. Reason for that being the underlying commodity - coffee - is also simultaneously being traded on commodity exchanges and if the "chain code" prices drifts too far from the exchange prices then the marketplace ecosystem would revert back to traditional channels outside of blockchain.

So in a way the commodity exchange is still the "trusted provider" of the pricing match (albeit indirectly).

Like you, I am of the opinion that this implementation creates more questions than solutions.

This video tries to explain some details -> Journey of Coffee on Blockchain

like image 34
Abhishek Avatar answered Nov 05 '22 15:11

Abhishek


In my opinion, it might works in other way round: When GROWER-A submits a transaction that they have a new batch of beans ready for shipment, then it is added to a list and it will be triggered when a BUYER-B wants to buy some quantity of bean. Suppose a BUYER-B wants to buy a new batch of beans(some quantity), then it will trigger the API to invoke a chaincode method to transfer the beans from GROWER-A to BUYER-B.

So from this it can be concluded that, there might be a chance of two chain, chain A for GROWER which will be add on block when GROWER-A wants to submit a bean and remove one block when BUYER-B wants to buy it. And chain B will be for buyer which will work alternatively.

like image 1
Aman Kumar Jha Avatar answered Nov 05 '22 14:11

Aman Kumar Jha