I have read some articles about CRDT. And knew the G-Counter is an implementation of CvRDT. It can only do increasing operations. However, each node in the algorithm has its own slot. If it is transformed to CmRDT and every node broadcasts its operation instead of the whole state, can the G-Counter do decrements? Why or why not?
G-Counter name comes from grow-only counter. It's defined by its semantics, which is not specific to either CvRDT or CmRDT. So nothing stands against building an operation-based counter with increment/decrement operations, the thing is, it won't be just a G-Counter anymore ;)