I noticed that you split the Channel future to promise and future,the promise is write able ,just like scala.
the ChannelTransferPromise should be update the amount when the bytes is sending,so I don't extends from the 
ChannelFuture but the ChannelPromise.

may be I was thinking wrong.