In order to subscribe, you need to:
1) login
2) get an instance id for "database"
3) before you can subscribe to any object change:
Maybe this helps for the "object id" stuff:
def object_id(self, name, instance=0) :
objects = {
"NULL" : "1.0.%d",
"BASE" : "1.1.%d",
"ACCOUNT" : "1.2.%d",
"FORCE_SETTLEMENT" : "1.3.%d",
"ASSET" : "1.4.%d",
"DELEGATE" : "1.5.%d",
"WITNESS" : "1.6.%d",
"LIMIT_ORDER" : "1.7.%d",
"CALL_ORDER" : "1.8.%d",
"CUSTOM" : "1.9.%d",
"PROPOSAL" : "1.10.%d",
"OPERATION_HISTORY" : "1.11.%d",
"WITHDRAW_PERMISSION" : "1.12.%d",
"VESTING_BALANCE" : "1.13.%d",
"WORKER" : "1.14.%d",
"BALANCE" : "1.15.%d",
"GLOBAL_PROPERTY" : "2.0.%d",
"DYNAMIC_GLOBAL_PROPERTY" : "2.1.%d",
"INDEX_META" : "2.2.%d",
"ASSET_DYNAMIC_DATA" : "2.3.%d",
"ASSET_BITASSET_DATA" : "2.4.%d",
"DELEGATE_FEEDS" : "2.5.%d",
"ACCOUNT_BALANCE" : "2.6.%d",
"ACCOUNT_STATISTICS" : "2.7.%d",
"ACCOUNT_DEBT" : "2.8.%d",
"TRANSACTION" : "2.9.%d",
"BLOCK_SUMMARY" : "2.10.%d",
"ACCOUNT_TRANSACTION_HISTORY" : "2.11.%d",
"WITNESS_SCHEDULE" : "2.12.%d",
}
return objects[name]%instance
IDs starting with "1." are blockchain state stuff .. and those with "2." indicated implementation/higher layer abstraction