I've been working through the fabcar example and have it running it perfectly when no alterations have happened. What I'm trying to do is update the fabcar.go code to add more fields and simply play around w/ the example, however my docker images aren't updating w/ the correct code.
To install the chaincode, this command is run on the cli container:
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp" cli peer chaincode install -n fabcar -v 1.0 -p github.com/fabcar
The cli container has set this volume:
./../chaincode/:/opt/gopath/src/github.com/
however, after code/go updates (I've actually changed it from Car to a Ticket object with entirely new fields and updated all relevant chain commands to reflect), teardown, then start up again I still am seeing all the old fields.
What am I missing here?
Here's a snippet of the code changing to tickets on the "Invoke" function
func (s *SmartContract) Invoke(APIstub shim.ChaincodeStubInterface) sc.Response {
// Retrieve the requested Smart Contract function and arguments
function, args := APIstub.GetFunctionAndParameters()
// Route to the appropriate handler function to interact with the ledger appropriately
if function == "queryTicket" {
return s.queryTicket(APIstub, args)
} else if function == "initLedger" {
return s.initLedger(APIstub)
} else if function == "createTicket" {
return s.createTicket(APIstub, args)
} else if function == "queryAllTickets" {
return s.queryAllTickets(APIstub)
} else if function == "sellTicket" {
return s.sellTicket(APIstub, args)
}
return shim.Error("Invalid Smart Contract function name.")
}
But doing this I simply receive the message "Invalid Smart Contract function name." when calling w/ the following:
const request = {
chaincodeId: options.chaincode_id,
txId: transaction_id,
fcn: 'queryAllTickets',
args: ['']
};
I would suggest two possible approaches:
Same name, but updated version:
or same version, but new name:
You can use following command to remove old chaincode container image: