What are the practices for a small multiplayer shooting game in node?

I have a single player small game built in flash, which is similar to worms. You move your mouse to calculate an angle, click to shoot, and apply more or less power to your shot depending on the wind.

The physics for this are entirely programmed in actionscript. I was wondering what would be the best solution if I wanted to build a real time multiplayer 1 vs 1 version. For now I have setup a small example of flash and node on the backend communicating with sockets (net modules in node.js) passing data in json format. So far everything is ok. I have a specific issue that comes into mind right now though...

1) Should the bullet animations be handled by the client only, only the server, or both?

If the client handles all the bullet animation it's going to be easier to cheat, but easier to develop sinde it's already done. If the server handles it, I'm going to have to build functionality to smooth out the animations. But perhaps, since it's only a 1 vs 1 simple game which is going to be free and only for fun, should continue to move the bullets in flash, detect collisions in flash, and notify the server if I hit my opponent? Or is there something else I could do?

Logic that could be exploited should be done on the server. Visualizations is logic that can't be exploited or even if so, it won't affect the other player. It should be done on the client.

Also when you receive data for every shot you should check if it is valid (whether the power is too big or whether the player has ran out of bullets for example). This is the kind of logic that can be exploited.

Also Flash supports TCP Sockets, so does Node. Instead of making a request/response architecture it is much more effective to use sockets.

One more advice, with technologies like HTML5 Canvas, WebSockets and Processing.js you should consider building your application in HTML and JavaScript, since that would enable all users on all devices to play it.